Skip to content

McGill-ECSE321-Winter2022/project-group-group-03

Repository files navigation

Welcome to Group 03's Online Grocery Store

Java CI with Gradle

Project Scope

This is an online Grocery Store Software System made for Dr. Kanaan's Grocery Store, using the Agile methodology. This Software System allows customers to create an account which they can use to buy products from their favourite grocery store. Customers can buy products from the ease of their home by having it delivered to their address. However, an option for them to pick up their groceries from an in-store location is also available if they wish to do so. The system will be mainly managed by the owner Dr. Kanaan. He can hire and fire employees from this system, while also allowing him to manage his employee's schedules. He can also decide the business hours of the store as well as occasions of holidays.

Deploying the project as a Heroku application

Backend

Backend App Name:

grocerystore-backend-ise2022w

prod-database:
  • spring.datasource.url:jdbc:postgresql://ec2-3-91-127-228.compute-1.amazonaws.com:5432/daaah13ecc2e9c
  • spring.datasource.username:vdgjvdmjzreell
  • spring.datasource.password: 1766bd0bda93b6655add493bb145aa4dd24414a48a00e8466b9c95b9774f155c
test-database:
  • spring.datasource.url:jdbc:postgresql://ec2-34-224-226-38.compute-1.amazonaws.com:5432/dt1ltla077q2v
  • spring.datasource.username:glxeofrnzvwwyi
  • spring.datasource.password: 0e03c6d3baef79a1dc4fbbb5cee69313ce7d611681861983700930416cb53920

Frontend

The frontend is deployed to Heroku at grocerystore-frontend-ise2022g . The base URL is

https://grocerystore-frontend-ise2022g.herokuapp.com/.

The backend must be running when using the website. In our deployment, we have created a store, all the business hours and the owner in order for it to be secure. Of course, all this information can be modified in our application, except the Store credentials.

How to run this project

To run the project, clone this repository and run the java file GroceryStoreBackendApplication.java
locally as a Spring Boot Application. In order to choose which database the application runs on, open application.properties and set spring.profiles.default =test or =prod depending on which one you want to use.

This will deploy the backend here locally.

Heroku hosts the backend here once deployed.

Team Members

Name Major Team Role Year GitHub
Abhijeet Praveen Computer Engineering Project Manager U2 abhijeetpraveen
Ari Arabian Computer Engineering Testing Engineer U2 AriA700
Edward Habelrih Computer Engineering Testing Engineer U2 edwardhab
Neel Faucher Computer Engineering Documentation Manager U2 NeelFaucher
Rooshnie Velautham Computer Engineering Software Engineer U2 rooshnie23
Sébastien Cantin Computer Engineering Software Engineer U2 seb8stien1

Deliverable 1

Tasks and Time Spent

Name Tasks Time Spent (hrs)
Abhijeet Praveen
  • Participated in finishing the class diagram
  • Participated in finishing state diagram
  • Setup initial JPA tags
  • Helped debug JPA tags errors
  • Completed use-case diagram separation into two
  • Started and continuously updated project README.md
  • Started project wiki and deliverable 1 report in the correct format
  • Helped write unit tests for the persistence layer
  • Helped debug errors during testing of persistence layer
  • Participated in formulating 15 most important functional and non-functional requirements
  • Completed use case specification for searching and purchasing items online
  • Helped clean up umple generated code
  • Assured backlog is being maintained
  • Assured checklist from deliverable instructions have been met
37
Ari Arabian
  • Contributed ideas to the class diagram
  • Helped debug JPA tags
  • Setup the Spring-based backend
  • Setup the database, setup application.properties
  • Helped setup CRUD repositories
  • Helped write unit tests for the persistence layer
  • Completed use case specification for adding items to inventory
  • Helped clean up umple generated code
37
Edward Habelrih
  • Contributed and participated in conceiving and building the class diagram
  • Setup all CRUD repositories
  • Setup persistence layer
  • Coded and mapped all unit tests for the persistence layer
  • Setup Spring-based backend
  • Setup application properties
  • Helped debug JPA tags
  • Completed the use case specification for viewing weekly schedules
37
Neel Faucher
  • Completed use case specification for hiring and firing employees
  • Helped team members fix their use case specifications
  • Took meeting minutes for all 4 meetings
  • Helped setup repository
  • Wrote wiki for deliverable 1
  • Completed the UML class diagram
  • Helped with testing of persistence layer
  • Helped clean up umple generated code
25
Rooshnie Velautham
  • Helped to design the UML class diagram and UML state diagram
  • Setup the initial JPA tags
  • Helped debug JPA tags errors
  • Completed use-case diagram
  • Project wiki and deliverable 1 report in the correct format
  • Added all the functional and non-functional requirements as issues
  • Distributed all the issues to members of the group
  • Assure that that the backlog is up-to-date
  • Helped debug errors during testing of persistence layer
  • Participated in formulating 15 most important functional and non-functional requirements
  • Completed use case scenario specification for a user creating an account
  • Helped clean up umple generated code
  • Wrote testing documentation on wiki and README.md
  • Made sure that everything from the correcting scheme is done neatly
29
Sébastien Cantin
  • Designed most of the UML class diagram and UML state diagram
  • Wrote the rationale for the UML class diagram
  • Setup the Heroku database
  • Setup JPA tags
  • Helped debugging during testing of persistence layer
  • Setup initial issue on GitHub project view
  • Participated in formulating 15 most important functional and non-functional requirements
  • Started the initial use case diagram
  • Cleaned up umple generated code
38

The deliverable 1 report can be found here

Deliverable 2

Tasks and Time Spent

Name Tasks Time Spent (hrs)
Abhijeet Praveen
  • Started and continuously updated project README.md
  • Started project wiki and deliverable 2 report in the correct format
  • Helped other team members write unit tests for the service layer
  • Helped debug errors during testing of service layer
  • Helped update unit tests for the persistence layer
  • Helped debug errors during testing of persistence layer
  • Updated model classes in accordance with the service methods
  • Wrote the DTO classes for BusinessHour and Item
  • Wrote the service classes for BusinessHour and Item
  • Wrote the REST controller classes for BusinessHour and Item
  • Wrote the TestService classes for BusinessHour and Item
  • Assured checklist from deliverable instructions have been met
  • Assured backlog is being maintained
  • Added Gradle task for running integration tests
  • Ran Integration tests on Postman
77
Ari Arabian
  • Helped other team members write unit tests for the service layer
  • Helped debug errors during testing of service layer
  • Helped update unit tests for the persistence layer
  • Helped debug errors during testing of persistence layer
  • Updated model classes in accordance with the service methods
  • Wrote the DTO classes for DeliveryOrder and PickupOrder
  • Wrote the service classes for DeliveryOrder and PickupOrder
  • Wrote the REST controller classes for DeliveryOrder and PickupOrder
  • Wrote the TestService classes for DeliveryOrder and PickupOrder
  • Assured checklist from deliverable instructions have been met
  • Ran Integration tests on Postman
74
Edward Habelrih
  • Helped other team members write unit tests for the service layer
  • Helped debug errors during testing of service layer
  • Helped update unit tests for the persistence layer
  • Helped debug errors during testing of persistence layer
  • Updated model classes in accordance with the service methods
  • Wrote the DTO classes for Customer and Store
  • Wrote the service classes for Customer and Store
  • Wrote the REST controller classes for Customer and Store
  • Wrote the TestService classes for Store and Customer
  • Assured checklist from deliverable instructions have been met
  • Ran Integration tests on Postman
74
Neel Faucher
  • Helped other team members write unit tests for the service layer
  • Helped debug errors during testing of service layer
  • Helped update unit tests for the persistence layer
  • Helped debug errors during testing of persistence layer
  • Updated model classes in accordance with the service methods
  • Wrote the DTO classes for WorkShift and PurchasedItem
  • Wrote the service classes for PurchasedItem
  • Wrote the REST controller classes for PurchasedItem and WorkShift
  • Wrote the TestService classes for PurchasedItem
  • Assured checklist from deliverable instructions have been met
  • Ran Integration tests on Postman
  • Reported the Software Quality Assurance in the wiki
  • Reported the RESTful service endpoints in the wiki
  • Reported the Test Plan in the wiki
72
Rooshnie Velautham
  • Helped other team members write unit tests for the service layer
  • Helped debug errors during testing of service layer
  • Helped update unit tests for the persistence layer
  • Helped debug errors during testing of persistence layer
  • Updated model classes in accordance with the service methods
  • Wrote the DTO classes for Holiday
  • Wrote the service classes for Holiday and WorkShift
  • Wrote the REST controller classes for Holiday
  • Wrote the TestService classes for Holiday and WorkShift
  • Assured checklist from deliverable instructions have been met
  • Ran Integration tests on Postman
  • Added the Test coverage report dependencies
  • Started and continuously updated project README.md
  • Started project wiki and deliverable 2 report in the correct format
  • Reported the Software Quality Assurance in the wiki
  • Reported the RESTful service endpoints in the wiki
  • Reported the Test Plan in the wiki
73
Sébastien Cantin
  • Continuously updated project README.md
  • Helped other team members write unit tests for the service layer
  • Helped debug errors during testing of service layer
  • Helped update unit tests for the persistence layer
  • Helped debug errors during testing of persistence layer
  • Updated model classes in accordance with the service methods
  • Wrote the DTO classes for Owner and Employee
  • Wrote the service classes for Owner and Employee
  • Wrote the REST controller classes for Owner and Employee
  • Wrote the TestService classes for Owner and Employee
  • Assured checklist from deliverable instructions have been met
  • Assured backlog is being maintained
  • Fixed application.properties
  • Wrote application-prod.properties
  • Wrote application-test.properties
  • Added Gradle task for running integration tests
  • Ran Integration tests on Postman
76

The deliverable 2 report can be found here

Deliverable 3

Tasks and Time Spent

Name Tasks Time Spent (hrs)
Abhijeet Praveen
  • Set up deliverable 3 wiki
  • Created Figma UI mockup of login and sign up pages
  • Created login page
  • Created sign up page with vue.js
  • Helped create owner page frontend
  • Created axios rest API calls for the login page
  • Created axios rest API calls for the sign up page; dynamic integration with backend
  • Helped create routing between different pages in frontend and making navigation bar buttons dynamic
  • Helped create dynamic integration of checkout page
  • Ran integration tests on Postman
  • Assured backlog is maintained
  • Helped debug errors during testing of frontend
98
Ari Arabian
  • Helped create architecture model
  • Helped create Figma UI mockup of view, update holiday and create business hours
  • Helped formulate Software Architecture
  • Helped create frontend pages for set business hour
  • Helped create frontend pages for employee page
  • Helped create frontend pages for set business hours page with vue.js
  • Created axios rest API calls for the business hour and employee pages; dynamic integration with backend
  • Reviewed pull requests
  • Ran integration tests on Postman
  • Assured checklist from deliverable instructions are met
  • Helped debug errors during testing of frontend
95
Edward Habelrih
  • Helped create architecture model
  • Helped create Figma UI mockup of view, update holiday and create business hours
  • Helped other team members finalize the UI mockup
  • Added global styling, to make the theme more coherent and aesthetic
  • Helped create frontend pages for set business hour
  • Helped create frontend pages for set business hour employee page
  • Helped create frontend pages for set business hour set business hours page with vue.js
  • Linked the business hours set to those displayed in the footer
  • Created axios rest API calls for the business hour and employee pages; dynamic integration with backend
  • Ran integration tests on Postman
  • Helped debug errors during testing of frontend
96
Neel Faucher
  • Took meeting minutes for all meetings
  • Created Figma UI mockup of checkout page, active cart, and navigation bar/footer for different user views
  • Helped formulate Software Architecture
  • Created frontend page for cart
  • Created frontend page for owner navigation bar
  • Created frontend page for employee navigation bar
  • Created frontend page for check out page UI with vue.js
  • Created axios rest API calls for the cart and checkout pages; dynamic integration with backend
  • Helped update multiplicities in the backend between employee and order to 1…*
  • Ran integration tests on Postman
90
Rooshnie Velautham
  • Helped create architecture model
  • Created Figma UI mockup of view, update, and owner pages
  • Created frontend page for owner
  • Completed most of Software Architecture
  • Created frontend page for update customer
  • Created frontend page for update employee pages with vue.js
  • Created axios rest API calls for the owner and customer pages; dynamic integration with backend
  • Helped create routing between different pages in frontend and making navigation bar buttons dynamic
  • Ran integration tests on Postman
  • Assured checklist from deliverable instructions are met, created internal checklists
96
Sébastien Cantin
  • Helped create architecture model
  • Created Figma UI mockup of customer page, item list, and homepage
  • Created frontend page for customer
  • Created frontend page for item list
  • Created frontend home page with vue.js
  • Created axios rest API calls for the item list and homepage; dynamic integration with backend
  • Helped update multiplicities in the backend between employee and order to 1…*
  • Reviewed pull requests
  • Refactored order to commission due to reserved keyword error
  • Ran integration tests on Postman
  • Assured backlog is maintained
  • Helped debug errors during testing of frontend
98

The deliverable 3 report can be found here

Deliverable 4

Tasks and Time Spent

Name Tasks Time Spent (hrs)
Abhijeet Praveen
  • Started README.MD for Deliverable 4
  • Completed half of the User Documentation for the webpage
  • Added Javadoc to a few Service, Vue and JS files
  • Continously added functionality to the backend
12
Ari Arabian
  • Added Javadoc to a few Service, Vue and JS files
3
Edward Habelrih
  • Added Javadoc to a few Service, Vue and JS files
3
Neel Faucher
  • Added Javadoc to a few Service, Vue and JS files
3
Rooshnie Velautham
  • Completed half of the User Documentation for the webpage
  • Completed the User Documentation for the Android
  • Added Javadoc to a few Service, Test Service, Vue and JS files
7
Sébastien Cantin
  • Finished implementation of Android Frontend
  • Added Javadoc to Android Frontend
18

The deliverable 4 report can be found here

About

project-group-group-03 created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published