Thanks for helping UPLB students find rooms. You do not need to clone this repo unless you are writing code.
Start here: pick the path that fits you.
| Path | Who | What to do | Open a PR? |
|---|---|---|---|
| Report wrong data | Anyone on campus | File a data issue or use in-app suggest | No |
| Campus gate coordinates | Data volunteers | Fill gate spreadsheet, file batch issue | No |
| Campus QA | Testers | Verify the app on your phone | No |
| Developers | Coders | Branch, code, PR to staging |
Yes |
| Good first issues | New devs | Smaller coding tasks | Yes |
| Maintainers / AI agents | Core team, Cursor | See AGENTS.md | Yes |
Community: Discord · Messenger (contribute) · UPLB Tools
Use this when a schedule, pin, direction, or building name is wrong.
- In the app: open the room or building → Suggest an edit (if you have contributor access).
- On GitHub: New data correction issue.
- Chat: Discord or Messenger if GitHub is awkward.
Include:
- Room or building name (e.g. PSLH 1, PhySci)
- Term, if it is schedule-related
- What is wrong and what it should be
- How you verified (walked there, SAIS, org page, photo)
You do not need to open a pull request. Someone else will ship the fix and reply on the issue.
Approved suggest-edits for campus map entities (buildings, rooms, pins, and similar fields) are licensed CC-BY 4.0. Class schedules imported from AMIS/CRS are not re-licensed that way. Details: Terms — Data licenses.
Use this when you can verify where campus gates and entry points are on the map. This feeds #157 (gates as searchable entities).
- Download
data/campus-gate-coordinates-template.csvfrom this repo (or copy into Google Sheets via File → Import). - Fill one row per gate. Starter rows list common gates from building directions and jeepney routes; leave
lat/lonblank until you verify on site (do not copy coordinates from other apps without checking). - For each gate you verify:
- Stand at the gate sign or main vehicle/pedestrian entry.
- Record
latandlon(phone GPS or OpenStreetMap pin at the entry). - Set
gate_type(vehicle,pedestrian, orboth),verifiedtoyes, andverification_method(e.g. "walked there 2026-07-16, GPS at sign"). - Optional:
directions(one sentence for walkers),osm_link,notes.
- When a batch is ready, open a Gate coordinates (batch) issue. Attach the filled CSV or link your Google Sheet.
- A maintainer imports verified rows when the
entry_pointsschema ships (#157).
You do not need to open a pull request.
Column reference: name, short_name, slug, gate_type, lat, lon, is_primary, directions, osm_link, verified, verification_method, notes.
Use this when you can test the live or staging app on a real device.
- New campus QA issue
- Label
qais applied automatically.
Helpful checks: search a room you know, open schedules for the current term, try offline mode after loading once, check layout at narrow phone width.
No PR required. Describe what you saw. A developer will fix it from your report.
You can contribute code without using Cursor, agents, or AGENTS.md.
- Install Bun 1.3+
- Clone the repo, copy
.env.exampleto.env - Set
DATABASE_URL(Supabase Postgres; session pooler recommended for local dev) - Optional:
ADMIN_PASSWORDfor editor login locally
bun install
bun devOpen http://localhost:4321. More setup help: docs/developer-guide.md.
Empty database? bun run seed:sample loads a small fictional campus (buildings, rooms, two terms of classes) so the app has something to show — see docs/fork-data-guide.md.
- Find or file an issue (coding task template or good first issue).
- Branch off
staging(notmain). - Make your change.
- Before opening a PR:
bun test srcbun run lint(orbunx biome formaton files you touched)bun run buildfor substantive changes (needsDATABASE_URL)
- Open a PR to
staging. Use the PR template checkboxes. - Use Conventional Commits in commit messages (
fix(map): …,feat(api): …).
Production: features merge to staging first. Release to production is a separate staging → main PR (maintainers).
If you forked the repo, GitHub will not give your pull request access to our secrets. That is a GitHub security rule, not a judgement about your change.
verify(lint, unit tests, component tests, build) runs normally. This is the check to watch.migrationsreports a skip notice, because the schema check needs database credentials your fork cannot see.- The end-to-end suites do not run. A maintainer runs them from a branch on this repo before merging.
If you have push access here, branch directly on this repo instead of forking and the full stack runs.
If someone filed a data or qa issue without code:
- Comment that you are working on it
- Implement the fix
- Open a PR to
stagingand link the issue (Closes #NNN) - Thank the reporter in the issue when merged
AGENTS.md is for AI assistants and maintainers who ship quickly across many files. Human developers do not need to read it.
Includes: branch rules, issue hygiene for detailed specs, Cursor workflow skill, map chrome guardrails, agent tooling (Caveman + Ponytail).
One-time agent setup (maintainers): bun run install:agent-tooling then bun run install:agent-plugins — see agent tooling.
Maintainer chat: Discord · Messenger (maintain)
Running Discord triage or weekly issue review? See docs/volunteer-triage.md.
Be helpful to students. Do not commit secrets (.env, passwords). Campus data fixes should be verifiable when possible.