Online registry for patients who want to make an appointment with their doctor 🧑⚕️
This is an ongoing ASP.NET Core 8 project based on the old Patient's Registry project
It implements the following ⬇️
- Clean Architecture;
- ASP.NET Identity Authentication and Role-Based Authorization;
- code-first approach with SQL Server, EF Core, Generic Repository and Specification Design Patterns;
- Razor Pages Web App;
- Minimal Web API with Bearer Token.
- Domain - Entities (including ASP.NET Identity), Interfaces, Result and Specification Design Pattern;
- Application - services and use cases with MediatR and FluentValidation, organized in a Vertical Slice Architecture style (DTOs, Validators, Commands and Queries grouped by Features);
- Persistence - database access, in this case SQL Server with Entity Framework Core and Generic Repository Design Pattern;
- RazorPages - a Razor Pages app that consumes the services. It applies the full business functionality;
- API - an ASP.NET Core Web API (Minimal API with Swagger UI) to access appointments information from the database, with Bearer Token authorization;
The web application defines 3 user roles and supports adding and editing new roles by the admin:
- Admin - can access and edit all data (users, roles and appointments);
- Patient - can request, reschedule and delete apointments;
- Doctor - can approve or decline appointments;
Appointments have one of the following status: Pending, Approved or Declined.
The API currently covers only the appointments data (GET, POST, PUT, PATCH, DELETE).