A civic health web app that helps Nigerians find, export, and share hospital information across all 36 states and the FCT. Built as a capstone project for the AltSchool Africa Frontend Engineering programme.
# Carefinder
A civic health web app that helps Nigerians find, export, and share hospital information across all 36 states and the FCT.
Built as a capstone project for the AltSchool Africa Frontend Engineering programme.
---
## What It Does
Carefinder solves a real problem — finding reliable hospital information in Nigeria is hard. This app brings together a searchable, filterable, and shareable directory of Nigerian hospitals with an admin dashboard for managing entries.
**Public users can:**
- Search hospitals by name, city, or LGA
- Filter by specialty and ownership type (public/private)
- Find hospitals near their current location
- View hospital details including specialties, visiting hours, and description
- Export search results as a CSV file
- Share search results via a link or email
- Leave ratings and reviews
**Admins can:**
- Add, edit, and delete hospital entries
- Upload hospital photos
- Write hospital descriptions in Markdown
- Moderate user reviews before they go live
---
## Tech Stack
| Layer | Technology |
|---|---|
| Frontend | Vue 3 + TypeScript |
| Build Tool | Vite |
| Routing | Vue Router 4 |
| State Management | Pinia |
| Backend / Database | Supabase (Postgres + PostGIS) |
| Authentication | Supabase Auth with RLS |
| Map | MapTiler SDK |
| CSV Export | PapaParse |
| Email Sharing | Resend API via Supabase Edge Functions |
| Markdown Editor | md-editor-v3 |
| Styling | Tailwind CSS + CSS Variables |
| Deployment | Vercel |
| Unit/Component Tests | Vitest + Vue Testing Library |
| E2E Tests | Playwright |
---
## Getting Started
### Prerequisites
- Node.js 18+
- A Supabase account
- A MapTiler account (free tier)
- A Resend account (free tier)
### Installation
```bash
# Clone the repository
git clone
github.com
cd carefinder
# Install dependencies
npm install
```
### Environment Variables
Create a `.env` file in the project root:
```
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_K …