Skip to content

Latest commit

 

History

History
46 lines (31 loc) · 1.58 KB

File metadata and controls

46 lines (31 loc) · 1.58 KB

CloudOptima

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.

Stack

  • 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

Quickstart

  1. Start services: docker-compose up -d
  2. Install deps:
    • cd backend && npm install
    • cd ../frontend && npm install
  3. Database:
    • Copy backend/.env.example to .env and set secrets.
    • Run Prisma migrate: npm run db:push
  4. Run apps:
    • Backend: npm run dev
    • Frontend: npm run dev

Frontend routes

  • /dashboard, /accounts, /resources, /recommendations, /schedules, /budgets, /settings
  • /login and /register for auth

Backend API (prefix /api)

Auth, accounts, costs, resources, recommendations, schedules, budgets, and user profile endpoints are scaffolded with validation and JWT protection where appropriate.

Testing

  • Backend: npm test

Deployment

  • 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.

Notes

  • Credentials must be stored encrypted; ensure ENCRYPTION_KEY is set.
  • Timescale hypertable: run SELECT create_hypertable('cost_entries','time'); after migrations.