Hello,
This is our course project for ECE651 at the University of Waterloo. We created a stock trading application that simulates buying/selling stocks. The frontend is written in TypeScript with React framework. The backend is written in Java with MyBatis helping generate code.
We received a perfect mark for this project. The code is fully covered with test cases in terms of statement and branch coverage.
Thank you,
Felix Jing, Boyuan Brian Ren, Qinyi Xu, Cuiyang Wang & Yiwei Wang
- clone the repo to your local directory
- Windows/Mac: install Docker Desktop
- Linux:
sudo apt-get update
sudo apt-get install docker.io # install docker
sudo curl -SL https://github.com/docker/compose/releases/download/v2.15.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo usermod -aG docker $USER
You will need to create your own mySQL database, and change the configuration files backend/src/main/resources/application.yml and backend/src/main/resources/generatorConfig.xml accordingly.
A final snapshot of our database on AWS (which stores the final state of the database, and can be restored) can be shared with you if you contact the owner of this repository through LinkedIn.
Follow this article to fork and create a Pull Request to contribute to this project.
- use
cdcommand to go into the project code directory (Windows: powershell, Mac/Linux: terminal). - run
docker-compose up. The docker containers will keep running in the terminal. It does not stop. - Open "127.0.0.1" on your browser and do your test/checking. Modify your code. Then run
docker-compose build. - After you are done, use "ctrl + c" to terminate the docker containers.
cd frontendto change directory into the frontend- run
npm install,npm run buildandnpm testin that order for the first time. Only runnpm run buildandnpm testafterwards, unless there is a package version change. - open
frontend/coverage/lcov-report/index.htmlto view the coverage report.
cd backend- run
mvn clean test jacoco:report - open
backend/target/site/jacoco-ut/index.htmlto view the coverage report.