Skip to content

About

View live availability of UIUC rooms with an interactive 3D map

Topics

Resources

Stars

28 stars

Watchers

1 watching

Forks

Repository files navigation

illiniSpots

Find available classrooms and library study rooms at the University of Illinois Urbana-Champaign.

Open illiniSpots

Campus room availability is spread across class schedules, university events, building hours, and library reservation systems. illiniSpots brings these sources into one map and schedule view so students can find a place to study.

Features

  • Browse campus buildings on an interactive map or search the list.
  • Check availability now or select another date and time.
  • View classroom schedules, current and upcoming classes or events, and how long a room is available.
  • Browse reservable rooms at Grainger, Funk ACES, and Main Library, with reservation links and room photos where available.
  • Install the app on your phone using the PWA installation guide.

Availability is based on published schedules, building hours, and library reservations. Unofficial use, access restrictions, and last-minute changes may not be reflected. See availability and data sources for details.

Tech stack

React, TypeScript, Vite, TanStack Router and Query, Tailwind CSS, and Mapbox on the frontend; Hono on Bun and Supabase PostgreSQL on the backend; Python for data collection. The app runs on Fly.io, with GitHub Actions for CI, deployment, and scheduled data pipelines.

See architecture for code organization and availability rules.

Run locally

You need Bun 1.4.2 or later, a Supabase project, and a public Mapbox token and style URL.

  1. Clone the repository and install dependencies:

    git clone https://github.com/plon/illinispots
    cd illinispots
    bun install
  2. Link your Supabase project and apply the schema:

    bunx supabase link --project-ref <project-ref>
    bunx supabase db push

    Migrations create the schema and security policies. To populate academic buildings and schedules, follow the data pipeline guide.

  3. Copy the environment template:

    cp .env.example .env.local

    Set these values in .env.local:

    SUPABASE_URL=https://your-project.supabase.co
    SUPABASE_PUBLISHABLE_KEY=your_publishable_anon_key
    VITE_MAPBOX_ACCESS_TOKEN=your_public_mapbox_token
    VITE_MAPBOX_STYLE_URL=mapbox://styles/your-user/your-style

    See configuration for optional analytics and observability settings.

  4. Start the app:

    bun run dev

    Open localhost:5173. Vite proxies API requests to the Hono server on port 3000.

Verify changes

bun run check

This runs Oxlint, Bun tests, the Vite production build, and TypeScript validation.

Run the Chromium navigation tests separately:

bunx playwright install --with-deps chromium
bun run test:e2e

The browser tests use fixed campus time and intercepted API responses, so no database or deployment credentials are required. GitHub Actions uploads the report and traces when a browser test fails.

Project documentation

License

MIT

About

View live availability of UIUC rooms with an interactive 3D map

Topics

Resources

Stars

28 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages