Mitra is a collaborative experience-planning app for groups. The current MVP lets users sign in, create shared rooms for trips/events, view members, and manage RSVP status.
- Frontend: React, Vite, Tailwind CSS, React Router
- Auth/database: Supabase Auth + Postgres + Row Level Security
- Backend: FastAPI health/API scaffold
frontend/ React/Vite app
backend/ FastAPI service
supabase/migrations/ Database schema and RLS policies
- Node.js + npm
- Python 3.11+
- Supabase project
- Supabase CLI, optional but recommended
Create frontend/.env.local:
VITE_SUPABASE_URL=https://your-project-ref.supabase.co
VITE_SUPABASE_ANON_KEY=your-anon-keyCreate backend/.env:
SUPABASE_URL=https://your-project-ref.supabase.co
SUPABASE_SERVICE_KEY=your-service-role-keyNever commit real .env files.
The app expects these public tables:
usersroomsroom_members
Apply the migration in supabase/migrations/001_initial_schema.sql to your Supabase project.
If this repo is linked to Supabase CLI:
supabase link --project-ref <project-ref>
supabase db pushOr paste/run the migration SQL in the Supabase SQL editor.
cd frontend
npm install
npm run devUseful checks:
npm run lint
npm run buildcd backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn main:app --reloadHealth check:
curl http://localhost:8000/health- Sign up/sign in with Supabase Auth
- Create an experience room
- Automatically add the creator as an admin member
- View rooms on the dashboard
- View room details and members
- Update your RSVP status
- Build the invite flow behind the existing “Invite people” button.
- Add itinerary/planning items inside rooms.
- Add room activity/comments.
- Add tests around Supabase data access and protected routes.
- Decide whether FastAPI remains a thin service or owns business logic.