FillThatCrib is a student housing app split across two repositories:
Fillthatcrib/ for the Next.js frontend fillthatcrib-backend/ for the FastAPI backend The app supports:
student profile creation and login duplicate email protection swipe tracking host listing creation match creation messaging Supabase Postgres persistence Repo Layout FILLTHATCRIB/ ├── Fillthatcrib/ └── fillthatcrib-backend/ Clone The Repos Clone both repositories into the same parent folder:
git clone https://github.com/CartHutch/Fillthatcrib.git git clone https://github.com/CartHutch/fillthatcrib-backend.git After cloning, your folder layout should look like:
FILLTHATCRIB/ ├── Fillthatcrib/ └── fillthatcrib-backend/ If needed, switch to the branch your team is using:
cd Fillthatcrib git checkout main
cd ..\fillthatcrib-backend git checkout main Frontend Repo Frontend location:
Fillthatcrib Main commands:
cd c:\Users\natha\Downloads\FILLTHATCRIB\Fillthatcrib npm install npm run dev Frontend URL:
http://localhost:3000 Backend Repo Backend location:
fillthatcrib-backend Main commands:
cd c:\Users\natha\Downloads\FILLTHATCRIB\fillthatcrib-backend python -m venv .venv .venv\Scripts\Activate.ps1 pip install -r requirements.txt python -m uvicorn main:app --reload Backend URLs:
http://127.0.0.1:8000 http://127.0.0.1:8000/docs Backend Environment Create .env inside the backend repo:
DATABASE_URL=postgresql://postgres.vsmzbqwtjewgflquykxq:@aws-1-ca-central-1.pooler.supabase.com:5432/postgres sslmode=require Notes:
keep postgresql+psycopg2://
keep ?sslmode=require
do not commit .env Frontend Environment Optional frontend env file:
.env.local NEXT_PUBLIC_API_BASE_URL=http://127.0.0.1:8000 If not set, the frontend defaults to http://localhost:8000.
Main APIs Profiles:
POST /profiles GET /profiles/{email} PUT /profiles/{email} DELETE /profiles/{email} Swipes:
GET /swipes POST /swipes Listings:
GET /listings/ POST /listings/ Matches:
GET /matches/?user=... POST /matches/ Messages:
GET /messages/?user=... GET /messages/?user=...&listing_id=... POST /messages/ Quick Start Start the backend Start the frontend Open http://localhost:3000 Create a profile Test login, swipes, host listing flow, and messaging Manual Test Checklist Create a profile Try creating the same email again and confirm duplicate protection Log in with a saved email Try logging in with a random unsaved email and confirm it is blocked Swipe on at least one listing Check GET /swipes Create a host profile Enter the lister flow Approve a student Send a message Check GET /listings/, GET /matches/, and GET /messages/ Notes For Teammates clone both repos use main in each unless your team is working from another branch set up the backend .env run frontend and backend in separate terminals