Skip to content

A showcase of Clean Architecture in a monorepo structure, using Nx Dev, applied to a fake chat app. This TypeScript and React project is implemented with Test Driven Development (TDD) principles, demonstrating a scalable and maintainable approach to app development.

License

Notifications You must be signed in to change notification settings

Jackmekiss/clean-architecture-monorepo

Repository files navigation

monorepo-clean-architecture-tdd

This project aims to showcase the power and effectiveness of the Clean Architecture pattern, implemented in a monorepo using Nx Dev.

You can see the application in action here: https://monorepo-clean-architecture-tdd.vercel.app

It is a fake chat application, built with React and Typescript, applying Test Driven Development (TDD) principles. The monorepo architecture allows for modular and decoupled code, promoting code reuse and making it easier to manage dependencies.

The monorepo is structured as follows:

  • lib/core - Contains everything related to the domain.
    • lib/core/src/initReduxStore - Initializes the Redux store for orchestration.
    • lib/core/src/{module}/adapters/{primary | secondary} - Houses the stubs or integrations for dependency inversion.
    • lib/core/src/{module}/apis - Contains the API files for Redux RTK.
    • lib/core/src/{module}/domain - Contains the domain model data along with builders.
    • lib/core/src/{module}/gateways - Provides interfaces for the secondary adapters.
    • lib/core/src/{module}/use-cases - Represents explicit use cases.
  • apps/web - Houses all the React code for the web application.

Usage To run the project, clone the repository and follow the installation steps:

# Clone the repository 
git clone https://github.com/Jackmekiss/clean-architecture-monorepo.git 
# Navigate into the directory  
cd monorepo-clean-architecture-tdd 
# Install dependencies 
yarn install 
# Start the application 
nx serve web

Visit http://localhost:4200 in your browser to view the application.

Contributing Your contributions are always welcome! Please have a look at the contribution guidelines first. 🎉

License This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments This project structure is inspired by the principles of Clean Architecture and the power of monorepo structure by Nx Dev. It serves as a showcase for building sophisticated applications using these techniques, with the added benefits of Typescript and React.

For more information, questions, or feedback, please feel free to open an issue. ☀️

About

A showcase of Clean Architecture in a monorepo structure, using Nx Dev, applied to a fake chat app. This TypeScript and React project is implemented with Test Driven Development (TDD) principles, demonstrating a scalable and maintainable approach to app development.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published