This project was developed following Udemy's "NodeJs, Typescript, TDD, DDD, Clean Architecture e SOLID" class.
- 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
- 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
- API Docs with Swagger
- API Rest with Express
- GraphQL with Apollo Server
- Log de Erro
- Security(Hashing, Encryption & Encoding)
- CORS
- Middlewares
- Access leves in routes (Admin, User & Anon)
- Heroku Deploy
- Static files
- Types
- Queries
- Mutations
- Resolvers
- Directives
- Scalars
- Plugins
- Alias
- Custom Log
- Branch
- Reset
- Amend
- Tag
- Stash
- Rebase
- Merge
- Advanced POO
- Interface
- TypeAlias
- Namespace
- Utility Types
- Paths Modularization
- Configs
- Build
- Deploy
- Breakpoints
- Resolvers
- Type Definitions
- Directives
- Scalars
- Plugins
- Error Handling
- Unit tests
- Integration tests (API Rest & GraphQL)
- Coverage
- Test Doubles
- Mocks
- Stubs
- Spies
- Fakes
- Connect e Reconnect
- Collections
- InsertOne e InserMany
- Find, FindOne e FindOneAndUpdate
- DeleteMany
- UpdateOne
- Aggregation (Match, Group, Unwind, Lookup, AddFields, Project, Sort)
- ObjectId
- Upsert e ReturnOriginal
- Push, Divide, Multiply, ArrayElemAt, Cond, Sum
- Filter, Map, Reduce, MergeObjects, ConcatArrays
- Node.js
- TypeScript
- Husky
- Express
- Nodemailer
- MongoDB
- Heroku
- Jest
- Docker
- Docker Compose
- NPM
- Git
- Travis CI
- Swagger
- Bcrypt
- JsonWebToken
- Faker
- Coveralls
- Validator
- Express
- Apollo Server Express
- Graphql
- Graphql ISO Date
- Graphql Scalars
- Graphql Tools
- Supertest
- 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
git clone [email protected]:filipe1309/rm-clean-ts-api.git
cd rm-clean-ts-api
Up the container with tha API & DB:
make up
Stop with
make down
See Makefile for more information
Access http://localhost:5050/api
Access docs http://localhost:5050/api-docs
make test
make test-verbose
make test-unit
make test-integration
make test-staged
make test-ci
make test-clear
Done withΒ Β :heart:Β Β by Filipe Leuch Bonfim π
@ Generated with ShubcoGen Templateβ’ v0.3.11
β Docs