Express Ts Ddd

screenshot of Express Ts Ddd
express
prisma

Nodejs Express-TypeScript-DDD REST API

Overview

The Express-TS-DDD REST API is a boilerplate project that combines the Express framework with TypeScript, Domain Driven Design patterns, IoC/DI, Prisma ORM, and REST API. It includes features like setting up environment variables, running tests, building and compiling code, working with Prisma ORM, integrating AWS Cognito for authentication, and using Docker for development and production environments.

Features

  • Express framework: Utilizes the popular Express framework for building REST APIs.
  • TypeScript: Development language for type safety and enhanced code readability.
  • Domain Driven Design (DDD) patterns: Utilizes DDD principles for organizing code.
  • Inversion of Control (IoC) and Dependency Injection (DI): Implements IoC/DI design pattern for better code organization.
  • Prisma ORM: Handles database connections, migrations, and code schema management efficiently.
  • AWS Cognito authentication: Includes authentication service with AWS Cognito for user authentication.
  • Docker support: Utilizes Docker and Docker Compose for development and production environments.
  • Global logger service: Implements a logger service using Morgan + Winston for logging purposes.

Summary

In summary, the Express-TS-DDD REST API provides a solid foundation for building robust and well-structured REST APIs using a combination of Express, TypeScript, DDD patterns, Prisma ORM, and AWS Cognito for authentication. It also offers Docker support for easy development and production environment setup. The project aims to enhance code quality, scalability, and maintainability by incorporating these technologies and best practices.

express
Express

Express.js is a simple Node.js framework for single, multi-page, and hybrid web applications.

prisma
Prisma

Prisma is a server-side library that helps developers read and write data to the database in an intuitive, efficient and safe way.

fullstack
Fullstack

A fullstack boilerplate provides a starter application that includes both frontend and backend. It should include database, auth, payments, user roles and other backend services to build a fully featured saas or webapps.

docker
Docker

A website that uses Docker for containerization to streamline development, testing, and deployment workflows. This includes features such as containerization of dependencies, automated builds and deployments, and container orchestration to ensure scalability and availability.

eslint
Eslint

ESLint is a linter for JavaScript that analyzes code to detect and report on potential problems and errors, as well as enforce consistent code style and best practices, helping developers to write cleaner, more maintainable code.

typescript
Typescript

TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.