Streamlining Research & Operations
CV & AI Lab System
A unified web platform combining a dynamic public research portfolio with a secure internal management system for equipment bookings and GPU resource scheduling.
Introduction
Why this project exists
The Problem
The Computer Vision & AI Lab at the University of Peradeniya relied on manual logbooks and spreadsheets for equipment tracking, booking requests, and resource allocation. High-value assets — drones, depth cameras, GPU servers — had no centralized availability system, leading to double-bookings, lost requests, and poor visibility of lab activities.
Our Solution
We built a dual-purpose web platform that combines a beautiful public portal (showcasing research, publications, team profiles, and news) with a secure internal management system featuring role-based dashboards, automated equipment booking workflows, GPU scheduling, email OTP verification, and real-time analytics.
Application Screenshots
Live captures from the deployed platform
Platform Features
Dual-purpose platform for outreach and operations
Public Portal
8 dedicated pages — Home, Research, Publications, People, Facilities, Services, News & Events, Contact — dynamically rendered from the database.
Equipment Booking
End-to-end booking workflow: students request equipment, officers review & approve/reject, automated email notifications at every stage.
GPU Scheduling
Job slot management for NVIDIA A100/H100 GPU clusters with time-slot reservation and conflict detection.
Role-Based Access (RBAC)
Four distinct roles — Student, Officer, Staff, Admin — each with dedicated dashboards and permission-gated API endpoints.
Secure Authentication
JWT-based session management, Google OAuth single sign-on, and email OTP verification for account registration and password recovery.
Analytics Dashboard
Admin-only analytics panel with booking metrics, resource utilization trends, and user activity insights.
Solution Architecture
Three-tier client-server architecture deployed across cloud platforms
Frontend
React 19 + ViteBackend
Node.js + Express v5Database
PostgreSQLDatabase Design
8 relational tables powering the entire system
users
Stores accounts with hashed passwords and roles (student, officer, staff, admin).
inventory
Equipment catalog — names, categories, specifications, fees, availability status, and images.
reservations
Booking requests with user references, time slots, purpose, approval status, and admin notes.
people
Lab member profiles — staff and students, with titles, departments, and research areas.
news
Lab announcements, achievements, and events with rich media support.
projects
Research projects with leads, supervisors, team members, tags, status, and demo links.
otp_verifications
Temporary OTP storage for the registration flow with expiry timestamps.
password_reset_otp
Secure password reset tokens linked to email addresses with time-limited validity.
REST API Endpoints
15+ endpoints across 7 route groups
/api/auth
/api/items
/api/bookings
More Routes
Project Structure
Organized codebase for scalability and maintainability.
Testing
Comprehensive validation across all layers
Backend API Testing
All 15+ REST endpoints tested via test scripts — authentication flows, booking CRUD, inventory management, OTP delivery, and role-based access validation.
Frontend Testing
Role-based routing tested for all four user types. Protected routes verified. Booking forms validated for date conflicts. Google OAuth end-to-end tested. Responsive layouts across desktop and mobile.
Database Testing
Schema correctness verified against Neon PostgreSQL. Seed scripts tested for conflict-free population. SSL connections validated with sslmode=require.
Team Bug Slayer
E/23 Batch · Department of Computer Engineering