This application was made during a course by Rodrigo Manguinho at Udemy.
The course's objective is to show how to create a system with React, using the latest technologies, such as Hooks, Recoil and a well defined architecture and also decoupled, using TDD for testing, Clean Architecture to organize the code and distribute the responsability across layers, always following the best design patterns and practices such as SOLID, DRY, YAGNI, KISS.
- 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
- Dependency Injection
- Composition Root
- Builder
- Proxy
- TDD
- Clean Architecture
- DDD
- Reactive Programming
- Responsive Layout
- Conventional Commits
- GitFlow
- Modular Design
- Dependency Diagrams
- Use Cases
- Continuous Integration
- Continuous Delivery
- Continuous Deployment
- Typescript
- React
- Recoil
- React Testing Library
- React Router DOM
- Cypress
- Jest
- Axios
- Git
- Webpack
- SASS + Animations
- NPM
- Travis CI
- Circle CI
- Faker
- Coveralls
- Husky
- Lint Staged
- Eslint
- Standard Javascript Style
- Functional Components
- UseState
- UseContext
- UseEffect
- UseHistory
- UseRef
- UseParams
- Custom Hooks
- UseRecoilState
- UseResetRecoilState
- UseRecoilValue
- UseRecoilSetState
- Atom
- Router
- Memo
- Alias
- Custom Log
- Branch
- Reset
- Amend
- Tag
- Annotated Tag
- Stash
- Rebase
- Merge
- Add
- Commit
- Push
- Pull
- Shortlog
- Status
- Advanced OOP
- Interface
- Type Alias
- Namespace
- Module
- Utility Types
- Paths Modularization
- Build
- Deploy
- Generics
- Unit Tests
- Integration Tests
- e2e Tests
- Test Coverage
- Test Doubles
- Mocks
- Stubs
- Spies
- Fakes
- Dummies