A production-ready starter that includes:
admin@gmail.comadmin123Change admin credentials immediately in production using environment variables.
frontend/ → React applicationbackend/ → FastAPI API with MongoDB integrationbackend/.env.example → backend env formatfrontend/.env.example → frontend env formatbackend/.env)Copy backend/.env.example to backend/.env and set values:
JWT_SECRET=replace-with-strong-secret
JWT_EXPIRE_MINUTES=120
FRONTEND_ORIGIN=http://localhost:5173
MONGODB_URI=mongodb+srv://<username>:<password>@<cluster-url>/?retryWrites=true&w=majority
MONGODB_DB_NAME=karnova
ADMIN_EMAIL=admin@gmail.com
ADMIN_PASSWORD=admin123
EMAIL_PROVIDER_API_KEY=replace-email-provider-key
THIRD_PARTY_API_KEY=replace-third-party-key
JWT_SECRET: signing JWT tokens for auth.JWT_EXPIRE_MINUTES: token expiry.FRONTEND_ORIGIN: CORS allowlist for frontend URL.MONGODB_URI: your MongoDB connection string.MONGODB_DB_NAME: database name.ADMIN_EMAIL, ADMIN_PASSWORD: seeded admin login.EMAIL_PROVIDER_API_KEY, THIRD_PARTY_API_KEY: placeholders for integrations/secrets.frontend/.env)Copy frontend/.env.example to frontend/.env:
VITE_API_BASE_URL=http://localhost:8000
VITE_API_BASE_URL: backend API base URL.cd backend
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
cd frontend
npm install
npm run dev
Open http://localhost:5173
MONGODB_URI.users, user_queries, user_issues) are auto-used.backend.pip install -r requirements.txt
uvicorn main:app --host 0.0.0.0 --port $PORT
.env format.Example backend URL after deploy:
https://your-backend.onrender.comfrontend.VITE_API_BASE_URL=https://your-backend.onrender.comPOST /api/auth/signup → user registrationPOST /api/auth/login → user loginPOST /api/admin/login → admin loginGET /api/users/me → current user profilePOST /api/user/queries → submit user queryPOST /api/user/issues → raise user issueGET /api/admin/dashboard → admin dashboard data (all users + queries + issues)GET /api/health → health checkJWT_SECRET.