restaurant
restaurant copied to clipboard
🥘 This is a restaurant booking project

Restaurant
An Implementation of Clean Architecture with .NET 5 With this Open-Source Codebase, you will get access to the world of Loosely-Coupled and Inverted-Dependency Architecture in .NET 5
Upcoming Release
v1.1-release
Read the Changelog file to see the new changes.
Clone this repository to get the latest unreleased version.
Releases
v1.0-preview - IS NOT YET OUT
v1 Preview.
Follow these steps to get started
- Clone this Repository and Extract it to a Folder.
- Change appsettings.mock.json to appsettings.json in WebUI directory
- After following step 2, change all
ChangeMeto your own value
- Create an ethereal mail account
- Use your credentials to fill up the EmailSettings section in appsettings.json
- Install redis on your local machine
- Run
npm installin the src/WebUI/ClientApp directory - Run the following commands on Terminal in the WebUI project's directory.
- dotnet restore
- dotnet ef database update --context DataContext
- dotnet run (OR) Run the Solution using Visual Studio 2019 or JetBrain Rider
Check out my blog or say Hi on Twitter!
Purpose of this Project
Does it really make sense to get to a restaurant and you told that they are fully booked? Aren't we wasting quite a lot of time in doing this over and over again?
This is the exact Problem that I intend to solve with this Full-Fledged .NET 5 project. It follows various principles of Clean Architecture.
The primary goal is to create a restaurant booking project, that is well documented along with the steps taken to build this Solution from Scratch.
- Demonstrate clean architecture in .NET 5
- This is not a proof of concept
- Implementation that is ready for production
- Integrate the most essential libraries and packages
Give a Star ⭐
If you find this project helpful, do give it a star. Thanks!
If you are feeling really generous, send me ETH: 0x9F4942911f2406E5897669Db99184d47B3078E99
Technologies
- .NET 5
- REST Standards
- .NET 5 Libraries
Features
- [x] Clean Architecture
- [x] CQRS with MediatR Library
- [x] Entity Framework Core - Code First
- [x] Repository Pattern - Generic
- [x] MediatR Pipeline Logging & Validation
- [x] Serilog
- [ ] Swagger UI
- [x] Response Wrappers
- [x] Healthchecks
- [x] Pagination
- [ ] In-Memory Caching
- [x] Redis Caching
- [x] RDBMS
- [x] JWT Authentication
- [x] Role based Authorization
- [x] Custom Exception Handler
- [x] Fluent Validation
- [x] Automapper
- [x] SMTP / Mailkit / Email Service
- [ ] Complete User Management Module (Register / Generate Token / Forgot Password / Confirmation Mail)
- [x] User Auditing
Brief Overview
Prerequisites
- JetBrains Rider 2020.3.1 & above | Visual Studio 2019 Community and above
- .NET Core 5.0 SDK and above
- Basic Understanding of Clean Architecture
- I Recommend that you read Onion Architecture In ASP.NET Core With CQRS – Detailed article to understand this project much better. This project is just an Advanced Version of the mentioned article.
Getting Started
Changelog
Every changes / additions / deletions will be recorded in the Changelog file.
Questions? Bugs? Suggestions for Improvement?
Having any issues or troubles getting started? Get in touch with me or Raise a Bug or Feature Request. Always happy to help.
Support
If this project helped you learn something new? or helped you at work? Do Consider Supporting.
ETH: 0x9F4942911f2406E5897669Db99184d47B3078E99
Share it!
There are many improvements and fixes along the way from the day I started out. Thanks to the community for the support and suggestions. Please share this Repository within your developer community, if you think this would make a difference! Thanks.
About the Author
Emmy Steven
- Blogs at mycodegist.com
- Twitter - Emmy Steven
- Linkedin - Emmy Steven
Licensing
emmysteven/restaurant Project is licensed with the MIT License.