https://github.com/leeocoder/survey-api
https://github.com/leeocoder/survey-api
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/leeocoder/survey-api
- Owner: leeocoder
- Created: 2022-01-30T23:13:13.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2022-02-22T01:19:29.000Z (about 4 years ago)
- Last Synced: 2025-01-13T09:46:33.583Z (about 1 year ago)
- Language: TypeScript
- Size: 642 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# **Clean Node API**
> ## 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
> ## Methodology and Designs
* TDD
* Clean Architecture
* DDD
* Conventional Commits
* GitFlow
* Modular Design
* Dependency Diagrams
* Use Cases
* Continuous Integration
* Continuous Delivery
* Continuous Deployment
> ## Library and Tools
* NPM
* Typescript
* Git
* Docker
* Jest
* MongoDb
* Travis CI
* Swagger
* Bcrypt
* JsonWebToken
* Faker
* Coveralls
* Validator
* Express
* Apollo Server Express
* Graphql
* Graphql ISO Date
* Graphql Scalars
* Graphql Tools
* 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
> ## Node Features
* Documentation API with Swagger
* API Rest with Express
* GraphQL with Apollo Server
* Error log
* Security (Hashing, Encryption e Encoding)
* CORS
* Middlewares
* Routes Access Level (Admin, User e Anonymous)
* Heroku's deploy
* Serve Static File
> ## GraphQL Features
* Types
* Queries
* Mutations
* Resolvers
* Directives
* Scalars
* Plugins
> ## Git Features
* Alias
* Log Personalizado
* Branch
* Reset
* Amend
* Tag
* Stash
* Rebase
* Merge
> ## Typescript Features
* Advanced OOP
* Interface
* TypeAlias
* Namespace
* Utility Types
* Paths Modularization
* Settings
* Build
* Deploy
* Use of Breakpoints
> ## GraphQL Features
* Resolvers
* Type Definitions
* Directives
* Scalars
* Plugins
* Error Handling
> ## Tests Features
* Testes Unitários
* Testes de Integração (API Rest & GraphQL)
* Cobertura de Testes
* Test Doubles
* Mocks
* Stubs
* Spies
* Fakes
> ## MongoDb Features
* 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