Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Project Approval System (PAS) - Blind Match Platform

Overview

A secure, web-based system that facilitates blind matching of student research projects with academic supervisors, ensuring fair allocation based on technical merit and area alignment.

Project Structure

PASwebapp/
├── PASwebapp.Web/                 # ASP.NET Core Web Application
│   ├── Controllers/               # MVC Controllers
│   ├── Views/                     # Razor Views
│   │   ├── Home/
│   │   └── Shared/
│   ├── wwwroot/                   # Static files (CSS, JS, images)
│   │   ├── css/
│   │   └── js/
│   ├── Middleware/                # Custom middleware
│   ├── Program.cs                 # Application startup configuration
│   └── appsettings.json           # Configuration settings
│
├── PASwebapp.Core/                # Business Logic Layer
│   ├── Entities/                  # Domain models
│   ├── Enums/                     # Enumerations
│   ├── Interfaces/                # Service interfaces
│   ├── Services/                  # Business logic implementation
│   └── DTOs/                      # Data Transfer Objects
│
├── PASwebapp.Data/                # Data Access Layer
│   ├── Context/                   # Entity Framework DbContext
│   ├── Repositories/              # Data access patterns
│   └── Migrations/                # EF Core migrations
│
├── PASwebapp.Tests/               # Testing Project
│   ├── Unit/                      # Unit tests
│   ├── Integration/               # Integration tests
│   └── Functional/                # Functional/E2E tests
│
├── PASwebapp.Shared/              # Shared Utilities
│   ├── Constants/                 # Application constants
│   └── Helpers/                   # Utility helpers
│
├── docs/                          # Documentation
├── .gitignore
└── PASwebapp.sln                  # Solution file

User Roles

  • Student: Submit project proposals, track status, view matched supervisors
  • Supervisor: Define expertise, review anonymous proposals, express interest, confirm matches
  • Coordinator (Admin): Manage research areas, oversee allocations, and manage users

Key Features (To Be Implemented)

  • Blind matching logic
  • Identity reveal mechanism
  • Role-Based Access Control (RBAC)
  • Project proposal management
  • Research area management
  • Secure authentication

Technology Stack

  • Backend: ASP.NET Core
  • Database: SQL Server
  • ORM: Entity Framework Core
  • Testing: xUnit, Moq

Getting Started

Prerequisites

  • .NET SDK 8.0+
  • SQL Server instance (default config uses (local)\\SQLEXPRESS)

1. Restore and Build

dotnet restore
dotnet build PASwebapp.sln

2. Configure Database Connection

Update PASwebapp.Web/appsettings.json if your SQL Server instance is different.

Default connection string:

"DefaultConnection": "Server=(local)\\SQLEXPRESS;Database=PASwebapp_db;Trusted_Connection=true;TrustServerCertificate=true;"

3. Apply Migrations

From solution root:

dotnet ef database update --project PASwebapp.Data --startup-project PASwebapp.Web

4. Run the App

dotnet run --project PASwebapp.Web

Then open the URL shown in terminal (typically https://localhost:xxxx).

5. Default Admin Credentials

Use the following credentials to log in as the main Coordinator (Admin):

  • Email: admin@gmail.com
  • Password: Test1234

EF Core Migration Workflow

Use these commands from solution root when model changes are made:

  1. Create a migration:
dotnet ef migrations add <MigrationName> --project PASwebapp.Data --startup-project PASwebapp.Web
  1. Apply migration locally:
dotnet ef database update --project PASwebapp.Data --startup-project PASwebapp.Web
  1. Verify model is synced:
dotnet ef migrations has-pending-model-changes --project PASwebapp.Data --startup-project PASwebapp.Web

Notes:

  • Program.cs already runs Database.Migrate() at startup for relational databases.
  • If SQL Server is unavailable, startup migration will fail, so ensure DefaultConnection is valid.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages