Our team has been tasked with creating a fully functional web application for an independent game shop's online store. Throughout the project, we will also be delivering documentation that includes all of the software development process and procedures. A local database will be used to store important information for the application.
The application must support a seamless experience for every stakeholder
-
The Owner: Manage all accounts, create/deactivate employee accounts, approve new game requests (update of the game catalog), and respond to customer reviews.
-
Employees: Request new games (update of the game catalog), review refund requests, and view customer accounts (email, physical address, username, order history, wishlist).
-
Customers: View the game catalog, add/remove games into their cart, add/remove games to their wishlist, rate games they have bought out of 5, open a refund request, and view their order history.
All accounts must be able to login with a username and password.
The main goal of this deliverable was to start the project's software design process. Different techniques and steps were used to do so.
- Requirements Model: Identify a list of functional and non-functional system requirements.
- Use-Case Diagrams: Prepare two use-case diagrams documenting some of these requirements.
- Detailed Specifications: Each team member needs to provide a detailed specification of one use case with the main flow and its exceptions.
- Domain Model: Show the relationships between every class of the system and provide a brief rationale.
- Persistence Layer: Develop a persistence layer to access data using Hibernate and an Object-Relational Mapping (ORM) technique.
- Testing of Persistence Layer: Write test cases using read/write operations for each domain model class on the local PostgreSQL database.
- Build System: Needed to automate the process of compiling and packaging the code.
- Project Report: A README file should also be made to introduce the team, the main scope of the project, and individual efforts (in hours). The project wiki should also be visible.
- Project Management: Creation of communication channels (Discord, Instagram). Each issue needs an assignee to trace responsibilities within the team.
- Implementation of Backend Services: Cover use-cases and create/update/delete/get methods via RESTful API.
- Software quality plan: Define test coverage, challenges, and other quality assurance (code reviews, coding conventions, static analysis tools).
- Unit testing of backend services: Develop a test suite for the use cases using the JUnit framework.
- Integration testing of backend services: Demonstrate successful execution of REST APIs.
- Build system: Needed to automate the process of compiling and packaging the code.
- Project management and report: Include README file, project wiki, GitHub issues, backlog and milestone.
- Implementation of Web Frontend: Provide a graphical user interface for web frontend, using HTML, CSS, and JavaScript.
- Integration of Web Frontend with Backend Services: asynchronous calls to backend services via RESTful APIs from deliverable 2.
- Build system: Needed to automate the process of compiling and packaging the code.
- Project management and report: Include README file, project wiki, Github issues, backlog and milestone.
Name | GitHub Username | Deliverable 1 | Deliverable 2 | Deliverable 3 | Total Hours |
---|---|---|---|---|---|
Ana Gordon | anagordon | 11 | 30 | 40 | 81 |
Aerin Brown | aerin-brown-codes | 11 | 16 | 30 | 57 |
Tarek Namani | Tatok-n | 11 | 25 | 25 | 61 |
Jake Kogut | jacobkogut | 11 | 16 | 18 | 45 |
Camille Pouliot | Camomille103 | 11 | 20 | 20 | 51 |
Clara Mickail | claraMickail | 11 | 18 | 20 | 49 |