Clique aqui para ver a versão em Português.
This API is part of Professor Rodrigo Manguinho's (Mango) training course on Udemy.
An API with a well-defined and decoupled architecture, using TDD (Test-Driven Development) as a working methodology, Clean Architecture to distribute responsibilities into layers, always following SOLID principles, and applying Design Patterns whenever possible to solve common problems.
- Single Responsibility Principle (SRP)
- Open Closed Principle (OCP)
- Liskov Substitution Principle (LSP)
- Interface Segregation Principle (ISP)
- Dependency Inversion Principle (DIP)
- Don't Repeat Yourself (DRY)
- You Aren't Gonna Need It (YAGNI)
- Keep It Simple, Silly (KISS)
- Composition Over Inheritance
- Small Commits
- Factory
- Adapter
- Composite
- Decorator
- Proxy
- Dependency Injection
- Abstract Server
- Composition Root
- Builder
- Singleton
- TDD
- Clean Architecture
- DDD
- Conventional Commits
- GitFlow
- Modular Design
- Dependency Diagrams
- Use Cases
- Continuous Integration
- Continuous Delivery
- Continuous Deployment
- NPM
- Typescript
- Git
- Docker
- Jest
- MongoDB
- Travis CI
- Swagger
- Bcrypt
- JsonWebToken
- Faker
- Coveralls
- Validator
- Apollo Server Express
- GraphQL
- GraphQL ISO Date
- Supertest
- Husky
- Lint Staged
- Eslint
- Standard JavaScript Style
- Sucrase
- Nodemon
- Rimraf
- In-Memory MongoDB Server
- MockDate
- Module-Alias
- Copyfiles
- Npm Check
- Bson ObjectId
- Apollo Server Integration Testing
- API documentation with Swagger
- REST API with Express
- Error Logging
- Security (Hashing, Encryption, and Encoding)
- Middlewares
- Unit Tests
- Integration Tests (REST API & GraphQL)
- Test Coverage
- Test Doubles
- Mocks
- Stubs
- Spies
- Fakes