An African cultural storytelling platform
# Hadithi Zetu - African Cultural Storytelling Platform
A digital reading platform similar to Kindle, tailored for African cultural storytelling.
## Features
- **User Authentication**: JWT-based login and registration.
- **Reading Progress**: Remembers the last read page for EPUB books.
- **Author Dashboard**: Allows authors to upload books (EPUB/PDF) and covers.
- **Admin Dashboard**: Moderation flow to approve or reject books.
- **Book Discovery**: Homepage with search and category filtering.
## Tech Stack
- **Frontend**: Next.js, React, TailwindCSS, EPUB.js
- **Backend**: FastAPI (Python), SQLAlchemy
- **Database**: PostgreSQL
## How to Run Locally
### 1. Start the Database
```bash
docker-compose up -d
```
### 2. Start the Backend API
Make sure you have python3 installed.
```bash
cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
```
### 3. Start the Frontend Application
In a separate terminal:
```bash
cd frontend
npm install
npm run dev
```
Visit `
localhost` to view the application!
## Testing Accounts
Create new accounts directly on the `/register` page. You can check the "Author" box to get an author account. If you want to test the Admin dashboard, you will need to manually set the `is_admin` flag to `True` for a user in the PostgreSQL database.