London-first flatmate matching + room listings for students.
This repo includes:
apps/api: Node API usingverisimdbas the persistence/search layer.apps/web: React + Vite web client.apps/mobile: Expo React Native mobile client.packages/shared: Domain models, compatibility scoring, and verisimdb encoding helpers.
Student renters in London need two things at once:
matching: who to live with.listing: where to live.
flat-mate handles both in one flow, with profile compatibility and listing discovery centered around London boroughs and universities.
flat-mate writes profiles, listings, and swipe events as hexads in verisimdb:
POST /hexadsfor writes.GET /search/textto retrieve encoded entities.POST /search/vectorfor compatibility feed ranking.
Because current verisimdb API responses are compact, the app stores encoded payloads in searchable document titles as an MVP strategy.
See docs/architecture.md.
- Start verisimdb in another terminal:
cd /var$REPOS_DIR/verisimdb
cargo run -p verisim-api- Install web/mobile dependencies:
cd /var$REPOS_DIR/flat-mate
npm install- Configure the Deno API (
deno1.40+ needed):
cp .env.example .env
source .env- Start the API:
deno run --watch=apps/api --allow-net --allow-env apps/api/main.ts- Start web + mobile:
npm run dev:web
npm run dev:mobile.env:
HOST=127.0.0.1
PORT=4000
VERISIMDB_BASE_URL=http://127.0.0.1:8080
VERISIMDB_VECTOR_DIM=384Web can optionally use:
VITE_API_BASE_URL=http://127.0.0.1:4000Expo can optionally use:
EXPO_PUBLIC_API_BASE_URL=http://127.0.0.1:4000Profiles require a .ac.uk studentEmail today so the API can enforce student verification for the first pilot.
- Student profile creation with compatibility preferences.
- Swipe-style profile matching.
- Listing creation and browsing.
- Match discovery from mutual likes.
- University email verification (
.ac.uk). - Safety workflows (reporting, blocklist, check-in sharing).
- Built-in chat and viewing scheduler.
See TOPOLOGY.md for a visual architecture map and completion dashboard.