Logo Lanfrica

ToniMoringa/Capstone-Zamani-App

Domaine:

education

Type de record:

software
Créateur:
Ton
Hôte:
ZAMANI – Kenya's Time Capsule: A retro TV-themed React app exploring global & Kenyan history via Wikipedia, NASA APOD, and curated local data. Features CRT scanline aesthetics, localStorage persistence, and Global/Kenya modes. Phase 1 of a 3-phase capstone project. # ZAMANI – Kenya's Time Capsule A retro TV-themed full-stack application that lets users explore global and Kenyan history by selecting any date. Features a custom Flask + PostgreSQL backend, curated Kenyan milestones, and a polished CRT broadcast aesthetic. Built as Phase 2 of a 3-phase capstone project. ## Live Demo **View Production Frontend on Vercel** *Note: Backend runs locally at localhost for development. Render deployment link available upon request.* ## Setup Instructions ### Prerequisites - Node.js v18+ - Python 3.10+ - PostgreSQL 14+ - pnpm (recommended), npm, or yarn ### Installation ```bash # 1. Clone repository git clone github.com cd Capstone-Zamani-App # 2. Setup Backend cd server python -m venv venv && source venv/bin/activate # Windows: venv\Scripts\activate pip install -r requirements.txt createdb zamani_db # Or use pgAdmin to create database python -m server.seed # Seeds PostgreSQL with Kenyan historical data python -m server.app # Runs on localhost # 3. Setup Frontend (in new terminal) cd ../client pnpm install # or npm install pnpm dev # Runs on localhost ``` ## API Endpoints & Resources This application uses a custom Flask REST API replacing public Wikipedia/NASA endpoints from Phase 1: |Method|Endpoint|Purpose| |---|---|---| |GET|`/api/v1/capsules/`|List all capsules (filter by ?date=YYYY-MM-DD)| |POST|`/api/v1/capsules/`|Create new capsule| |GET|`/api/v1/capsules/:id`|Get single capsule| |PUT|`/api/v1/capsules/:id`|Update capsule| |DELETE|`/api/v1/capsules/:id`|Delete capsule| |GET|`/api/v1/tags/`|List all tags| |POST|`/api/v1/tags/`|Create new tag| **Relational Resources:** Capsules ↔ Tags (Many-to-Many via association table) ## Known Issues & Scope Notes - **Authentication:** Phase 2 pitch, user authentication is scoped for Phase 3. The `user_id` column exists in the Capsules table as a foreign key placeholder. Current MVP focuses on …