Awesome Open Source
Awesome Open Source

Typescript Clean Architecture

It is my attempt to create Clean Architecture based application in Typescript.

License: MIT Build Quality Gate Status Coverage Lines of Code


IPoster is a simple fictional application that allows users to publish posts.

Main Entities

  1. User
  2. Post
  3. Media

Use Cases

  • User -> IPoster

    1. User can create Guest account in IPoster
    2. User can create Author account in IPoster
  • User -> Media

    1. Author can create own Media
    2. Author can edit own Media
    3. Author can get own Media
    4. Author can get own Media list
    5. Author can remove own Media
  • User -> Post

    1. Author can create own draft Post
    2. Author can edit own Post
    3. Author can attach an image Media to own Post
    4. Author can publish own Post
    5. Author can get own Post
    6. Author can get own Post list
    7. Author can remove own Post
    8. Author and Guest can get published Post
    9. Author and Guest can get list with published Posts

Local Development

  • Docker

    All necessary external services are described in the ./docker-compose.local.yml:

    • Run docker-compose -f docker-compose.local.yaml up -d
    • Stop docker-compose -f docker-compose.local.yaml stop


    1. PostgreSQL - Credentials.
    2. Minio - Credentials.
  • Building

    1. Install libraries - npm install
    2. Build application - npm run build
  • Configuring

    Configuring is based on the environment variables. All environment variables must be exposed before starting the application. See all environment variables.

  • Running

  • Linting

    • npm run lint
  • Testing

    • Prepare environment - docker-compose -f docker-compose.test.yaml up -d
    • Run tests - npm run test
    • Run tests with coverage - npm run test:cov
  • Libraries checking

    • Show new libraries' versions - npm run lib:check
    • Upgrade libraries' versions - npm run lib:upgrade
  • IDE

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Typescript (246,210
Nodejs (53,596
Backend (3,288
Clean Architecture (1,687
Unit Testing (1,682
Nestjs (1,467
Ddd (1,070
Typeorm (900
Clean Code (685
E2e Testing (153
Related Projects