Skip to content

jdutheil/booking-ddd

Repository files navigation

Description

This application helps music artist agencies (alias Booker) to manage their contacts and automate prospection.

It is also a try to apply some of the best software engineering concepts, mainly DDD (Domain Driven Design) and Hexagonal Architecture. As a senior developer, I am still learning on those patterns, feel free to comment and use Issues / Discussions to talk about it.

This repository contains the backend stuff ; frontend repository is there : https://github.com/jdutheil/booking-front

Table of contents

Tech stack

  • NestJs
  • Prisma
  • Postgres with Docker
  • Oxide.ts
  • Passport
  • Zod
  • Jest
  • supertest

Context and domain model

Work in progress

Architecture

Work in progress

Base folders structure

configs

Infrastructure module

Libs

DDD modules

Layers

Application layer

Domain layer

Infrastructure layer

Presentation layer

Concepts

Work in progress

Links

This repository arised thanks to the wonderful work of other people, mainly :

Local development

We use Docker containers to manage Postgres instances during development ; one for "live" database, and one for "tests" database. docker-compose file is located under docker folder

Installation

$ pnpm install
$ pnpm prisma migrate deploy

Running the app

# development
$ pnpm start:dev

# production mode
$ pnpm run start:prod

Test

# unit tests
$ pnpm run test:unit:watch

# integration tests
$ pnpm run test:integration:watch

# e2e tests
$ pnpm run test:e2e

# test coverage
$ pnpm run test:cov

Git

git-cz is used to format commit messages ; an util script has been added, that add all changed files to git, commit with git-cz and push :

$ pnpm commit:push

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published