A robust, secure, and scalable web application for managing medical appointments, built with ASP.NET Core and implementing comprehensive security measures.
This project is a comprehensive healthcare appointment management system designed with a "security-first" mindset. It serves patients, doctors, and administrators through a system that not only provides an intuitive user experience but also implements a multi-layered defense-in-depth security strategy to protect sensitive user data.
The project followed an Agile development approach, breaking down complex requirements into manageable user stories and iterative development cycles.
Iterative development with continuous improvement and flexibility
Feature-focused development: "As a patient, I can register for an account"
Security requirements integrated into each development sprint
Git-based workflow with feature branches and code reviews
From the ground up, this application was built to be resilient against common web vulnerabilities. Here's a breakdown of the key security controls implemented:
Leveraged ASP.NET Core Identity for industry-standard authentication with automatic password hashing using PBKDF2 and unique salt per user.
await _userManager.CreateAsync(user, model.Password);
// Password automatically hashed and salted
Implemented strict RBAC following the Principle of Least Privilege, enforced at controller level with [Authorize] attributes.
[Authorize(Roles = Roles.Admin)]
public class DoctorController : Controller { ... }
Complete protection from SQL injection through exclusive use of Entity Framework Core with parameterized queries via LINQ.
var doctors = (from user in _db.Users
join userRoles in _db.UserRoles
on user.Id equals userRoles.UserId
where roles.Name == Helper.Roles.Doctor
select new DoctorViewModel { ... }).ToList();
Comprehensive mitigation of all OWASP Top 10 vulnerabilities including HTTPS enforcement, CSRF protection, and secure session management.
app.UseHttpsRedirection();
app.UseHsts(); // Enforces HTTPS
The application follows a layered architecture based on the ASP.NET Core MVC pattern, with an additional Service Layer for clean separation of concerns.
Built using Razor Views, HTML, CSS, and JavaScript. All data is HTML-encoded by default to prevent XSS attacks.
Controllers handle HTTP requests and orchestrate actions, while Services contain core business logic for better separation of concerns.
Entity Framework Core provides object-relational mapping, abstracting database operations and working with C# objects.
The Secure Appointment Management System successfully meets all outlined objectives by leveraging robust security features and adhering to secure coding principles.
Potential improvements to further enhance the system's security and functionality: