Logo Lanfrica

swmaina/shule-db

Domaine:

education

Type de record:

dataset
Créateur:
swm
Hôte:
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 …