In this project for the McGill ECSE 321: Introduction to Software Engineering course, our team of six students has developed a comprehensive Grocery Store Software System (GSSS) to support a local grocery store in managing interactions with customers, employees, and the store owner. The GSSS enables customers to browse and order food items, household goods, and ready-made food online for delivery or pickup through a web interface and a mobile application.
The system supports account creation for customers either through the web and app interfaces or through store employees. While local customers enjoy free delivery, those outside the town limits are charged a delivery fee. Pickup orders incur no service fee. Store management functionalities, including scheduling, staffing, and operational hours, are exclusive to the store owner, who also possesses all employee privileges.
The software is designed with a multi-tier architecture and supports both a web frontend and an Android mobile application, each integrating seamlessly with a backend deployed on Heroku. The backend is accessible via RESTful API calls, ensuring flexible and efficient operations.
- Project Wiki: Contains comprehensive documentation, including meeting minutes, continuous integration notes, user documentation, domain model decisions, requirements and use case diagrams, testing documentation, and REST API documentation.
- Business Proposal Slides
- Feature Demo Video
The application's functional and non-functional requirements are detailed here, with refined use cases that guide the design and development process.
The UML Class Diagram illustrates the system's structure and is discussed in-depth here.
Documentation of all RESTful service endpoints and their testing can be found here.
The final architecture of the GSSS is accessible here, providing a detailed overview of the system's layout and interaction patterns.