EACC - East African Commodities Company - Live commodity price intelligence platform
# EACC - East African Commodities Company
A live commodity price intelligence platform with agent gamification, personal stats, leaderboard, and referral system. All data is read from Google Sheets - no database needed.
## Tech Stack
- **Framework**: Next.js 14 (App Router)
- **Language**: TypeScript
- **Styling**: Tailwind CSS
- **Data**: Google Sheets via googleapis
- **Fonts**: Outfit (display) + Space Grotesk (UI)
- **Icons**: Lucide React
- **Deploy**: Vercel
## Features
- **Dashboard**: Live commodity prices from multiple markets
- **My Stats**: Personal agent statistics and progress tracking
- **Leaderboard**: Weekly rankings by accuracy
- **Lottery**: Weekly prize draws based on ticket entries
- **Spread Calculator**: Cross-border trade profitability calculator
- **Invite**: Referral system for agent recruitment
## Getting Started
### 1. Clone and Install
```bash
git clone
cd eacc
npm install
```
### 2. Set Up Google Cloud
1. Go to Google Cloud Console
2. Create a new project (or select existing)
3. Enable the **Google Sheets API**:
- Go to APIs & Services > Library
- Search for "Google Sheets API"
- Click Enable
4. Create a Service Account:
- Go to APIs & Services > Credentials
- Click "Create Credentials" > "Service Account"
- Name it (e.g., "eacc-sheets-reader")
- Click Create (no special permissions needed)
5. Create a Key:
- Click on your new service account
- Go to Keys > Add Key > Create new key
- Choose JSON format
- Download and save securely
### 3. Set Up Google Sheets
1. Create a new Google Spreadsheet
2. Create 7 tabs with these exact names:
- `spots`
- `prices`
- `config`
- `commodities`
- `agents`
- `lottery`
- `spreads`
3. Import the sample data from `sample-data/` folder:
- Open each tab
- File > Import > Upload
- Select the corresponding CSV
- Choose "Replace current sheet"
4. Share the spreadsheet:
- Click Share
- Add the service account email (from the JSON key file)
- Give "Viewer" access
### 4. Configure Environment Variable …