Skills marketplace connecting freelancers with opportunities in Uganda
# πΊπ¬ SkillSwap Uganda
> A mobile-first skill exchange and local jobs marketplace for Uganda.
> Exchange skills freely. Find local work. Build community. No payments involved.
---
## β¨ Features
| Feature | Details |
|---|---|
| π Auth | Phone OTP + Email/Password via Firebase Auth |
| π Jobs | Post & browse local jobs with urgency levels |
| π οΈ Services | Offer skills to your community |
| π Skill Exchange | Swap skills peer-to-peer, no money needed |
| π¬ Chat | Real-time Firestore-powered messaging |
| πΊοΈ Location | GPS + Uganda district selector (24 districts) |
| β Ratings | Verified exchange ratings and reviews |
| π Notifications | In-app notification center |
| π‘ Low Data Mode | Saves data on slow connections |
| π‘οΈ Admin Panel | User management, moderation, announcements |
| π Find Me Work | AI-matched jobs based on your skills |
| π± Mobile-first | Optimised for 375px screens with bottom nav |
| π Offline | Firestore offline persistence enabled |
---
## π Quick Start
### Prerequisites
- Node.js 18+ and npm
- A Firebase project (free Spark plan works)
- Git
### 1. Clone and Install
```bash
git clone skillswap-uganda
cd skillswap-uganda
npm install
```
### 2. Create Firebase Project
1. Go to
console.firebase.google.com
2. Click **Add Project** β name it `skillswap-uganda`
3. Disable Google Analytics (optional)
4. Click **Create Project**
### 3. Enable Firebase Services
#### Authentication
1. Go to **Build β Authentication β Get started**
2. Enable **Email/Password** provider
3. Enable **Phone** provider
4. Under **Phone β Test phone numbers**, add:
- Phone: `+16505553434` β Code: `123456` (for development testing)
#### Firestore Database
1. Go to **Build β Firestore Database β Create database**
2. Choose **Start in test mode** (we'll add real rules later)
3. Select region: `europe-west1` or closest to Uganda
4. Click **Enable**
#### Storage
1. Go to **Build β Storage β Get started**
2. Start in test mode
3. Use same region as Firestore β¦