Status: Locked for Engineering Implementation
Room is a roommate-first mobile application for college students (17+) that enables structured roommate discovery through swipe-based browsing, mutual matching, and shared-school gated messaging.
Room prioritizes:
- Mutual consent
- Safety
- School-bound communities
- Trust-forward interaction
- Structured discovery
Room is NOT:
- A dating application
- A housing marketplace
- A global unrestricted social network
Room consists of five primary tabs:
- Discovery (Roommate Mode)
- Explore (Friends Mode)
- Likes
- Messages
- Profile
Discovery is the primary roommate-matching surface.
Explore is a secondary school-based social browsing surface.
- Users must be 17 years or older (lowered from 18 to accommodate incoming first-year college students).
- Birthdate collected during onboarding.
- Under-17 accounts are blocked at signup.
- Reporting flow must include “Underage User.”
No exceptions.
Users must:
- Verify phone number via OTP
- Upload minimum 3 photos
- Complete required profile fields
- Select at least one school
Users failing requirements:
- Cannot appear in Discovery
- Cannot appear in Explore
- Cannot like or match
Selfie verification provides:
- Verified badge
- Increased Explore ranking weight
- Increased trust perception
Selfie verification does NOT bypass shared-school restrictions.
Users may only:
- View profiles
- Like profiles
- Match
- Message
If they share at least one selected school.
Shared-school enforcement must be server-side.
There is no cross-school messaging.
Room uses a Tinder-style mutual matching system.
Private messaging requires bilateral consent.
In Discovery and Explore:
- Swipe right → Like
- Swipe left → Dismiss
- Save → Bookmark (separate from Like)
Likes are private unless reciprocated.
A Match is created when:
User A likes User B
AND
User B likes User A
When a match occurs:
- “It’s a Match” modal appears for both users.
- A messaging thread is automatically created.
- Messaging becomes enabled.
Messaging requires ALL:
- Mutual match
- Shared school
- Neither user under enforcement
- Neither user blocked the other
If any condition fails → messaging disabled.
Users may unmatch at any time.
When unmatch occurs:
- Thread is deleted for both users.
- Match removed.
- Messaging disabled permanently.
- User does not reappear in Discovery.
Unmatch is server enforced.
Users may only message after mutual match.
No cold messaging. No message requests. No routing tiers.
All matched threads go directly to Inbox.
Thread states:
- active
- unmatched
- blocked
Threads are created automatically upon match.
Chat supports:
- Timestamps
- Delivery confirmation
- Optional read receipts (future paid feature)
- Reactions
- Reply threading
- Media (photos, GIFs)
- Block
- Report
If User A blocks User B:
- Match removed
- Thread hidden
- Messaging disabled
- User hidden in Discovery + Explore
- Re-matching impossible
Blocking is server enforced.
Primary roommate discovery interface.
- Swipe left → dismiss
- Swipe right → like
- Swipe up → super-like
- Save → bookmark
- Tap photo edges → navigate photos
- Double-tap center → open expanded profile sheet
- Photo carousel loops
Swipe-up-to-message is removed. Super-likes follow the same match/creation rules as likes (mutual like → match → thread). See DECISIONS.md 2026-04-17.
Core filters:
- School
- Year
- Gender
- Sleep schedule
- Cleanliness
- Partying
- Guests
- Smoking
- Budget
Filters separated into:
- Preferences
- Dealbreakers (hard filter)
Users may set status:
- Looking for roommate (default)
- Looking for friends
- Found roommate
If set to:
- Looking for friends OR
- Found roommate
User is removed from Discovery stack.
Social browsing within shared-school network.
Users see:
- All users who share at least one school.
No global unrestricted browsing.
Users may:
- Like profiles
- Save profiles
- Match
- Message (after match)
Matching rules identical to Discovery.
Explore Score:
- 30% Profile completeness
- 25% Recent activity
- 20% Verification status
- 15% Profile interactions
- 10% Freshness boost
Ranking weights configurable.
Tabs:
- My Likes
- Liked Me (Paid)
- Matches
Free users:
- See My Likes
- See Matches
- Blurred Liked Me
Paid users:
- Full Liked Me visibility
Matches tab shows:
- Active mutual matches
- Last message preview
- Unread indicator
Ads enabled at launch.
Ads must NOT appear:
- Before 10 swipes OR first match created
- During swipe decision moment
- Inside message composer
Ads may appear:
- Approx every 10 cards in Discovery
- In Explore feed
- Likes footer
Ads must be clearly labeled “Sponsored.”
Launch paid features:
- See who liked you
- Advanced filters
- Profile boost
Boost temporarily increases ranking weight in:
- Discovery
- Explore
Messaging requires mutual match.
This reduces:
- Harassment risk
- Spam
- Unsolicited contact
- Legal exposure
- Harassment
- Sexual content
- Hate speech
- Spam
- Impersonation
- Underage
- Safety threat
- Other
- Warning
- 48-hour messaging ban
- 7-day suspension
- Permanent ban
Blocked users hidden globally.
- No live GPS tracking
- Hometown optional
- Exact birthdate stored for age validation
- Account deletion:
- Immediate deactivation
- Hard deletion within 30 days
- Safety reports may be retained longer
- All eligibility logic server enforced
- Shared-school matching must be indexed
- Match creation must be atomic
- Unmatch must permanently sever thread
- Ranking system must be configurable
- System must scale multi-school graph
Included:
- Discovery
- Explore
- Matching
- Messaging
- Likes
- Verification
- Ads
- Paid tier
- Trust & safety baseline
Out of scope:
- Housing marketplace
- Dorm planning tools
- Cross-school unrestricted browsing
- AI compatibility scoring
Room is:
- A roommate-first application
- Based on mutual matching
- Shared-school restricted
- Consent-driven messaging
- Monetized via power-user tools
- Moderated and scalable
- 17+ only
This document is the authoritative source for engineering implementation.