Skip to content

πŸ§… A clean architecture scaffold in React that is easy to understand.

License

Notifications You must be signed in to change notification settings

carlossalasamper/react-clean-architecture

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

React Clean Architecture

A React scaffold with a clean architecture that is easy to understand.

Features

  • πŸ“ Clean architecture. Layered file structure
  • πŸ›‘οΈ TypeScript bulletproof typing
  • ⚑ Development environment: Vite
  • 🎨 Design System and UI: Tailwind CSS + Headless UI
  • πŸ–ŒοΈ Code format: ESLint
  • 🐩 Git hooks: Husky
  • πŸ’‰ Dependency injection: Inversiland
  • 🌍 I18n: i18next
  • 🚒 Navigation: React Router
  • 🧰 State Manager: Mobx

πŸ“ Project File Structure

⚠️ What makes the implementation of the clean architecture concept more difficult in my opinion is that since it is defined theoretically, each person implements it using different terminology or omitting/adding some layers or pieces to simplify it or continue to make it more complex.

For this reason, I think it is important to emphasize the documentation that accompanies the architecture to avoid obstacles with the rest of the people who are going to work with this system.

I briefly explain each of the four layers that make up clean architecture within the /src folder:

└── /src
    β”œβ”€β”€ AppModule.ts               # Dependency injection root module
    β”œβ”€β”€ /core                      # Core bounded context
    β”‚   └── /presentation
    └── /post                      # Post bounded context
        β”œβ”€β”€ /domain
        β”œβ”€β”€ /application
        β”œβ”€β”€ /infrastructure
        └── /presentation

Domain

This layer contains all the enterprise business rules: entities, specifications...

Application

This layer contains the use cases of the bounded context.

Infrastructure

This layer contains the technical details (implementation) of the domain layer and third parties integrations.

Presentation

This layer contains the React source code: views and controllers (Mobx controllers).

Referencesw


Run

Dev

yarn dev

Tailwind dev

yarn tailwindcss:dev

Build

yarn build

Tailwind build

yarn tailwindcss:build

Support the project

β˜•οΈ Buy me a coffee so the open source party will never end.

Buy Me A Coffee

YouTube | Instagram | Twitter | Facebook

godofprogramming.com