FindMyCenter is a mission-critical web application that helps Nigerian students reliably locate their official JAMB exam centres — even on slow networks or when maps are unavailable.
Mission: No student should miss their exam because they couldn’t find the venue.
-
⚡ Text-First, Offline-Friendly Designed to work on slow 3G networks. Maps are an enhancement, not a dependency.
-
🛡️ Clean & Verified Data 890+ exam centres cleaned, normalized, and structured for accuracy and consistency.
-
🔍 Deterministic Search Flow Users filter by State → LGA → Centre to avoid ambiguity and similar place names.
-
🗺️ Optional Map View Embedded map view for visual context, without forcing external navigation apps.
-
🚀 Instant Load (SSG) Pages are statically generated for near-zero load time and high reliability.
- Framework: Next.js (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- Maps: Google Maps Embed API
- Data Layer: Local JSON in
src/data/(SSG-friendly) - Deployment Target: Static-first (Vercel-ready)
git clone https://github.com/onerandomdevv/find-my-center.git
cd find-my-centernpm installnpm run devOpen http://localhost:3000 to view the app.
src/
├─ data/ # Production Runtime Data (SSG source)
│ ├─ centers.json # Cleaned exam centre database
│ └─ lga-aliases.json # Search normalization mappings
│
├─ app/ # Next.js App Router
├─ components/ # UI Components
└─ lib/ # Shared utilities
scripts/ # Offline Tooling (Build-time / Auditing)
├─ data/ # Authoritative reference data
├─ audits/ # Generated reports and verify logs
├─ debug/ # Temporary inspection artifacts
└─ data-audit.ts # Data coverage analysis tool
Architecture Note:
src/data/is the only directory imported by frontend code.scripts/is for local development and auditing only.
The project includes tooling to ensure high data availability across Nigeria.
To verify coverage against official LGA requirements:
npx tsx scripts/data-audit.tsThis script identifies:
- Missing LGAs (Zero coverage)
- Low-coverage states (< 50%)
- Data gaps in high-population areas (Lagos, FCT, etc.)
We welcome contributions.
- Fork the repository
- Create a branch:
git checkout -b feature/your-feature - Commit your changes with a clear message
- Push the branch and open a Pull Request
Note: Please run
npm run buildbefore pushing. The project uses Static Site Generation (SSG), and builds must pass.
- Text-first, map-second
- Reliability over aesthetics
- Static > dynamic when possible
- Clear data contracts
This project is open-source. License to be finalized.