1 / 22

The Networking Home for Nonprofits

The Networking Home for Nonprofits. Presented by: Ryan Amari, Kyle Boorky, Eric Czarny, John Ferguson. Department of Computer Science Stonehill College Easton, MA 02357. Background: Computer Science Capstone Course. Most computer science courses are concerned with fundamental principles.

calloways
Download Presentation

The Networking Home for Nonprofits

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The Networking Home for Nonprofits Presented by: Ryan Amari, Kyle Boorky, Eric Czarny, John Ferguson Department of Computer Science Stonehill College Easton, MA 02357

  2. Background: Computer Science Capstone Course • Most computer science courses are concerned with fundamental principles. • The Capstone course is concerned with real world software development and delivery. • The Capstone course is writing intensive: project management essay, ethics essay, requirements document, design document, user manual. • The Capstone course is based on a real world software development project with a real client.

  3. Background: Prior Capstone Projects • Automated Ticketing System • Automate and streamline Stonehill College Police parking ticket process. • Merit Point Automation System • Automate and streamline Residence Life Merit Point Program for housing lottery. • This year we wanted to do something a little different.

  4. Background: Computer Science Capstone Project 2007 • The Center for Nonprofit Management • Recent survey showed that nonprofit organizations needed help networking with each other. • Nonprofits are resource constrained. • Networking allows nonprofits to share resources. • Social Networking • A social network connects people who share similar interests, ideas, and goals. • Examples: Facebook, MySpace, Friendster. • Working with the Center for Nonprofit Management, the students in the Computer Science Capstone developed NPOnet.

  5. What is NPOnet? • NPOnet is a social networking system that… • Allows local nonprofit organizations to network with each other through the use of: • Allows the Center for Nonprofit Management collect, analyze, and act on important information about local nonprofit organizations, including: • Maintaining accurate statistics about nonprofits. • Analyzing social networks for groups/nonprofits of current interest. • Analyzing shared resources/message boards for topics of current interest.

  6. Demo One: NPOnet User

  7. Demo Two: NPOnet Adminstrator

  8. The View: JSP and JSTL <table width="90%" style="margin: 10px auto 10px auto;"> <tr> <td align="left"><strong>Name:</strong></td> <td id="group_name"><c:out value="${group.name}"/></td> </tr> <tr> <td><strong>Description:</strong></td> <td id="group_description"><c:out value="${group.description}"/></td> </tr> <tr> <td align="left"><strong>Owner:</strong></td> <td><a href='profile?id=<c:out value="${group.ownerID}"/>'><c:out value="${group.ownerName}"/></a></td> </tr> <tr> <td><strong>Privacy:</strong></td> <td> <c:choose> <c:when test="${group.isPublic}">Public</c:when><c:otherwise>Private</c:otherwise> </c:choose> </tr> </table>

  9. The Controller: Business Logic publicclass GroupController implements Controller { protected Log log = LogFactory.getLog(getClass()); private GroupDAO groupDAO; publicvoid setGroupDAO(GroupDAO groupDAO) { this.groupDAO = groupDAO; } public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { Map<String, Object> model = new Hashtable<String, Object>(); model.put(“group”, this,groupDAO.find(request.getParameter(“id”))); returnnew ModelAndView(“groupView"); } }

  10. Servlet Configuration <bean id="loginMapping“ class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="interceptors"> <list> <ref bean="loginInterceptor"/> </list> </property> <property name="mappings"> <props> <prop key="/login">loginController</prop> <prop key="/home">homeController</prop> <prop key="/group">groupController</prop> . . . </props> </property> </bean>

  11. The Model: Data Access Objects private static final String INSERT_SQL = “insert into nponet.group ” + “(name, description, owner_profile_id, is_public) ” + “values (?, ?, ?, ?) ”; publicvoid insert(Group group) { SqlUpdate update = new SqlUpdate(dataSource, INSERT_SQL); update.declareParameter(new SqlParameter(Types.VARCHAR)); update.declareParameter(new SqlParameter(Types.VARCHAR)); update.declareParameter(new SqlParameter(Types.INTEGER)); update.declareParameter(new SqlParameter(Types.BOOLEAN)); update.compile(); Object[] parameters = new Object[] { group.getName(), group.getDescription(), group.getOwnerID(), group.getIsPublic() }; update.update(parameters); }

  12. The Model: MySQL Group Table

  13. The Model: SQL Mapping Queries publicclass GroupMappingQuery extends MappingSqlQuery { public GroupMappingQuery(DataSource dataSource) { super.setDataSource(dataSource); } protected Object mapRow(ResultSet rs, int i) throws SQLException { Group group = new Group(); group.setDescription(rs.getString("description")); group.setId(rs.getInt("id")); group.setName(rs.getString("name")); group.setOwnerID(rs.getInt("owner_profile_id")); group.setOwnerName(rs.getString("owner_profile_name")); group.setOwnerEmail(rs.getString("owner_email")); group.setIsPublic(rs.getBoolean("is_public")); group.setMemberCount(rs.getInt("members")); group.setImageID(rs.getInt("image_id")); return group; } }

  14. Temporal Analytics • NPOnet tracks every action that occurs within the system. • NPOnet stores these actions in histories that take place over time.

  15. Future Work • Administrative Tools • Extensible Architecture: blogs, wikis, instant messaging, more analysis • Estimated Cost: 600 hours for NPOnet at $50/hr is $30,000 • Grant Opportunities • Summer Internships

  16. Thanks to the Center for Nonprofit Management for making NPOnet possible.

More Related