Skip to content

nandotomio/clean-react

Repository files navigation

Build Status Coverage Status Known Vulnerabilities dependencies Status devDependencies Status js-standard-style GPLv3 License Open Source

React Web App Project - Implementing a Developer Survey

This project is part of the training course of professor Rodrigo Manguinho (Mango) at Udemy.

The objective of the training is to show how to create a system in ReactJs using the new Hooks, Recoil, with a well-defined and decoupled architecture, using TDD (test-oriented programming) as the working methodology, Clean Architecture to make the distribution of responsibilities in layers, always following the principles of SOLID, DRY, YAGNI, KISS, and applying Design Patterns to solve some common problems.

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
  • Dependency Injection
  • Composition Root
  • Builder
  • Proxy

Methodologies and Designs

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

Libraries and Tools

  • Typescript
  • React
  • Recoil
  • React Testing Library
  • React Router DOM
  • Cypress
  • Jest
  • Axios
  • Git
  • Webpack
  • SASS + Animations
  • NPM
  • Travis CI
  • Faker
  • Coveralls
  • Husky
  • Lint Staged
  • Eslint
  • Standard Javascript Style
  • React Flip Move

React Features

  • Functional Components
  • UseState
  • UseContext
  • UseEffect
  • UseHistory
  • UseRef
  • UseParams
  • Custom Hooks
  • UseRecoilState
  • UseResetRecoilState
  • UseRecoilValue
  • UseRecoilSetState
  • Atom
  • Router
  • Memo

Git Features

  • Alias
  • Personalized Log
  • Branch
  • Reset
  • Amend
  • Tag
  • Annotated Tag
  • Stash
  • Rebase
  • Merge
  • Add
  • Commit
  • Push
  • Pull
  • Shortlog
  • Status

Typescript Features

  • Advanced OOP
  • Interface
  • Type Alias
  • Namespace
  • Module
  • Utility Types
  • Paths Modularization
  • Build
  • Deploy
  • Generics

Test Features

  • Unit Tests
  • Integration Tests
  • e2e Tests
  • Tests Coverage
  • Test Doubles
  • Mocks
  • Stubs
  • Spies
  • Fakes
  • Dummies

About

ReactJs Web App using Hooks, Typescript, TDD, Clean Architecture, Design Patterns e SOLID principles

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published