This project is an API developed in C# with ASP.NET Core, using Entity Framework as ORM, MySQL as database and configuration through environment variables (.env
). The main objective is to solve the problems related to appointment management in a private clinic, providing an efficient, organized and scalable technological solution.
- Eliminate scheduling conflicts and duplicate appointments.
- Facilitate the management and visualization of physician schedules and availability.
- Provide a complete patient appointment history.
- Improve physician, patient and administrative staff experience when managing appointments.
-
User and Role Management:
- Secure registration and authentication (with JWT tokens).
- Roles: Administrator, Physician, Patient.
- Restricted access according to role.
-
Appointment Management:
- Avoid scheduling more than one appointment for the same doctor at the same time.
- Real-time update of doctors' availability.
- Appointment filtering by date, specialty or reason.
- Record the reason for each appointment.
- Add notes or comments to each appointment.
-
- History and Follow-up:
- Display of patients' complete appointment history.
- Clear and organized details of each past and future appointment.
-
Notifications and Alerts:
- Warning in case of trying to schedule in a busy schedule.
- Efficient handling of cancellations and rescheduling.
- Backend**: ASP.NET Core (C#)
- Database**: MySQL
- ORM**: Entity Framework Core
- Configuration**:
.env
files for environment variables - Authentication**: JWT (JSON Web Tokens)
- .NET SDK**: Version 7.0 or higher
- MySQL**: Version 8.0 or higher
- Node.js**: To manage the environment if frontend tools are required (optional)
- Package manager**:
NuGet
. - Development tools**: Visual Studio / Visual Studio Code
git clone https://github.com/Z4pata/assestment-JuaJoseZapata.git
cd assestment-JuaJoseZapata
Create an .env file in the root directory with the following environment variables:
cp .env.example .env
dotnet restore
Run the migrations to initialize the database:
dotnet ef migrations add InitialCreate
dotnet ef database update
dotnet run
POST /api/auth/register: New user registration.
POST /api/auth/login: User authentication.
GET /api/appointments: List appointments with filters (date, specialty, etc.).
POST /api/appointments: Create a new appointment.
PUT /api/appointments/{id}: Edit an existing appointment.
DELETE /api/appointments/{id}: Cancel an appointment.
GET /api/doctors/{id}/availability: View availability of a doctor.
Create a fork of the repository.
Work on a separate branch (feature/new-functionality).
Make a pull request with your changes.