vacansee Documentation

Everything you need to know about finding available rooms on campus.

What is vacansee?

vacansee is a modern web application designed to help students find available rooms across campus in real-time. No more wandering the halls or checking multiple locations – get instant information about room availability right when you need it.

Built with performance and usability in mind, vacansee provides a fast, intuitive interface that works seamlessly on all devices.

Our Goal

The primary goal is to make finding an available room quick and effortless. Whether you need a quiet place to study, a room for a group meeting, or just want to see the campus schedule at a glance, vacansee provides the necessary tools to help you succeed.

How to Use

Getting started with vacansee is simple. First, sign in using your Google or GitHub account for secure access. Once logged in, you'll find several pages to help you find available rooms:

  • Available Now: View which rooms are free right now at a glance
  • Available Soon: See upcoming room availability with quick filters (30m, 1h, 2h ahead)
  • Check Availability: Enter a specific time to verify room availability for any moment you need
  • Graph: Visualize room schedules throughout the day with interactive, color-coded timelines
  • Custom Graph: Create personalized schedule views with custom filters, then export them as images
  • Room Details: Browse all available spaces with complete information including capacity and location

Features

  • Real-time Availability - Check which rooms are available right now
  • Future Projections - See what rooms will be available soon (30m, 1h, 2h ahead)
  • Custom Time Checks - Verify availability for specific time slots
  • Interactive Graphs - Visualize room schedules with color-coded availability
  • Custom Graph Builder - Create personalized schedule views with filters
  • Room Information - Browse complete room details including capacity
  • Smart Search - Fuzzy search to find rooms quickly
  • Export Capability - Save custom graphs as images
  • Responsive Design - Works perfectly on desktop, tablet, and mobile
  • Secure Authentication - Protected access via Google/GitHub OAuth
  • Performance Optimized - Fast loading with intelligent caching

Tech Stack

Frontend

  • Next.js 15 (Pages Router)
  • TypeScript
  • Tailwind CSS 4
  • Shadcn UI Components
  • Framer Motion
  • Fuse.js (Fuzzy Search)

Backend

  • Next.js API Routes
  • Prisma ORM
  • PostgreSQL Database
  • Zod Validation
  • In-memory Caching

Authentication

  • Supabase Auth
  • OAuth Providers
  • Secure Sessions

Infrastructure

  • Vercel Hosting
  • GitHub Actions
  • Supabase (Database)
  • Performance Monitoring

Architecture Highlights

Security First: Rate limiting, input validation, security headers, and secure authentication protect user data and prevent abuse.
Performance Optimized: Stale-while-revalidate caching, database indexes, and optimized queries ensure lightning-fast responses.
Clean Architecture: Separation of concerns with services, hooks, and utilities makes the codebase maintainable and scalable.

Getting Started (Development)

To set up the project locally for development:

  1. Clone the repository from GitHub
  2. Install dependencies: npm install
  3. Copy .env.example to .env.local and configure
  4. Generate Prisma client: npx prisma generate
  5. Push schema to database: npx prisma db push
  6. Run development server: npm run dev

For detailed setup instructions, see CONTRIBUTING.md on GitHub.

Data Updates

Schedule data is automatically updated every 4 hours via GitHub Actions workflows. This ensures the application always displays current room availability based on the latest timetable information.

The automated workflow collects timetable data, processes it, updates the database, generates optimized schedule files, and commits changes to the repository.

Contact & Links

Created by: Taha Parker

Contact: Personal Website

Source Code: GitHub Repository

Sister Project: vaila - Professor Availability

For students, by students. Built with 🖤 by TP.

Proudly open source and continuously improving.