This application is based on the clean code architecture. The reason i prefer to use this architecture is because it makes change easier and in world of software only change is constant.
Few words about the above architecture:
Inner Layer Entities. Handles the creation and reading of our entities (todo). DB. Our choice of DB (in memory, MongoDB, SQL), this is independent of the model. Note that in Clean Architecture this is considered an outer layer framework, but for practical applications I find it easier to place it inner and have the data-access layer depend on it rather than injecting it in.
Usecases: Defines the interaction or behavior of the system.
Middle Layer Adapters. Handles transfer between the frontend and api (like an ORM). UseCases. As the name explains the use case are about the
Outer Layer View and Containers. Represents the UI or interface (Web or CLI). It communicates only with the data-access layer. Views are dump components and containers have states related to the view.
For Deployment
yarn
npm install -g yarn
git clone https://github.com/Abdulmoiz-Ahmer/todo-ui.git
yarn install
yarn start
This repository has been used with a todo backend api and it's repository.
Acceptance testing: Acceptance tests are in the tests/acceptance directory. Can be invoked with:
yarn test:acceptance
Component: Component tests are in the tests/acceptance directory. Can be invoked with:
yarn test:component
Unit testing: Component tests are in the tests/unit directory. Can be invoked with:
yarn test:unit
Contract Driven Testing:
yarn test:contracts
Sample test run report of circleci pipeline
Libraries used for testing:
Note: To invoke all kind of tests use:
yarn test
Contributions of any kind are greatly appreciated.
git checkout -b feature/AmazingFeature
)git commit -m 'Add some AmazingFeature'
)git push origin feature/AmazingFeature
)Distributed under the MIT License.
Your Name - Abdulmoiz Ahmer - [email protected]
Project Link: https://todo.ui.cryptobros.site