phanhuutoan / J-Auction

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

How to run this app with one command ㋡ ㋡ ?:

  1. It's deadly simple. You need to install and run docker first (can see docker link here)
  2. And run yarn start:all or docker compose up, that's it!

1. Project scope and proposal

1.1 Project stack

  • At backend side:
    • I use NestJS(NodeJS, Typescript), PostgreSQL (DB), TypeORM (Like entity framework)
    • Using Jest and an api client for writing integration test and UT
  • At frontend side:
    • I use ReactJS, Typescript and ChakraUI (Build on top of react) for UI framework
    • Using Mobx for state management.

1.2 Database design

  1. I use dbdiagram to design db: database-diagram
  2. Image:

1.3 Backend overal architecture

  1. Visit overal-backend-architecture
  2. Diagrams:

1.4 Backend detailed architecture

The architecture of other parts are easy to understand so I will show the core part of our app: Auction system

  1. Patterns using: Repository pattern, Dependency Injection, factory pattern.
  2. Architecture of auction system: diagram link

1.5 Backend setup locally

Please read Backend instructon: docs/Backend-instruction.md


NOTE: In this project (master branch) I use minutes as a smallest time unit instead of hour so we can easily to test it, we can change it to hour version when everything become stable effortlessly


1.6 Frontend overal architecture

  1. In Frontend I use singleton service pattern and mobx to manage our app store, below is the diagram
  2. Image:

1.7 Frontend detailed architecture

  1. I will explain the complicated parts of our app, the auction system, via the detail diagram.
  2. Image:

1.8 Frontend setup locally

Please read Frontend instructon: docs/Frontend-instruction.md

Demonstration video

  1. Intro
part.1.-.intro.mp4
  1. Demo https://youtu.be/X8fW8lg2T4s

About


Languages

Language:TypeScript 98.1%Language:HTML 1.3%Language:JavaScript 0.5%Language:Berry 0.1%