Full-stack trilingual (English/Amharic/Afaan Oromo) marketplace for ASTU students — auth, real-time chat, listings, reviews, moderation. TypeScript, React, Express, Prisma, Socket.IO. 214 tests.
# ASTU Marketplace
A student marketplace platform for **Adama Science and Technology University (ASTU)** where students can buy, sell, and exchange goods and services within campus life.
## Quick Start
### Prerequisites
- Node.js >= 20.0.0
- PostgreSQL 16+
- Docker & Docker Compose (recommended)
### Option 1: Docker Compose (recommended)
```bash
# Start all services (PostgreSQL, Redis, backend, frontend)
docker compose up
# In another terminal, run migrations and seed
docker compose exec backend npx prisma migrate deploy --schema=packages/backend/prisma/schema.prisma
docker compose exec backend npx tsx packages/backend/prisma/seed.ts
```
### Option 2: Local Development
```bash
# Install dependencies
npm install
# Set up database
cp packages/backend/.env.example packages/backend/.env
# Edit .env with your local PostgreSQL credentials
# Generate Prisma client and run migrations
npm run db:migrate -w packages/backend
# Seed database with demo data
npm run db:seed -w packages/backend
# Start development servers
npm run dev:all
```
### Demo Accounts
| Email | Role | Password |
|-------|------|----------|
| admin@astu.edu.et | Admin | password123 |
| abebe.kebede@astu.edu.et | Student | password123 |
| fatuma.mohammed@astu.edu.et | Student | password123 |
| daniel.tekle@astu.edu.et | Student | password123 |
## Architecture
```
┌─────────────────────────────────────────────────────────┐
│ Frontend (React) │
│ Vite + TypeScript + Tailwind │
│ i18next (English, Amharic, Oromo) │
└─────────────────┬─────────────────────────┬──────────────┘
│ HTTP + WebSocket │
┌─────────────────▼─────────────────────────▼──────────────┐
│ Backend (Express) │
│ TypeScript + Prisma ORM │
│ Controllers → Services → Prisma (Repository Layer) │
│ Socket.io (Real-time Chat) │
└ …