vacansee Documentation
Overview, Features, and Setup Information.
What is vacansee?
vacansee is a modern web application designed to provide real-time information about room availability and scheduling within the university campus.
It aims to replace legacy systems with a faster, more intuitive, and visually appealing interface.
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.
Features
- Real-time "Available Now" Check
- "Available Soon" Projections (30m, 1h, etc.)
- Specific Time Slot Availability Check
- Room Details List (Name, Code, Capacity)
- Interactive Schedule Graph View
- Fuzzy Search for Rooms (Check & Custom Graph)
- Automatic Timetable Updates
- Mobile Responsive Design
- Secure Authentication (Google/GitHub)
Tech Stack
- Frontend: Next.js (Pages Router), TypeScript, Tailwind CSS, Shadcn UI, Framer Motion
- Backend: Next.js API Routes, Prisma ORM
- Database: PostgreSQL (hosted on Supabase)
- Authentication: Supabase Auth (OAuth)
- Deployment & Analytics: Vercel
- Styling: Tailwind CSS, CSS Modules
- Data Handling: Python scripts (Scraping & Schedule Generation)
- Libraries: Fuse.js, Luxon, date-fns, Lucide Icons
Getting Started (Development)
To set up the project locally:
- Clone the repository from GitHub.
- Install dependencies using `npm install` or `yarn install`.
- Create a `.env` file with Supabase/Prisma connection details.
- Initialize the database schema: `npx prisma db push`.
- Run the development server: `npm run dev`.
Refer to the project's README on GitHub for detailed setup.
Automatic Updates
The core timetable data powering the application is automatically updated every 4 hours via a GitHub Actions workflow. This ensures the schedule information remains reasonably current throughout the day.
The workflow involves scraping the source timetable, updating the database, generating static schedule files, and committing changes.
Contact
For inquiries about the project, please contact Taha Parker via hiswebsite.
Project Link: https://github.com/tahayparker/vacansee