Logo Lanfrica

swmaina/shule-db

Domain:

education

Record type:

dataset
Creator:
swm
Host:
A free, community-built directory of special, integrated, and inclusive schools for neurodivergent learners across Kenya. # Elimu Finder πŸŽ“ > A free, community-built directory of special, integrated, and inclusive schools for neurodivergent learners across Kenya. --- ## Stack | Layer | Tech | Why | |---|---|---| | Frontend | Next.js 14 (App Router) | SSR/SSG for SEO, free on Vercel | | Database | Supabase (PostgreSQL) | Auth + DB + Storage, generous free tier | | Maps | Leaflet + OpenStreetMap | Fully free, no API key needed | | Search | Supabase full-text search | Built-in `tsvector`, no Algolia needed | | Email | Resend | 3,000 emails/month free | | Hosting | Vercel | Free tier, auto-deploys from GitHub | **Monthly cost at MVP: KES 0** --- ## Getting started ### 1. Clone & install ```bash git clone github.com cd elimu-finder npm install ``` ### 2. Set up Supabase 1. Create a free project at supabase.com 2. Go to **SQL Editor** and run the full contents of `supabase/migrations/001_initial_schema.sql` 3. Go to **Settings β†’ API** and copy your project URL and anon key ### 3. Configure environment ```bash cp .env.local.example .env.local # Edit .env.local with your Supabase credentials ``` ### 4. Run locally ```bash npm run dev # Open localhost ``` ### 5. Create your admin user 1. Go to Supabase β†’ Authentication β†’ Users β†’ Invite user (your email) 2. Accept the invite, set a password 3. In Supabase SQL Editor, run: ```sql update public.profiles set role = 'admin' where email = 'your@email.com'; ``` 4. Log in at `localhost` --- ## Project structure ``` src/ β”œβ”€β”€ app/ β”‚ β”œβ”€β”€ (public)/ # User-facing pages β”‚ β”‚ β”œβ”€β”€ page.tsx # Homepage β”‚ β”‚ β”œβ”€β”€ search/ # Search + filter β”‚ β”‚ β”œβ”€β”€ schools/[slug] # School profile β”‚ β”‚ └── submit/ # Add a school (4-step form) β”‚ β”œβ”€β”€ (admin)/ # Moderation panel (auth-protected) β”‚ β”‚ β”œβ”€β”€ dashboard/ # Stats + pending queue β”‚ β”‚ └── login/ # Admin login β”‚ └── api/ β”‚ β”œβ”€β”€ submit/ # POST new school …