An AI-powered laboratory booking system that enables students, faculty, staff, and administrators to reserve campus computer laboratories through an intelligent chat assistant or a manual booking interface. Labby streamlines laboratory scheduling with conflict detection, role-based access control, and centralized administration.
Labby is a smart laboratory reservation platform built for educational institutions. It simplifies the process of booking computer laboratories while eliminating scheduling conflicts through automated validation.
The platform combines an AI-powered conversational assistant with a traditional booking interface, allowing users to reserve laboratories using natural language or a structured booking form.
Administrators can efficiently manage laboratories, users, and campus-wide reservations from a centralized dashboard.
- Natural language laboratory booking
- Check laboratory availability through chat
- View existing reservations
- Cancel bookings
- Intelligent responses powered by GLM AI
- Calendar-based date selection
- Start and end time selection
- 30-minute booking intervals
- Purpose of booking
- Instant validation
- Prevents double booking
- Validates overlapping reservations
- Time slot verification
- Booking status management
- Add laboratories
- Edit laboratory information
- Delete laboratories
- Configure operating hours
- Manage laboratory capacity
- Laboratory status management
Available statuses:
- Open
- Closed
- Maintenance
Administrator features include:
- Add users
- Edit user information
- Delete users
- Department management
- Role assignment
Supported roles:
- Student
- Faculty
- Staff
- Administrator
- Campus-wide statistics
- Total bookings
- Active laboratories
- User overview
- Recent booking activity
- Reservation management
- Responsive design
- Dark mode
- Light mode
- Smooth page transitions
- Interactive animations
- Modern component library
| Technology | Purpose |
|---|---|
| React 19 | User Interface |
| Next.js 16 (App Router) | Web Framework |
| TypeScript 5 | Programming Language |
| Tailwind CSS 4 | Styling |
| shadcn/ui | UI Components |
| Lucide React | Icons |
| date-fns | Date Formatting |
| next-themes | Theme Management |
| Technology | Purpose |
|---|---|
| Next.js API Routes | Backend APIs |
| Bun Runtime | JavaScript Runtime |
| TypeScript | Backend Language |
| z-ai-web-dev-sdk | AI Integration |
| Custom Validators | Request Validation |
| Technology | Purpose |
|---|---|
| SQLite | Database |
| Prisma ORM 6 | Database ORM |
id
name
email
role
department
id
name
location
capacity
openTime
closeTime
status
software
id
userId
labId
date
startTime
endTime
purpose
status
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/session | Get current session |
| POST | /api/session | Demo login |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/labs | List laboratories |
| POST | /api/labs | Create laboratory |
| PATCH | /api/labs/[id] | Update laboratory |
| DELETE | /api/labs/[id] | Delete laboratory |
| GET | /api/labs/[id]/availability | Check availability |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/bookings | List bookings |
| POST | /api/bookings | Create booking |
| DELETE | /api/bookings/[id] | Cancel booking |
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/chat | AI booking assistant |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/admin/stats | Dashboard statistics |
| GET | /api/admin/users | List users |
| POST | /api/admin/users | Create user |
| PATCH | /api/admin/users/[id] | Update user |
| DELETE | /api/admin/users/[id] | Delete user |
Browser
React 19 + Next.js 16
│
│
Tailwind CSS + shadcn/ui
│
▼
Next.js API Routes
┌───────────────┬──────────────────┐
│ │ │
▼ ▼ ▼
Booking APIs User APIs AI Chat API
│ │ │
└───────────────┼──────────────────┘
▼
Prisma ORM 6
│
SQLite Database
│
▼
z-ai-web-dev-sdk (GLM AI)
| Feature | Student | Faculty | Staff | Admin |
|---|---|---|---|---|
| AI Chat | ✅ | ✅ | ✅ | ✅ |
| Book Labs | ✅ | ✅ | ✅ | ✅ |
| Check Availability | ✅ | ✅ | ✅ | ✅ |
| My Bookings | ✅ | ✅ | ✅ | ✅ |
| Lab Management | ❌ | ✅ | ✅ | ✅ |
| Dashboard | ❌ | ✅ | ✅ | ✅ |
| User Management | ❌ | ❌ | ❌ | ✅ |
git clone https://github.com/your-username/labby-campus-lab-booking-agent.gitcd labby-campus-lab-booking-agentUsing Bun
bun installor npm
npm installCreate a .env file.
DATABASE_URL=file:./db/custom.dbThe AI SDK reads its configuration from the configured environment or .z-ai-config in supported deployments.
Development
bun devor
npm run devProduction
bun run build
bun start- Google Calendar integration
- Email notifications
- QR-based laboratory check-in
- Booking reminders
- Multi-campus support
- Analytics dashboard
- Equipment reservation
- AI scheduling recommendations
- Voice-based booking assistant
- Mobile application
This project is licensed under the MIT License.
Yukesh S
B.Tech Computer Science and Business Systems
Areas of Interest:
- Artificial Intelligence
- Full Stack Development
- Cloud Computing
- Prompt Engineering
- Software Engineering
- Data Analytics
If you found this project useful, consider starring the repository.