Skip to content

ergishasani/MyVision

Repository files navigation

MyVision

MyVision is a SaaS invoicing and project billing platform for small construction and service businesses.

Stack

  • Frontend: Next.js, TypeScript, Tailwind CSS
  • Backend: Java 21, Spring Boot 3
  • Database: PostgreSQL
  • Migrations: Flyway
  • Auth: Spring Security with JWT

Workspace

apps/web  - Next.js frontend
apps/api  - Spring Boot backend
packages  - shared code and types
docs      - product and technical planning
infra     - deployment and infrastructure config
scripts   - local helper scripts

Local development

Backend (port 8080)

docker compose up -d --build

API docs: http://localhost:8080/docs

Frontend (port 3000)

cp apps/web/.env.local.example apps/web/.env.local
npm install
npm run dev

Open http://localhost:3000 — register or sign in, then use the dashboard.

The frontend reads NEXT_PUBLIC_API_URL (default http://localhost:8080/api).

Production readiness

  • CI runs backend tests and frontend lint/build in GitHub Actions.
  • Backend integration tests use Testcontainers, so Docker must be available in CI.
  • Set a strong JWT_SECRET in production.
  • Set production database credentials through environment variables, not committed files.
  • The frontend build uses system fonts so CI does not depend on Google Fonts network fetches.
  • Vercel builds the frontend through root vercel.json using the @myvision/web workspace.
  • See docs/production-readiness.md, docs/deployment-checklist.md, docs/supabase-backup-restore.md, and docs/e-invoice-validation.md for deployment, provider, backup, and compliance details.