Skip to content

This is an API made using TDD, Clean Architecture, Design Patterns, and SOLID, developed at the @rmanguinho 's course.

License

Notifications You must be signed in to change notification settings

lucfersan/clean-node-api

Repository files navigation

Build Status Coverage Status js-standard-style License: MIT Open Source

🏛️ Clean Node API

This is an API made using TDD, Clean Architecture, Design Patterns, and SOLID.
Explore the docs »

· Report Bug · Request Feature

Special thanks to Rodrigo Manguinho

📚 About The Project

Principles

  • Single Responsibility Principle (SRP)
  • Open Closed Principle (OCP)
  • Liskov Substitution Principle (LSP)
  • Interface Segregation Principle (ISP)
  • Dependency Inversion Principle (DIP)
  • Separation of Concerns (SOC)
  • Don't Repeat Yourself (DRY)
  • You Aren't Gonna Need It (YAGNI)
  • Keep It Simple, Silly (KISS)
  • Composition Over Inheritance
  • Small Commits

Design Patterns

  • Factory
  • Adapter
  • Composite
  • Decorator
  • Proxy
  • Dependency Injection
  • Abstract Server
  • Composition Root
  • Builder
  • Singleton

Methodologies and Designs

  • TDD
  • Clean Architecture
  • DDD
  • Conventional Commits
  • GitFlow
  • Modular Design
  • Dependency Diagrams
  • Use Cases
  • Continuous Integration
  • Continuous Delivery
  • Continuous Deployment

🚀 Installation

  1. Clone the repo
    git clone https://github.com/lucfersan/clean-node-api
  2. Install NPM packages
    yarn

🔥 Running the app

1. If you have docker and docker-compose installed you can run:

  • Up the container
    yarn up
  • Down the container
    yarn down

2. If you don't have docker

yarn build && yarn start
  • Have a MongoDB server running

🤝 Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📑 Documentation

The documentation is made using swagger and it is available at lfs-clean-api.herokuapp.com/api-docs

🗞️ License

Distributed under the MIT License. See LICENSE for more information.

📧 Contact

Lucas Fernandes - fernandes.lucas11@outlook.com

About

This is an API made using TDD, Clean Architecture, Design Patterns, and SOLID, developed at the @rmanguinho 's course.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages