FiscalAura is a full-stack tax assistant for FY 2025-26 with:
- React + Vite frontend for onboarding, documents, analysis, and dashboard
- Go + Chi backend API with Supabase-authenticated routes
- Supabase (Auth, Postgres, Storage) as the primary data layer
- AI-assisted document extraction and tax strategy via edge-function workflow
- Secure authentication with Supabase Auth
- Guided onboarding and profile completion
- Document upload and AI-based extraction
- Financial data capture and tax analysis
- Regime-aware guidance and tax-saving suggestions
- Dashboard insights and scheme recommendations
- TaxBuddy strategy endpoint for quick personalized advice
- React 18 + TypeScript
- Vite
- Tailwind CSS + shadcn/ui
- TanStack Query
- Supabase JS client
- Go 1.22+
- Chi router + middleware
- CORS middleware
- Supabase REST/Storage integration
- Supabase Postgres + RLS
- Supabase Storage
- Supabase Edge Functions
fiscalaura/
src/ # Frontend app
backend/ # Go API server
supabase/ # Migrations and edge functions
docs/ # Internal workflow docs
- Node.js 18+ and npm
- Go 1.22+
- Supabase project credentials
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_PUBLISHABLE_KEY=your_supabase_anon_key
VITE_API_URL=http://localhost:8080Use backend/.env.example as the template.
SUPABASE_URL=your_supabase_url
SUPABASE_ANON_KEY=your_supabase_anon_key
PORT=8080
FRONTEND_URL=http://localhost:5173
GROQ_API_KEY=your_groq_api_key
GROQ_MODEL=llama-3.3-70b-versatile- Never commit
.envfiles. - If a key is accidentally committed, rotate it immediately.
npm installcd backend
go mod download
go run .Backend default URL: http://localhost:8080
Open a new terminal in project root:
npm run devFrontend default URL: http://localhost:5173
curl http://localhost:8080/healthExpected:
{"status":"ok"}npm run dev- Start Vite dev servernpm run build- Build production bundlenpm run build:dev- Build in development modenpm run preview- Preview production buildnpm run lint- Run ESLintnpm run test- Run Vitest oncenpm run test:watch- Run Vitest in watch mode
Public:
GET /health
Authenticated (Authorization: Bearer <supabase-jwt>):
GET /api/profilePUT /api/profilePOST /api/onboarding/completeGET /api/documentsPOST /api/documents/uploadDELETE /api/documents/{id}POST /api/documents/{id}/analyzeGET /api/financial-dataPUT /api/financial-dataGET /api/tax-analysisPOST /api/tax-analysis/runPOST /api/taxbuddy/strategyGET /api/dashboard/statsGET /api/schemesPOST /api/schemes/personalized
Supabase migrations are in supabase/migrations.
Main consolidated schema:
- Ensure
backend/.envexists and has valid values. - Check if port 8080 is occupied:
ss -ltnp | grep :8080
- Confirm
VITE_API_URLpoints to running backend. - Confirm user is authenticated in Supabase.
- Confirm backend receives JWT in
Authorizationheader.
- Localhost origins are allowed by backend.
- For non-local frontend URLs, set
FRONTEND_URLinbackend/.env.
- Create a branch from
main. - Keep changes focused and small.
- Run lint/tests before pushing.
- Open a PR with clear context and screenshots (if UI changes).
FiscalAura provides AI-assisted guidance for educational and informational use. Always verify final filing decisions with a qualified tax professional.