Y3NKO Developer Documentation
Welcome to the Y3NKO developer documentation. Y3NKO (pronounced “Yen-ko”) is Ghana’s premier digital travel and hospitality platform, connecting travelers with authentic Ghanaian experiences, accommodations, and culinary adventures.
Quick Links
- Getting Started - Set up your development environment
- Architecture - Understand the codebase structure
- API Reference - Complete API documentation
- Design System - Colors, typography, and components
Tech Stack Overview
| Technology | Purpose |
|---|---|
| Next.js 14 | React framework with App Router |
| TypeScript | Type-safe development |
| PostgreSQL | Database via Supabase |
| Prisma | ORM and database toolkit |
| Supabase Auth | Authentication |
| Paystack | Payment processing (Mobile Money + Cards) |
| Cloudinary | Image storage and optimization |
| Resend | Transactional emails |
| Tailwind CSS | Styling with shadcn/ui |
| Vercel | Hosting and deployment |
Key Features
- User Authentication - Google OAuth, email/password, and magic links via Supabase
- Accommodation Listings - Search, filter, and browse accommodations across Ghana
- Booking System - Complete booking flow with availability management
- Payment Integration - Mobile Money (MTN, Vodafone, AirtelTigo) and card payments via Paystack
- User Dashboard - Manage bookings, favorites, and profile
- Host Dashboard - Manage listings and view booking analytics
- Admin Dashboard - Full platform management capabilities
Ghana-Specific Considerations
Y3NKO is built specifically for the Ghanaian market:
- Currency: Ghana Cedis (GHS) as primary currency
- Phone Format: +233XXXXXXXXX
- Payment Methods: Mobile Money is the primary payment method (70%+ of transactions)
- Regions: All 16 regions of Ghana supported
- Time Zone: GMT (no daylight saving)
Getting Help
- GitHub Issues: Report bugs or request features
- Documentation: You’re reading it
- API Reference: Complete endpoint documentation
This documentation is actively maintained alongside the codebase. If you find any discrepancies, please open an issue.