https://github.com/farshidnooshi/crud-test-csharp
https://github.com/farshidnooshi/crud-test-csharp
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/farshidnooshi/crud-test-csharp
- Owner: FarshidNooshi
- Created: 2023-02-21T04:40:44.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-02-24T20:49:55.000Z (over 2 years ago)
- Last Synced: 2025-04-04T10:51:25.759Z (6 months ago)
- Language: C#
- Size: 255 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# CRUD Code Test
Please read each note very carefully!
Feel free to add/change project structure to a clean architecture to your view.
and if you are not able to work on FrontEnd project, you can add a Swagger UI
in a new Front project.Create a simple CRUD application with ASP NET Core 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)
- [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 (You can use [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).## Nice to do:
- Blazor Web.
- Docker-compose project that loads database service automatically which `docker-compose up`