Skip to content

Mo11ov/MedicalCenterSystem

Repository files navigation

HealthyMed

A healthy med web application for health services, prescriptions etc. appointments. 📆

🎯 My project for the ASP.NET Core course at SoftUni. (October 2022)

ℹ️ How It Works

  • Guest visitors:
    • browse departments of health services;
    • view doctors in their speciality;
    • read comment posts.
  • Logged Users:
    • book appointments using interactive datepicker;
    • can cancel appointments;
    • can write comments posts.
    • receive real time notifications
  • Doctor (user role):
    • confirms/declines user appointments;
    • create/deletes user prescription.
    • can review his prescriptions history.
    • receive real time notifications
  • Admin:
    • creates/deletes departments, users(delete only);
    • assign/remove roles;
    • can review the appointments history.

⚒️ Built With

  • ASP.NET Core 6.0
  • Entity Framework (EF) Core 6.0.10
  • Microsoft SQL Server Express
  • ASP.NET Identity System 6.0.10
  • MVC Areas with Multiple Layouts
  • Razor Pages, Sections, Partial Views
  • View Components
  • Repository Pattern
  • Dependency Injection
  • xUnit
  • Moq
  • Sorting, Filtering, and Paging with EF Core
  • Data Validation, both Client-side and Server-side
  • Data Validation in the Models and Input View Models
  • Custom Validation Attributes
  • Responsive Design
  • CloudinaryDotNet
  • SignalR ( Real time notifications )
  • Bootstrap
  • jQuery

⚙️ Application Configurations

1. The Connection string

is in appsettings.json. If you don't use SQLEXPRESS, you should replace Server=.\\SQLEXPRESS; with Server=.;

2. Database Migrations

would be applied when you run the application, since the ASPNETCORE-ENVIRONMENT is set to Development. If you change it, you should apply the migrations yourself.

3. Seeding sample data

would happen once you run the application, including Test Accounts:

4. Cloudinary Setup - optionally

Running without it:

You won't get an error for missing Cloudinary Credentials - it is handled by using predefined (already uploaded) image, when Cloudinary configuration is missing. So when you are creating content in admin panel, it will be added but not with the image you have chosen.

If you want to actually upload images, you should:

  1. Add Cloudinary Credentials in appsettings.json in the format:
  "Cloudinary": {
    "CloudName": "",
    "ApiKey": "",
    "ApiSecret": "",
    "EnvironmentVariable": ""
  }
  1. Update the Cloudinary Setup part of Program.cs's ConfigureServices method as follows:
            // Cloudinary Setup
            Cloudinary cloudinary = new Cloudinary(new Account(
                this.configuration["Cloudinary:CloudName"],
                this.configuration["Cloudinary:ApiKey"],
                this.configuration["Cloudinary:ApiSecret"]));
            services.AddSingleton(cloudinary);

🖼️ Screenshot - Home Page

HealthyMed-HomePage

🖼️ Screenshot - Departments Page

HealthyMed-DeparmentsPage

🖼️ Screenshot - Make An Appointment Page

HealthyMed-MakeAnAppointment

🖼️ Screenshot - Doctors Page

HealthyMed-DoctorsPage

License

This project is licensed under the MIT License.

Acknowledgments

Using ASP.NET-MVC-Template developed by:

About

Project for SoftUni C#Web Advanced

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published