Skip to content

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.

Notifications You must be signed in to change notification settings

mertncu/GraduationProject

Repository files navigation

Graduation Project Management System

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.

πŸš€ Features

Student Features

  • 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

Advisor Features

  • Student project supervision
  • Proposal review and approval
  • Progress monitoring and feedback
  • Student quota management
  • Messaging system
  • Report generation

Admin Features

  • User management (Students, Advisors)
  • System configuration
  • Department management
  • Overall project oversight
  • Analytics and reporting

πŸ—οΈ Architecture

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

Technology Stack

  • 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

πŸ“‹ Prerequisites

  • .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)

πŸ› οΈ Installation & Setup

1. Clone the Repository

git clone https://github.com/yourusername/GraduationProject.git
cd GraduationProject

2. Database Setup

  1. Create a new SQL Server database named GraduationProjectDb
  2. 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)

3. Configuration

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"
  }
}

4. Build and Run

# 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.

πŸ“Š Database Schema

Core Tables

  • 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

Key Relationships

  • Students ↔ Advisors (Many-to-One)
  • Students ↔ Projects (One-to-One)
  • Projects ↔ ProgressReports (One-to-Many)
  • Users ↔ Messages (Many-to-Many)

πŸ” Authentication & Authorization

The system uses session-based authentication with three main roles:

  1. Student (RoleID: 1)
  2. Advisor (RoleID: 2)
  3. Admin (RoleID: 3)

Default Login Credentials (if using sample data):

Admin: [email protected] / Admin123!
Advisor: [email protected] / Advisor123!
Student: [email protected] / Student123!

🚦 API Endpoints

Authentication

  • GET /Auth/Login - Login page
  • POST /Auth/Login - Authenticate user
  • POST /Auth/Logout - User logout

Student Dashboard

  • GET /Student/Index - Student dashboard
  • POST /Student/SubmitProposal - Submit project proposal
  • GET /Student/ProgressReports - View progress reports

Advisor Dashboard

  • GET /Advisor/Index - Advisor dashboard
  • GET /Advisor/PendingProposals - Review pending proposals
  • POST /Advisor/ApproveProposal - Approve/reject proposals

Admin Panel

  • GET /Admin/Index - Admin dashboard
  • GET /Admin/Users - User management
  • POST /Admin/CreateUser - Create new user

πŸ“ Project Structure

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

πŸ”§ Configuration

Session Configuration

  • Timeout: 30 minutes
  • Security: HttpOnly, SameSite=Strict
  • GDPR Compliant: Essential cookies only

File Upload Settings

  • Reports Directory: wwwroot/uploads/reports/
  • Supported Formats: PDF, DOC, DOCX, XLS, XLSX
  • Max File Size: Configurable (default: 10MB)

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

About

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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published