Nodejs Api Showcase

screenshot of Nodejs Api Showcase
express

A Node.js App Architecture showcase heavily influenced by the Clean Architecture and Hexagonal Architecture, using MongoDB.

Overview:

The repository is a Node.js app architecture showcase that utilizes Express, MongoDB, and Mongoose as ORM. It features an implementation of an authentication system using JSON Web Token for managing user login data in a Node.js web server. The architecture is heavily influenced by Clean Architecture principles, with a focus on decoupling modules, implementing Dependency Injection, and following the airbnb JavaScript style guide.

Features:

  • Node.js App Architecture Showcase: Demonstrates the use of Express, MongoDB, and Mongoose in a Node.js application.
  • Authentication System: Implements a user authentication system using JSON Web Token.
  • Clean Architecture: Follows the Clean Architecture principles, ensuring modularity and testability.
  • Dependency Injection (DI): Uses DI to decouple modules, facilitate unit testing, and speed up development.
  • Repositories in Data Layer: Utilizes repositories to abstract data sources and map entities to application models.
  • Services in Domain Layer: Implements services to apply business rules on app models independently of database implementations.
  • Routes/Controller Layer: Defines routes in the Express app that depend on services from the domain layer.
  • Entry Point (server.js): Serves as the entry point for the application, independent of express.js or other Node.js frameworks.

Summary:

The repository showcases a Node.js app architecture utilizing Express, MongoDB, and Mongoose, with a focus on Clean Architecture principles, Dependency Injection, and decoupling modules for ease of testing and development. By following the provided guidelines and utilizing the implemented layers (data, domain, routes/controller), developers can build robust Node.js applications with a clear separation of concerns and flexibility in data source usage.

express
Express

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

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.