{"repo":"carlosazaustre/kata-users-ts","free":true,"listed":false,"github":"https://github.com/carlosazaustre/kata-users-ts","clone":"git clone https://github.com/carlosazaustre/kata-users-ts.git","description":"Project to apply Clean Architecture and DDD concepts","language":"TypeScript","stars":60,"topics":["cleanarchitecture","ddd","nextjs","poo","react","solid","typescript"],"license":"MIT","category":"saas-starters-boilerplates","readme_excerpt":"Clean Architecture - \"Users\" Kata General Description Functional Requirements - Display list of users. - Add a new user. - A user must contain name, email, and password as required fields. - Email must be a valid email. - Password must be at least 8 characters, with at least one letter and one number. - The app should show an error if trying to add two users with the same email. - Extra Challenge : - Add address as part of the required information for the user (address, zip code, city). - Only one user per domain can exist (1 user with gmail, etc...). Development Platform - The UI will be a command line or terminal app. - All data in memory, no persistence between executions. - The data source could be an API or Database in the future. - The UI could change in the future to a web app, mobile app, or desktop app. - Business rules must be validated through unit tests. - In tests, dependencies will be replaced by manual fake dependencies. - Equality tests must also be created for value objects and entities. - Use MVP for the presentation layer. Part 1 - Entities - Define entities and value objects. - Business rules must be tested by creating unit tests. - Rules: - The user must have name, email, and password as required fields. - Email must be a valid email. - Password must have a minimum length of 8 characters, have at least one letter and one number. - Two instances of the same email must be equal. - Two instances of the same password must be equal in a comparison. - Two insta","default_branch":null,"files":null,"tree":[],"storefront":"/r/carlosazaustre","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/carlosazaustre/kata-users-ts/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}