UGANDA JAPAN BRIDGE
# Bridge — Bilingual Translation Chat
A world-class global communication platform with premium **user UI**, **admin console**, real-time **English ↔ Japanese** translation, **Uganda local languages**, and a Node.js backend.
## App routes
| Route | Description |
|-------|-------------|
| `/` | Landing page — marketing & product showcase |
| `/login` | Sign in (user or admin) |
| `/app` | User chat interface (protected) |
| `/admin` | Admin dashboard (admin only) |
| `/admin/users` | User management |
| `/admin/channels` | Channel management |
| `/admin/translations` | Translation analytics |
| `/admin/settings` | Platform settings |
### Demo accounts
| Role | Email | Password |
|------|-------|----------|
| User | `alex@bridge.global` | `user123` |
| Admin | `admin@bridge.global` | `admin123` |
## Features
- **Premium landing page** with global positioning
- **Admin console** — dashboard, users, channels, translations, settings
- **Role-based access** — user vs admin routes
- Instant bilingual messaging with inline translations
- **8 Uganda languages** (Luganda, Swahili, Runyankole, Ateso, Acholi, Lango, Rutooro, Lumasaba)
- Auto-detect language with manual override
- Translation preview before sending
- Real-time sync via **WebSocket** (Socket.io)
- REST translation API
- Channels, DMs, reactions, command palette
- Live connection status badge
## Quick start (full stack)
**Terminal 1 — Backend:**
```bash
cd backend
npm install
npm run dev
```
**Terminal 2 — Frontend:**
```bash
npm install
npm run dev
```
Open the URL shown in the terminal (usually
localhost or :5174).
You should see a green **Live** badge in the header when connected.
## Frontend only (offline demo)
```bash
npm run dev
```
Set `VITE_ENABLE_REALTIME=false` in `.env.local` to disable socket connection attempts.
## Environment
Copy `.env.example` to `.env.local`:
| Variable | Description |
|----------|-------------|
| `VITE_TRANSLATION_API_URL` | `/api` (proxied to backend …