SYSC 4806 A Project
Name | Student Number |
---|---|
Arthur Atangana | 101005197 |
Nicholai Ponomarev | 101182048 |
Rebecca Elliott | 101199034 |
Michael De Santis | 101213450 |
Visit the Mini-Shopify web application!
The Mini-Shopify project is a web application, developed using the Java Spring Boot framework, that provides a simple and easy forum for merchants and customers to interact in an online marketplace. Merchants are able to create one or more shops where they may list various products for purchase. Customers may browse merchant shops to view and purchase items, or they may rely on the site's various search mechanisms to help them find the products they want. Customers may add items to their cart from a vendor's shop, and initiate purchase of the items in their shop through a transaction.
Project milestones.
Use Cases for this project used to drive the design and implementation.
The Mini-Shopify project is being developed with Continuous Integration (CI) (aka. Trunk-Based Development) practices, as described by Fowler.
All source code is version controlled by git
, with additional CI functionality provided by GitHub.
Once developers have taken their sprint issues at weekly scrums, development branches for each issue are forked from the repository's mainline.
When developer's are ready to commit their changes, they issue a Pull Request (PR) for the development branch directly against the project mainline, with each PR subject to code reviews by at least 2 other developers.
When a PR is successfully merged, corresponding GitHub issues are closed.
This project also takes advantages of the Continuous Deployment (CD) capabilities provided by GitHub Actions.
Upon every successful merge to the repository's mainline, the updated application is automatically deployed to Azure.
The GitHub Actions Workflow for deployment is defined in the file main_sysc4806-shopify.yml
, and may be actively monitored or later reviewed here.
Unit and integration tests are automatically executed upon every mainline and feature branch push to the remote repository as a GitHub Action. The Workflow for these tests are defined in the file run-tests.yml
, and may be actively monitored or later reviewed here.
N.B. If tests do not pass on the project's mainline, this is because they are caused by known bugs tracked in our project's GitHub Issues and Kanban board that are actively being worked on.
For a list of all issues, please refer to the GitHub Issues page on this project's repository.
To view the Kanban board for this project, please refer to the GitHub Kanban page on this project's repository.
Relevant retrieval, build, and usage procedures for this project.
Retrieve this repository's source code through one of the following methods:
git https://github.com/npono21/mini-shopify.git
git clone git@github.com:npono21/mini-shopify.git
gh repo clone npono21/mini-shopify
zip
archive from the GitHub Repository.To build and execute the project locally in IntelliJ, select the AccessingDataJpaApplication.java
class in the Project browser, and select Run (SHIFT + F10
).
Unit and integration tests are automatically executed upon every mainline and feature branch push to the remote repository as a GitHub Action; however, tests may also be run locally. If you wish to execute the entire suite of unit and integration tests locally under Maven, you may issue the following command from the project's root:
mvn -B test --file pom.xml
Design diagrams generated for this project.
The current UML class diagram for the project is visualized below:
The current relational database schema design for the project is visualized below: