A comprehensive, modern exam management system for educational institutions
Features โข Demo โข Installation โข Documentation โข Contributing
ExamFlow is a cutting-edge, full-stack exam management platform designed to streamline the entire examination lifecycle for educational institutions. From scheduling to result management, ExamFlow provides an intuitive, role-based interface for administrators, faculty, and students.
- ๐ฏ Centralized Management - Single platform for all exam-related operations
- ๐ Role-Based Access - Secure, customized experiences for Admin, Faculty, and Students
- ๐ฑ Modern UI/UX - Beautiful, responsive design with smooth animations
- โก Real-Time Updates - Live exam status and countdowns
- ๐ Branch-Specific Scheduling - Flexible scheduling per department/branch
- ๐ Comprehensive Analytics - Track exam series, schedules, and statistics
-
Exam Series Management
- Create and manage exam series (Semester, Midterm, Lab exams)
- Multi-branch support with flexible scheduling
- Date range configuration
- Exam type categorization
-
Branch Scheduling
- Schedule exams per branch independently
- Subject-wise scheduling
- Holiday marking
- Global time settings
- Reschedule capabilities
-
Dashboard & Analytics
- Overview of all exam series
- Statistics: Total, Semester, Midterm, Lab exams
- Branch-wise scheduling status
- Visual progress indicators
-
My Exams Dashboard
- View personalized exam schedules
- Branch-specific exam display
- Real-time exam status (Upcoming/Ongoing/Completed)
- Countdown timers for upcoming exams
- Beautiful timeline interface
-
Exam Details
- Subject information
- Date, time, and venue details
- Status tracking
- Holiday indicators
-
Profile Management
- Complete profile setup
- Department and year information
- Roll number management
- Script Assignment (Coming Soon)
- Evaluation Monitoring (Coming Soon)
- Result Management (Coming Soon)
- JWT Authentication - Secure token-based authentication
- Role-Based Authorization - Granular access control (Admin/Faculty/Student)
- Branch-Based Access Control - Students only see their branch data
- Profile Completion Guard - Ensures students complete profiles before access
- Server-Side Validation - Comprehensive backend validation
- Framework: .NET 10 Web API
- Database: Entity Framework Core with SQL Server
- Authentication: JWT (JSON Web Tokens)
- Architecture: Clean Architecture with Repository Pattern
- API Documentation: RESTful API design
- Framework: Angular 18 (Standalone Components)
- Rendering: Server-Side Rendering (SSR) with Angular Universal
- Styling: Custom CSS with Bootstrap Icons
- State Management: RxJS Observables
- HTTP Client: Angular HttpClient with interceptors
ExamFlow/
โโโ Backend/
โ โโโ Controllers/ # API Controllers
โ โ โโโ AuthController.cs
โ โ โโโ ExamsController.cs
โ โ โโโ StudentProfileController.cs
โ โโโ Services/ # Business Logic
โ โ โโโ Interfaces/
โ โ โโโ Implementations/
โ โโโ Models/ # Domain Models
โ โโโ Entities/ # Database Context
โ โโโ DTO/ # Data Transfer Objects
โ โโโ Program.cs # Application Entry Point
โ
โโโ Frontend/
โ โโโ src/
โ โโโ app/
โ โโโ admin/ # Admin Module
โ โ โโโ manage-exams/
โ โ โโโ exam-series-form/
โ โ โโโ branch-schedule-list/
โ โ โโโ branch-exam-scheduler/
โ โโโ student/ # Student Module
โ โ โโโ exams/
โ โ โโโ dashboard/
โ โ โโโ profile/
โ โโโ faculty/ # Faculty Module
โ โโโ auth/ # Authentication
โ โโโ services/ # Shared Services
โ โโโ guards/ # Route Guards
โ
โโโ Documentation/ # API & User Documentation
- .NET 10 SDK
- Node.js (v18 or higher)
- SQL Server or SQL Server Express
- Angular CLI -
npm install -g @angular/cli
-
Clone the repository
git clone https://github.com/Vignesh777777/ExamFlow.git cd ExamFlow -
Configure Database Connection
Update
appsettings.jsonwith your SQL Server connection string:{ "ConnectionStrings": { "DefaultConnection": "Server=localhost;Database=ExamFlowDb;Trusted_Connection=True;TrustServerCertificate=True" } } -
Run Database Migrations
dotnet ef database update
-
Run the Backend API
dotnet run
The API will be available at
http://localhost:5275
-
Navigate to Frontend directory
cd Frontend -
Install Dependencies
npm install
-
Configure API Endpoint (if needed)
Update the API URL in
src/app/services/exam.service.ts:private apiUrl = 'http://localhost:5275/api/examseries';
-
Run the Development Server
npm start
The application will be available at
http://localhost:4200
-
Create Admin Account
Use the registration endpoint or seed data to create an admin user:
POST /api/auth/register { "userId": "admin001", "fullName": "Admin User", "email": "admin@examflow.com", "password": "Admin@123", "role": "Admin" }
-
Login
POST /api/auth/login { "userId": "admin001", "password": "Admin@123" }
-
Create Exam Series
- Navigate to "Manage Exams"
- Click "Create New Exam Series"
- Fill in details (Name, Type, Year, Branches, Date Range)
- Submit
-
Schedule Exams for Branches
- Select an exam series
- Click "Schedule Exams"
- Choose a branch
- Set global exam timings
- Assign subjects to dates
- Mark holidays
- Save schedule
-
View Summary
- Access comprehensive exam series summary
- View all scheduled exams across branches
- Monitor scheduling completion status
-
Complete Profile (First-time users)
- Enter Roll Number
- Select Department (Branch)
- Select Year and Section
-
View Exams
- Navigate to "My Exams"
- View all exam series for your branch
- Click on a series to see detailed timeline
- Check exam dates, times, and status
- See countdown for upcoming exams
- Gradient-Based Theme - Purple to violet gradients (#667eea โ #764ba2)
- Card-Based Layouts - Elevated cards with soft shadows
- Timeline Interface - Visual timeline for exam schedules
- Status Indicators - Color-coded badges (Upcoming/Ongoing/Completed)
- Smooth Animations - fadeInUp, pulse, and glow effects
- Responsive Design - Mobile-first approach
- Glassmorphism Effects - Modern backdrop blur on badges
- Manage Exams: Grid of exam series cards with statistics
- Exam Scheduler: Interactive table with subject dropdowns and holiday toggles
- Student Exams: Beautiful timeline with status markers
- Branch Schedule List: Card-based branch overview with progress indicators
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
| POST | /api/auth/register |
Register new user | โ |
| POST | /api/auth/login |
User login | โ |
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
| POST | /api/examseries |
Create exam series | โ Admin |
| GET | /api/examseries |
Get all exam series | โ Admin |
| GET | /api/examseries/{id} |
Get exam series by ID | โ Admin |
| GET | /api/examseries/{id}/branches |
Get branch statuses | โ Admin |
| GET | /api/examseries/{id}/branches/{branch}/dates |
Get available dates | โ Admin |
| POST | /api/examseries/{id}/branches/{branch}/schedule |
Schedule exams | โ Admin |
| GET | /api/examseries/{id}/summary |
Get exam summary | โ Admin |
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
| GET | /api/examseries/student/{branch} |
Get student exam series | โ Student |
| GET | /api/examseries/{id}/student/{branch}/exams |
Get student exams | โ Student |
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
| GET | /api/examseries/branches |
Get all branches | โ |
| GET | /api/examseries/branches/{branch}/subjects |
Get branch subjects | โ Admin |
ExamSeries
- Id (Guid)
- Name (string)
- ExamType (enum: Semester, Midterm, InternalLab, ExternalLab)
- Year (int)
- Branches (List)
- StartDate (DateOnly)
- EndDate (DateOnly)
- CreatedBy (string)
- CreatedAt (DateTime)
Exam
- Id (Guid)
- ExamSeriesId (Guid)
- Subject (string)
- ExamDate (DateOnly)
- StartTime (TimeOnly)
- EndTime (TimeOnly)
- Branch (string)
- Year (int)
- IsHoliday (bool)
User
- Id (int)
- UserId (string)
- FullName (string)
- Email (string)
- PasswordHash (string)
- Role (string: Admin/Faculty/Student)
- IsActive (bool)
StudentProfile
- Id (int)
- StudentId (int)
- RollNumber (string)
- Department (string)
- Year (string)
- Section (string)
Backend (Hot Reload):
dotnet watch runFrontend (Live Reload):
npm start
# or
ng serve --openBackend:
dotnet publish -c Release -o ./publishFrontend:
npm run build
# Output in: dist/frontend/browserBackend:
dotnet testFrontend:
npm run test- User authentication and authorization
- Admin exam series creation
- Branch-wise exam scheduling
- Student exam viewing
- Profile management
- Real-time status updates
- Hall ticket generation
- Seating arrangement system
- Exam notification system
- Calendar integration
- PDF export functionality
- Script assignment workflow
- Evaluation tracking
- Result entry interface
- Analytics dashboard
- Mobile application (React Native)
- AI-powered exam scheduling
- Automated conflict detection
- Multi-language support
- Advanced reporting and analytics
- Integration with LMS platforms
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Commit your changes
git commit -m 'Add some amazing feature' - Push to the branch
git push origin feature/amazing-feature
- Open a Pull Request
- Follow C# coding conventions for backend
- Use Angular style guide for frontend
- Write meaningful commit messages
- Add comments for complex logic
- Update documentation for new features
This project is licensed under the MIT License - see the LICENSE file for details.
- Vignesh - Initial work - Vignesh777777
- Angular team for the amazing framework
- Microsoft for .NET and Entity Framework
- Bootstrap Icons for the icon library
- The open-source community for inspiration
For support, email support@examflow.com or open an issue in the GitHub repository.
- Documentation: Wiki
- API Reference: API Docs
- Bug Reports: Issues
- Feature Requests: Discussions
Made with โค๏ธ for Educational Institutions
โญ Star this repo if you find it helpful!
Report Bug โข Request Feature โข Documentation


