Need help with typescript-clean-architecture?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

pvarentsov
592 Stars 70 Forks MIT License 238 Commits 2 Opened issues

Description

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

Services available

!
?

Need anything else?

Contributors list

No Data

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

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

    Services: 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

    • Start application -
      npm run start
    • Expose ./env/local.app.env and start application -
      npm run start:local

    API documentation will be available on the endpoint GET http://localhost:3005/documentation

  • 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

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.