CloudOptima is a multi-cloud cost optimization platform for AWS, Azure, and GCP. This monorepo contains a Next.js frontend and an Express + Prisma backend with BullMQ workers for background processing.
- Frontend: Next.js 14 (App Router), TypeScript, Tailwind CSS, React Query, Zustand, Recharts
- Backend: Node.js, Express, TypeScript, Prisma ORM, PostgreSQL/TimescaleDB, Redis (BullMQ), JWT auth
- Infra: Docker Compose for local Postgres and Redis
- Start services:
docker-compose up -d - Install deps:
cd backend && npm installcd ../frontend && npm install
- Database:
- Copy
backend/.env.exampleto.envand set secrets. - Run Prisma migrate:
npm run db:push
- Copy
- Run apps:
- Backend:
npm run dev - Frontend:
npm run dev
- Backend:
/dashboard,/accounts,/resources,/recommendations,/schedules,/budgets,/settings/loginand/registerfor auth
Auth, accounts, costs, resources, recommendations, schedules, budgets, and user profile endpoints are scaffolded with validation and JWT protection where appropriate.
- Backend:
npm test
- Frontend: Vercel (or Docker via frontend/Dockerfile)
- Backend: Render/Railway (Docker via backend/Dockerfile); Postgres on Neon/Supabase; Redis on Upstash
- See DEPLOY.md for full env vars and step-by-step guides.
- Credentials must be stored encrypted; ensure
ENCRYPTION_KEYis set. - Timescale hypertable: run
SELECT create_hypertable('cost_entries','time');after migrations.