A comprehensive training management system built with ASP.NET Core MVC 9.0 for managing students, instructors, courses, and departments in educational institutions.
- Authentication & Authorization using ASP.NET Core Identity
- Student Management - Add, edit, delete, and view students
- Instructor Management - Comprehensive instructor and course management
- Department Management - Organize students and instructors by departments
- Add and Edit Courses with grade specifications and duration
- Course-Department Association - Link courses to specific departments
- Student Enrollment - Course registration and enrollment system
- Grade Management - Record and manage student grades
- Strong Authentication with strict password policies
- Data Encryption for sensitive information
- Attack Protection - Account lockout after failed attempts
- Data Validation - Custom Attributes for validation
- .NET 9.0 - Latest .NET version
- ASP.NET Core MVC - Web framework
- Entity Framework Core 9.0 - ORM for database management
- SQL Server - Database
- ASP.NET Core Identity - Authentication and authorization
- Bootstrap - UI framework
- jQuery - Frontend interactions
TrainingSystem(MVC)/
├── Controllers/ # Controllers
│ ├── AccountController.cs
│ ├── StudentController.cs
│ ├── InstructorController.cs
│ ├── CourseController.cs
│ └── DepartmentController.cs
├── Models/ # Models and Entities
│ ├── Entities/ # Database entities
│ └── ViewModel/ # View models
├── Views/ # Web pages (Razor)
│ ├── Student/ # Student pages
│ ├── Instructor/ # Instructor pages
│ ├── Course/ # Course pages
│ └── Department/ # Department pages
├── Data/ # Data layer
│ ├── Context/ # DbContext
│ └── Configurations/ # Entity Framework configurations
├── Repository/ # Repository pattern
├── Services/ # Services and utilities
└── wwwroot/ # Static files (CSS, JS, Images)
The database schema includes the following main entities and their relationships:
- Student - Students with personal and academic information
- Instructor - Instructors with their specializations
- Course - Training courses with grades and duration
- Department - Academic departments
- Enrollment - Student course registrations
- ApplicationUser - System users (Identity)
- One student belongs to one department
- One instructor belongs to one department
- One course can belong to multiple departments
- One student can enroll in multiple courses
- .NET 9.0 SDK
- SQL Server
- Visual Studio 2022 or VS Code
- Clone the repository:
git clone [repository-url]
cd TrainingSystem(MVC)- Update connection string:
// In appsettings.json
{
"constr": "Server=YOUR_SERVER;Database=TrainingSystem;Integrated Security=true;TrustServerCertificate=true;"
}- Apply migrations:
dotnet ef database update- Run the project:
dotnet run- Open browser:
https://localhost:5001
- Register new account
- View available courses
- Enroll in courses
- View grades and progress
- Manage assigned courses
- Record student grades
- View enrolled student lists
- Manage all users
- Manage departments and courses
- View reports and statistics
The main landing page features a modern design with:
- Welcome message and call-to-action
- Statistics dashboard showing system metrics
- Navigation menu for easy access to all features
- Responsive design for all devices
The student registration form includes:
- Comprehensive validation with real-time feedback
- Password strength requirements
- Email uniqueness validation
- User-friendly interface with clear error messages
Student profile page displays:
- Personal information and avatar
- Enrolled courses with status indicators
- Course progress tracking
- Quick action buttons for profile management
The system implements robust access control:
- Role-based permissions
- Clear access denied messages
- Secure navigation based on user roles
- Administrator-only features protection
- Modify entity in
Models/Entities/ - Add configuration in
Data/Configurations/ - Create new migration
- Update ViewModels and Views
- Add action in Controller
- Create View in appropriate folder
- Add route if necessary
- Pagination - Results pagination
- Search & Filter - Advanced search and filtering
- Validation - Data validation with custom attributes
- Error Handling - Comprehensive error handling
- Responsive Design - Mobile-friendly design
- Role-Based Access Control - Secure user permissions
- Real-time Validation - Client-side and server-side validation
- User-Friendly Interface - Modern UI with Bootstrap
- Admin: admin@example.com / Admin123!
- Instructor: instructor@example.com / Instructor123!
- Student: student@example.com / Student123!
- Unit tests for repositories
- Integration tests for controllers
- UI tests for critical user flows
- Entity Framework query optimization
- Caching for frequently accessed data
- Lazy loading for related entities
- Pagination for large datasets
- Password Complexity - Strict password requirements (6+ chars, uppercase, lowercase, numbers, special characters)
- Account Lockout - Automatic lockout after 3 failed login attempts
- Email Uniqueness - Global email validation to prevent duplicates
- SQL Injection Prevention - Entity Framework parameterized queries
- XSS Protection - Input sanitization and encoding
- Role-Based Authorization - Granular permission system
- Session Management - Secure user session handling