A web‑based platform for publishing and managing medical research, projects, and events. Built with a secure admin dashboard, role‑based access, and audit logging. Designed to support biomedical innovation and healthcare collaboration in Africa.
# KuzaAfya Website
A complete secure website for KuzaAfya built with a React/Next.js frontend and Node.js + Express backend.
## Features
- Homepage, Articles, Projects, Research Papers, Founder Spotlight, About, Contact, Grants.
- CMS-ready content API for articles, projects, papers, and events.
- Role-based admin login with two-factor authentication.
- Newsletter signup and encrypted email contact form with CAPTCHA verification.
- Impact metrics dashboard and archive system.
- Dark mode, responsive design, accessible UI, and African health innovation branding.
## Local setup
1. Install dependencies:
```bash
npm run install-all
```
2. Create `.env` in `server/` from `.env.example` and add your secrets.
3. Start both apps in development:
```bash
npm run dev
```
4. Frontend will run at `
localhost`, backend at `
localhost`.
## Deployment
- Host frontend on Vercel or Netlify.
- Host backend on Render, Fly.io, Heroku, or any Node.js hosting provider.
- Set `NEXT_PUBLIC_API_URL` in client environment to your backend URL.
- Configure `server/.env` with secure credentials and `RECAPTCHA_SECRET`.
- Vercel/Netlify provides automatic SSL. For the backend, use a hosted provider with HTTPS.
## API endpoints
- `GET /api/content/articles`
- `GET /api/content/projects`
- `GET /api/content/papers`
- `GET /api/content/events`
- `POST /api/contact`
- `POST /api/newsletter`
- `POST /api/auth/login`
- `POST /api/auth/verify-2fa`
- `POST /api/admin/content`
- `GET /api/admin/audit`
## Notes
- The current implementation uses SQLite for a lightweight secure CMS and audit log.
- Use the admin dashboard to publish and update content.
- A Cloudflare proxy or similar is recommended for firewall and malware scanning on production.