Booking System for University Fabrication Labs

Full-Stack Development & UI Design

My Role

Developer & Designer

Equipment booking system for university fabrication facilities with role-based scheduling and capacity management.

Tech Stack

Frontend:
  • React.js

  • React Context (state management)

  • React Router

  • Material-UI (MUI Date Picker)

  • CSS

Backend:
  • Node.js (native HTTP modules)

  • Vercel Serverless Functions

Database:
  • MongoDB

Services & Tools:
  • JWT Authentication

  • Resend API (email notifications)

  • Vercel (frontend)

  • Git & GitHub

  • Figma (UI/UX design)

  • GitHub Issues (project management)

Problem

The University of Tampa's fabrication facilities were managing equipment scheduling manually through emails, leading to a lack of transparency and data, scheduling conflicts, and limited equipment access. Working directly with facility managers, I developed a centralized scheduling platform that automates equipment reservations across two labs, manages capacity constraints, and streamlines facility operations for the Department of Art & Design's 130+ students and 20+ faculty members.

Key Features
  • Multi-step booking workflow with conditional logic

  • Real-time capacity-aware time slot generation

  • Role-based dashboards (Student, Faculty, Admin)

  • Equipment availability and maintenance scheduling

  • Automated email notifications

  • Usage tracking for operational insights

Intelligent Time Slot Generation

Intelligent Time Slot Generation

Built dynamic time slot generation that accounts for multiple scheduling constraints in real-time. The system generates 30-minute appointment slots based on facility operating hours, then filters slots by:

  • Existing appointments - Preventing double-booking

  • Class reservations - Preventing scheduling appointments if the equipment is reserved for a class

  • Equipment capacity - 3D printers support 7 concurrent users and if 7 users booked at the same time, the slot won't appear

  • University schedules - Accounting for semester dates, weekends, and holidays

  • Equipment maintenance - Removing slots when equipment is unavailable

The algorithm recalculates available slots each time a user selects a different date or equipment type, ensuring accurate, real-time availability.

Technical implementation:
  • Custom slot generation algorithm

  • Capacity tracking per equipment per time slot

  • MongoDB queries for conflict checking

  • Real-time validation on equipment capacity

Role-Based Dashboards

Role-Based Dashboards

Designed distinct interfaces optimized for different user needs and workflows. Each role sees information most relevant to their tasks:

  • Student/Faculty Dashboard: Users see their upcoming appointments as scannable cards highlighting essential information: countdown to appointment ("in 3 days"), equipment type, date with day of week, time, and lab location. Cards provide quick access to modify or cancel appointments.

  • Admin Dashboard: Administrators view all appointments for their assigned facilities (FabLab, Woodshop, or both), with appointment cards designed to surface different information: appointment type (individual vs. class), booking time, equipment, material selections, and user name. Admins can cancel appointments with a cancellation reason that's automatically emailed to users.

Technical implementation:
  • Role-based routing with JWT authentication

  • Conditional rendering based on user role

  • Different data queries per role

Faculty Class Reservations

Faculty Class Reservations

Implemented role-specific functionality enabling faculty to reserve equipment for entire classes, with a workflow tailored to their unique needs. Unlike individual 30-minute appointments, faculty can book equipment for up to 3 hours to accommodate full class sessions.

The class reservation system uses a time range selector rather than discrete slots, allowing faculty to specify exact start and end times.

Planned enhancement: Automated cancellation of conflicting individual appointments when a class reservation is created, with email notifications to affected students offering alternative time slots.

Technical implementation:
  • JWT-based role validation

  • Separate booking workflow for faculty role

  • Time range selection vs. slot selection

  • Database schema supporting both appointment types

Admin Equipment & Facility Management

Admin Equipment & Facility Management

Built a comprehensive administrative control panel enabling facility managers to configure equipment availability, manage material inventory, and set facility schedules.

Equipment Management
  • Mark equipment temporary unavailable or unavailable for specific dates or date ranges

  • Track material inventory (add/remove materials for equipment requiring supplies or mark material unavailable)

  • Changes instantly reflect in the booking interface

Facility Scheduling
  • Set semester start and end dates (facilities closed outside semester)

  • Add holidays and campus closure dates

  • Blockout dates applied per facility (FabLab and Woodshop can have different schedules)

Future capability: Modify daily operating hours per facility and per day of week.

The centralized admin panel reduces manual coordination, ensuring scheduling rules are consistently.

Technical implementation
  • CRUD operations for equipment and scheduling data

  • Admin-only routes with role authentication

Automated Email Notifications

Automated Email Notifications

Integrated email notification system using Resend API to keep users informed throughout the booking lifecycle.

Email Verification

New users receive a verification link upon registration, ensuring account security and valid university email addresses.

Appointment Notifications

Cancellation notifications when admins cancel appointments, including admin-provided cancellation reason

Current optimization: Refining email deliverability for institutional email systems to ensure notifications reach university inboxes reliably.

Technical implementation
  • Resend API integration

  • Server-side email dispatch on booking/cancellation events

Responsive Design

Responsive Design

Built with a mobile-first approach, the platform adapts seamlessly across devices. The layout uses CSS Flexbox and Grid to reorganize appointment cards, navigation, and forms for optimal viewing on any screen size, ensuring students can book appointments from anywhere.

Technical Challenges & Solutions

Complex Availability Logic

Challenge: Time slot generation needed to account for multiple overlapping constraints: semester dates, facility-specific schedules, equipment maintenance windows, holidays, and existing bookings.

Solution: Designed a layered validation system that filters availability progressively. The system first checks facility-level constraints (operating hours, semester dates, holidays), then equipment-level constraints (maintenance, capacity), and finally time-slot conflicts.

Serverless Architecture Adaptation

Challenge: Built the backend with pure Node.js using native HTTP modules before learning Express.js. Needed to adapt the routing and middleware logic to work within Vercel's serverless function constraints.

Solution: Refactored route handlers into individual serverless functions while maintaining shared utility modules. Implemented custom middleware patterns compatible with Vercel's request/response model. This approach deepened understanding of Node.js fundamentals and serverless architecture patterns.

Email Deliverability for Institutional Systems

Challenge: University email systems flagged automated notifications as potential spam, preventing users from receiving verification links and appointment updates.

Solution: Implementing SPF and DKIM authentication for the sending domain to improve deliverability scores. Exploring alternative email service providers with better institutional reputation.

Future Improvements Plan

  • Automated Conflict Resolution: When faculty creates class reservations, automatically cancel conflicting individual appointments and notify affected students with alternative time suggestions

  • Usage Analytics Dashboard: Visualize equipment usage patterns, peak booking times, and facility utilization rates to inform operational decisions

  • Flexible Operating Hours: Enable admins to set different operating hours per day of week and per facility

  • Phone Notifications: Add text message reminders for upcoming appointments

Contact me at blokhinamariyayu@gmail.com
©2025 by Maria Blokhina. Created with Framer
Contact me at blokhinamariyayu@gmail.com
©2025 by Maria Blokhina. Created with Framer

Create a free website with Framer, the website builder loved by startups, designers and agencies.