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.
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
- 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
- Blind matching logic
- Identity reveal mechanism
- Role-Based Access Control (RBAC)
- Project proposal management
- Research area management
- Secure authentication
- Backend: ASP.NET Core
- Database: SQL Server
- ORM: Entity Framework Core
- Testing: xUnit, Moq
- .NET SDK 8.0+
- SQL Server instance (default config uses
(local)\\SQLEXPRESS)
dotnet restore
dotnet build PASwebapp.slnUpdate 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;"From solution root:
dotnet ef database update --project PASwebapp.Data --startup-project PASwebapp.Webdotnet run --project PASwebapp.WebThen open the URL shown in terminal (typically https://localhost:xxxx).
Use the following credentials to log in as the main Coordinator (Admin):
- Email:
admin@gmail.com - Password:
Test1234
Use these commands from solution root when model changes are made:
- Create a migration:
dotnet ef migrations add <MigrationName> --project PASwebapp.Data --startup-project PASwebapp.Web- Apply migration locally:
dotnet ef database update --project PASwebapp.Data --startup-project PASwebapp.Web- Verify model is synced:
dotnet ef migrations has-pending-model-changes --project PASwebapp.Data --startup-project PASwebapp.WebNotes:
Program.csalready runsDatabase.Migrate()at startup for relational databases.- If SQL Server is unavailable, startup migration will fail, so ensure
DefaultConnectionis valid.