https://github.com/yas-siin/customermanager
A simple CRUD application to manage customer detail info
https://github.com/yas-siin/customermanager
clean-architecture cqrs cqrs-pattern ddd ddd-architecture domain-driven-design dotnet-core entity-framework-core mediatr
Last synced: about 1 month ago
JSON representation
A simple CRUD application to manage customer detail info
- Host: GitHub
- URL: https://github.com/yas-siin/customermanager
- Owner: YAS-SIIN
- License: mit
- Created: 2023-07-20T19:27:08.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2024-10-20T15:47:28.000Z (8 months ago)
- Last Synced: 2025-05-07T04:41:52.623Z (about 1 month ago)
- Topics: clean-architecture, cqrs, cqrs-pattern, ddd, ddd-architecture, domain-driven-design, dotnet-core, entity-framework-core, mediatr
- Language: C#
- Homepage:
- Size: 531 KB
- Stars: 7
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# Customer Manager
A simple CRUD application with ASP NET that implements the below model:
```
Customer {
Firstname
Lastname
DateOfBirth
PhoneNumber
BankAccountNumber
}
```
## Practices and patterns (Must):- [TDD](https://docs.microsoft.com/en-us/visualstudio/test/quick-start-test-driven-development-with-test-explorer?view=vs-2022)
- [DDD](https://en.wikipedia.org/wiki/Domain-driven_design)
- [BDD](https://en.wikipedia.org/wiki/Behavior-driven_development)
- [Clean architecture](https://github.com/jasontaylordev/CleanArchitecture)
- [Clean Code](https://en.wikipedia.org/wiki/SonarQube)
- [CQRS](https://en.wikipedia.org/wiki/Command%E2%80%93query_separation#Command_query_responsibility_separation) pattern ([Event sourcing](https://en.wikipedia.org/wiki/Domain-driven_design#Event_sourcing)).
- Clean git commits that shows your work progress.### Validations (Must)
- During Create; validate the phone number to be a valid *mobile* number only (Please use this library [Google LibPhoneNumber](https://github.com/google/libphonenumber) to validate number at the backend).
- A Valid email and a valid bank account number must be checked before submitting the form.
- Customers must be unique in database: By `Firstname`, `Lastname` and `DateOfBirth`.
- Email must be unique in the database.
### Storage (Must)
- Store the phone number in a database with minimized space storage (choose `varchar`/`string`, or `ulong` whichever store less space).
### Delivery (Must)
- Please clone this repository in a new github repository in private mode and share with ID: `mason-chase` in private mode on github.com, make sure you do not erase my commits and then create a [pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests) (code review).