Students in their final year of a Computer Science bachelor’s degree program will often undertake a capstone project to demonstrate their knowledge and skills. One potential Computer Science capstone project could be developing a web application for a nonprofit organization to help streamline and improve their operations.
The nonprofit organization in this example is a local animal shelter that cares for lost, abandoned, and surrendered pets in the community until they can be adopted into forever homes. Currently, the shelter uses a combination of paper records and basic spreadsheet software to track information about the animals in their care, adoptions, volunteer schedules, and other aspects of running the shelter. This process is inefficient and error-prone. Key stakeholders like the director, staff members, and volunteers all need access to the same information but it is difficult to keep the paper and digital records synchronized. Aspects like generating reports on animal intake and outcomes or analyzing trends over time are very time-consuming without integrated software.
For the capstone project, a student would work directly with the animal shelter to understand their specific process and information needs in depth. Important entities that would need to be represented in the application would include animals, animal medical records, adoptions, volunteers, donations, and events. Key requirements identified include:
A central database to store all entity information and relate entities to each other (e.g. linking an animal to its medical records). This ensures a single source of truth and allows queries and reports to pull from the integrated data.
User accounts and permissions to control access to different areas of the application and data. For example, volunteers would only see information related to their scheduled shifts while administrative users could access all areas.
Intuitive interfaces for shelter staff, volunteers, potential adopters, and the general public. Staff interfaces need efficient forms and views for common actions while public interfaces only need to display relevant information.
Reports and analytics features. Pre-built reports on topics like animal intake sources over time, most common medical issues, busy adoption times/seasons etc. Flexible querying of the database for custom analysis as needed.
Communication features. Automatic emails/notifications for common scenarios (i.e. alerting a fosters when their animal is available for adoption). Potential for online/mobile access for aspects like checking schedules.
To implement this, the student would build out a full-stack web application using modern web development technologies. On the front-end, a framework like React would allow for building responsive, component-based user interfaces. A back-end API and database using a framework like Django/Python or Ruby on Rails would provide the data processing capabilities and data persistence. Authentication would be implemented using industry standard methods like JSON Web Tokens for user login/authorization. Tests would be written using a framework like Jest or Mocha/Chai to ensure code quality and prevent regressions.
Key phases of the project would include: database and API modeling and implementation, building out core data entry and viewing functionality for key entities, developing sample reports and automated notifications/emails, implementing user accounts/permissions, polishing UI/UX based on feedback, documenting and testing the codebase. Upon completion, a working demo of the application would be delivered to the nonprofit for feedback. Future potential enhancements could also be proposed based on their extended needs.
A project of this scope would allow the student to develop a full-stack web application from concept to deployment while gaining real-world experience working with an external client. They would get practice applying techniques for requirement gathering, iterative development, database and API design, frontend/backend development, testing, and documentation/knowledge transfer. Upon completion, the nonprofit organization would benefit greatly from an integrated software solution to manage their operations more efficiently and make data-driven decisions to better serve their community. This capstone would be an excellent demonstration of a computer science student’s full skill set through a meaningful project.