Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ExamPlanner

ExamPlanner is a web-based exam classroom and invigilator assignment system developed with ASP.NET Core MVC and SQL Server.

The project is designed to help faculties plan exam weeks by assigning suitable classrooms and invigilators while enforcing capacity, availability, conflict-prevention, and database integrity rules.

Overview

ExamPlanner focuses on one core problem:

Assign the right classrooms and invigilators to each exam without causing classroom conflicts, invigilator conflicts, capacity problems, or rule violations.

The system does not work as a simple CRUD application. Its main feature is the Exam Assignment workflow, where an exam is selected, suitable classrooms are recommended, and invigilators are assigned according to predefined business rules.

Key Features

  • Exam schedule management
  • Classroom capacity planning
  • Efficient classroom combination recommendation
  • Classroom conflict prevention
  • Invigilator conflict prevention
  • Invigilator leave / unavailable time control
  • Department-based invigilator assignment
  • Shared faculty invigilator pool support
  • Maximum daily invigilator workload control
  • Consecutive session rule control
  • Assignment reports
  • Exam schedule reports
  • Classroom usage reports
  • Invigilator workload reports
  • Change logs for exam date/session updates
  • Role-based database security
  • SQL Server backup support

Business Rules

The system enforces the following rules:

  • Exams belonging to the same department and semester cannot be assigned to the same session.
  • A semester cannot have more than two exams on the same day.
  • Exams on the same day must have at least one session gap when required.
  • A classroom can only be used by one exam in the same date and session.
  • The total capacity of assigned classrooms cannot be lower than the number of students.
  • The system recommends the most efficient classroom combination.
  • An invigilator cannot be assigned to multiple classrooms at the same date and session.
  • An unavailable or excused invigilator cannot be assigned.
  • An invigilator can have a maximum daily workload.
  • An invigilator can work in at most three consecutive sessions.
  • If department invigilators are not enough, the system uses the shared faculty pool.

Technologies

  • ASP.NET Core MVC
  • SQL Server
  • SQL Server Management Studio
  • Microsoft.Data.SqlClient
  • HTML
  • CSS
  • Bootstrap
  • JavaScript

Database Design

The project uses a relational database named:

ExamPlannerDb

Main database concepts include:

  • Departments
  • Courses
  • Classrooms
  • Exam sessions
  • Instructors / invigilators
  • Instructor unavailable times
  • Exams
  • Exam-classroom assignments
  • Exam-invigilator assignments
  • Exam change logs
  • Application users / roles

Many-to-many relationships are resolved with junction tables. For example:

  • Exams and classrooms are connected through ExamClassrooms.
  • Classroom assignments and instructors are connected through ExamInvigilators.

SQL Server Features

The database includes:

  • Primary keys
  • Foreign keys
  • Unique constraints
  • Check constraints
  • Default constraints
  • Indexes
  • Views
  • Stored procedures
  • User-defined functions
  • Triggers
  • Transaction / rollback logic
  • Role-based security
  • Backup stored procedure

Main SQL Objects

The project includes SQL proof and utility scripts under the database folder.

Important files:

database/ExamPlannerDb.bak
database/Teknik_Kriterler_Kanit.sql
database/Ek_Isterler_Kanit.sql
database/Role_Based_Security_Kanit.sql
database/backup database.sql
database/final sunum.sql

Application Screens

The web application includes the following main screens:

  • Dashboard
  • Exams
  • Exam Assignment
  • Criteria
  • Courses
  • Classrooms
  • Instructors
  • Reports
  • Logs
  • Login / Role selection

Exam Assignment Workflow

The main workflow is:

  1. Select an exam.
  2. Click Recommend Suitable Classrooms.
  3. The system calculates the most efficient classroom combination.
  4. Click Assign Classroom + Invigilator.
  5. The assignment is written to SQL Server.
  6. Reports are updated automatically.

Example demo case:

Exam: MAK 1106 - Statik
Student count: 150
Recommended classrooms: 309, 310, 311
Capacities: 40 + 60 + 50
Total capacity: 150
Capacity surplus: 0

This demonstrates efficient classroom planning with no capacity waste.

Connection String

The default connection string is:

Server=localhost;Database=ExamPlannerDb;Trusted_Connection=True;TrustServerCertificate=True;

It can be found in:

VeritabaniProjesi-UI/ExamPlanner.Web/ExamPlanner.Web/appsettings.json

Installation

1. Requirements

Make sure the following tools are installed:

  • Visual Studio
  • SQL Server
  • SQL Server Management Studio

2. Restore the Database

Open SQL Server Management Studio and restore the database backup file:

database/ExamPlannerDb.bak

The restored database name must be:

ExamPlannerDb

3. Open the Project

Open the Visual Studio solution file:

VeritabaniProjesi-UI/ExamPlanner.Web/ExamPlanner.Web.slnx

4. Check the Connection String

Verify that the connection string in appsettings.json points to your local SQL Server instance.

Default value:

Server=localhost;Database=ExamPlannerDb;Trusted_Connection=True;TrustServerCertificate=True;

5. Run the Application

Run the project from Visual Studio.

After the application starts, test the following pages:

  • Dashboard
  • Criteria
  • Exam Assignment
  • Reports
  • Logs

Project Structure

ExamPlanner
│
├── database
│   ├── ExamPlannerDb.bak
│   ├── Teknik_Kriterler_Kanit.sql
│   ├── Ek_Isterler_Kanit.sql
│   ├── Role_Based_Security_Kanit.sql
│   ├── backup database.sql
│   └── final sunum.sql
│
├── VeritabaniProjesi-UI
│   └── ExamPlanner.Web
│       ├── ExamPlanner.Web.slnx
│       └── ExamPlanner.Web
│           ├── Controllers
│           ├── Models
│           ├── Services
│           ├── Views
│           ├── wwwroot
│           ├── Program.cs
│           └── appsettings.json
│
├── .gitignore
└── README.md

Notes

This project demonstrates how database-level business rules can be combined with a web-based user interface.

The assignment process is supported by SQL Server stored procedures, functions, triggers, constraints, and transaction management to prevent incomplete or inconsistent records.

Bu sınavda sistem 150 öğrenci için 309, 310 ve 311 salonlarını önerir. Toplam kapasite 150, kapasite fazlası 0 olur.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages