A comprehensive web-based graduation project management system built with ASP.NET Core 9.0 and SQL Server. This system streamlines the entire graduation project workflow for universities, providing role-based access for students, advisors, and administrators.
- Project proposal submission and management
- Advisor selection and assignment
- Progress report submission
- Real-time messaging with advisors
- File upload and document management
- Project timeline tracking
- Student project supervision
- Proposal review and approval
- Progress monitoring and feedback
- Student quota management
- Messaging system
- Report generation
- User management (Students, Advisors)
- System configuration
- Department management
- Overall project oversight
- Analytics and reporting
This project follows Clean Architecture principles with the following layers:
GraduationProject/
βββ GraduationProject.Web/ # Presentation Layer (MVC)
βββ GraduationProject.Application/ # Application Layer (Services)
βββ GraduationProject.Infrastructure/ # Infrastructure Layer (Repositories)
βββ GraduationProject.Domain/ # Domain Layer (Entities)
βββ GraduationProject.Common/ # Shared DTOs and Models
- Framework: ASP.NET Core 9.0
- Database: SQL Server
- ORM: ADO.NET with Dapper-style repositories
- Frontend: HTML5, CSS3, Bootstrap, JavaScript
- Authentication: Session-based authentication
- File Processing: EPPlus for Excel operations
- .NET 9.0 SDK or later
- SQL Server 2019 or later (or SQL Server Express)
- Visual Studio 2022 or VS Code
- Git (for version control)
git clone https://github.com/yourusername/GraduationProject.git
cd GraduationProject
- Create a new SQL Server database named
GraduationProjectDb
- Run the database schema script:
-- Execute the following scripts in order:
1. GraduationProject.Web/Database/databaseSchema.sql
2. GraduationProject.Web/Database/InsertSampleData.sql (optional, for sample data)
Update the connection string in appsettings.json
:
{
"ConnectionStrings": {
"DefaultConnection": "Server=your_server;Database=GraduationProjectDb;User Id=your_user;Password=your_password;MultipleActiveResultSets=true;TrustServerCertificate=true;Encrypt=false"
}
}
# Restore dependencies
dotnet restore
# Build the solution
dotnet build
# Run the web application
cd GraduationProject.Web
dotnet run
The application will be available at https://localhost:5001
or http://localhost:5000
.
- Users: System users with role-based access
- Students: Student-specific information
- Advisors: Advisor profiles with quota management
- Projects: Graduation project details
- Proposals: Student project proposals
- ProgressReports: Regular progress submissions
- Messages: Communication system
- Notifications: System notifications
- Students β Advisors (Many-to-One)
- Students β Projects (One-to-One)
- Projects β ProgressReports (One-to-Many)
- Users β Messages (Many-to-Many)
The system uses session-based authentication with three main roles:
- Student (RoleID: 1)
- Advisor (RoleID: 2)
- Admin (RoleID: 3)
Admin: [email protected] / Admin123!
Advisor: [email protected] / Advisor123!
Student: [email protected] / Student123!
GET /Auth/Login
- Login pagePOST /Auth/Login
- Authenticate userPOST /Auth/Logout
- User logout
GET /Student/Index
- Student dashboardPOST /Student/SubmitProposal
- Submit project proposalGET /Student/ProgressReports
- View progress reports
GET /Advisor/Index
- Advisor dashboardGET /Advisor/PendingProposals
- Review pending proposalsPOST /Advisor/ApproveProposal
- Approve/reject proposals
GET /Admin/Index
- Admin dashboardGET /Admin/Users
- User managementPOST /Admin/CreateUser
- Create new user
GraduationProject.Web/
βββ Controllers/ # MVC Controllers
βββ Views/ # Razor Views
βββ Models/ # View Models
βββ ViewModels/ # Complex View Models
βββ wwwroot/ # Static files (CSS, JS, uploads)
βββ Database/ # SQL Scripts
βββ Program.cs # Application entry point
GraduationProject.Application/
βββ Services/ # Business logic services
GraduationProject.Infrastructure/
βββ Repositories/ # Data access layer
βββ Data/ # Database connection factory
GraduationProject.Domain/
βββ Entities/ # Domain entities
GraduationProject.Common/
βββ DTOs/ # Data transfer objects
- Timeout: 30 minutes
- Security: HttpOnly, SameSite=Strict
- GDPR Compliant: Essential cookies only
- Reports Directory:
wwwroot/uploads/reports/
- Supported Formats: PDF, DOC, DOCX, XLS, XLSX
- Max File Size: Configurable (default: 10MB)
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request