A Searching System Backend API for restaurants, Following are the features,
- Search a Restaurent by its Name
- Search for restauraent to check if available on any specific date and time,
- Scrap data from a restaurants details data website and insert it to DB. From Here
- Add the restaurant to your favourite collection and share the generated link with your friends and family.
Use the package manager console to install My Restaurants api.
Alternatively you can also clone the Repository.
- Clone this Repository and Extract it to a Folder.
- Change the Connection Strings for the "DefaultConnection" and "IdentityConnection" in the appsettings.json
- Change the Connection Strings for the "RedisConnectionString" with your Redis server connection string
- Run the following commands on Visual Studio Package Manager Console in the Projecct's Directory.
dotnet restore
update-database -c IdentityContext
update-database -c ApplicationDbContext
Run the Solution using Visual Studio
You can view endpoints with swagger
You can check the status of the services with HealthCheck
As soon you build and run your application, default users and roles get added to the database.
Default Roles:
- SuperAdmin
- Admin
- Moderator
- Basic
Here are the credentials for the default user.
- Email - [email protected] / Password - 123Pa$$word!
You can use these default credentials to generate valid JWTokens at the ../api/account/authenticate endpoint.
- Get all Restaurants Names
- Check If the restaurant is open by Restaurants Name and Date-Time,
- Add Restaurant to the user's Favorite Collection.
- .NET Core 3.1
- REST Standards
- GraphQL
- MSSQL
- Microsoft Identity
- Redis
- SeriLog(seq)
- AutoMapper
- Smtp / Mailkit
- Swagger Open Api
- Health Checks
- Net Core
- N-Tier Architecture
- Restful
- GraphQl
- Entity Framework Core - Code First
- Repository Pattern - Generic
- UnitOfWork
- Redis Caching
- Response Wrappers
- Microsoft Identity with JWT Authentication
- Role based Authorization
- Identity Seeding
- Database Seeding
- Custom Exception Handling Middlewares
- Serilog
- Automapper
- Swagger UI
- Healthchecks
- SMTP / Mailkit / Sendgrid Email Service
- Complete User Management Module (Register / Generate Token / Forgot Password / Confirmation Mail)
- User Auditing
- Visual Studio 2019 Community and above
- .NET Core 5 SDK and above
- Basic Understanding of Architectures and Clean Code Principles
A Full Demo With the Frontend