Photo sharing platform monorepo with image processing pipeline and multi-platform clients.
apps/
backend/ Go API and background image processing worker
web/ React web application (Vite + TypeScript)
backoffice/ React admin dashboard (Vite + TypeScript)
mobile/ React Native Android application
infra/
postgres/ Database initialization scripts
docker-compose.yml Docker orchestration
apps/backend: HTTP API (cmd/api) and Redis queue worker (cmd/worker) for thumbnail generation.apps/web: User web interface.apps/backoffice: Administrative dashboard.apps/mobile: Android native mobile application.
POST /photos: Uploads original image to MinIO (mediabucket,originals/<id>), saves pending metadata in PostgreSQL, and enqueues processing job to Redis.worker: Consumes Redis queue, downloads original file, generates a 400px JPEG thumbnail (thumbnails/<id>.jpg), and updates metadata status toready.
- Go 1.26+
- Node.js 22+
- Docker / Podman
- JDK and Android SDK (for mobile)
Start local infrastructure (PostgreSQL, Redis, MinIO):
docker compose up -d postgres redis minio minio-initStart the full stack including API and worker:
docker compose up -dBackend services:
cd apps/backend
go run ./cmd/api
go run ./cmd/workerWeb client:
cd apps/web
npm install
npm run devMobile client:
cd apps/mobile
npm install
npm run android| Service | Type | Port | Endpoint |
|---|---|---|---|
| Web App | Frontend | 5173 |
http://localhost:5173 |
| Backoffice | Frontend | 5174 |
http://localhost:5174 |
| HTTP API | Backend | 8080 |
http://localhost:8080 |
| PostgreSQL | Database | 5432 |
localhost:5432/shareit |
| Redis | Cache/Queue | 6379 |
localhost:6379 |
| MinIO API | Storage | 9000 |
http://localhost:9000 |
| MinIO Console | Storage UI | 9001 |
http://localhost:9001 |
- 📋 Roadmap & TODOs - Planned features and project roadmap
- 📐 Architecture - System architecture and components
- 📄 License - MIT License