/mini_amazon

An E-commerse Website

Primary LanguageCSSMIT LicenseMIT

Mini-Amazon

This is a group final project for Duke COMPSCI 516 course.
Demo Link.
Demo Video

All passwords and tokens in the history commits have been removed and revoked. All new passwords and tokens are randomly generated.

Team Members

  • Tianjun Mo (tm326): Account and Purchases
  • Zheng Zhang (zz277): Products and Cart
  • Dingzhou Wang (dw299): Inventory and Order Fulfillment
  • Enmiao Feng (ef141): Feedback and Messaging

Development Workflow

  1. Develop: Update master branch, checkout a new branch from master branch and named as dev_{name}_{feature}. eg.: dev_tm326_login
  2. Switch to the new branch
  3. Develop new features on the new branch and test on the local machine (connected to a remote database)
  4. After fully tested, push your code to GitHub and create a Pull Request. After reviewing (diffing) the code, merge it to master branch and delete the development branch.
  5. Automatically deploy to server via CI/CD workflow.

Development

  1. Rename template.env as .env and modify it to store sensitive passwords and secrets.

  2. Create and activate venv:

$ python3 -m venv ./venv
$ source ./venv/bin/activate
  1. Install dependencies:
$ make install
  1. Run server:
$ make run

Deployment

The Docker-compose will automatically deploy this Mini-Amazon service, Postgres Database, MinIO Object Storage and load a bunch of fake data into it.

  1. Rename template.env as .env and modify it to store sensitive passwords and secrets.

  2. Check docker-compose.yaml, and modify it if you want.

  3. Deploy with Docker-compose

    $ docker-compose up -d

    PS: If this is not able to init the database, try it again!

Original Readme