Skip to content

Repository files navigation

RoomSync Banner



🏠 RoomSync

Find a roommate you actually vibe with.


RoomSync is an AI-powered roommate matching platform for Indian students and working professionals. Built because finding a good roommate from a random WhatsApp group is basically a nightmare. 😅


🌐 Live Demo  ·  🚀 Get Matched  ·  💬 Chat Feature  ·  📝 Take Quiz


😂 The Origin Story

"I'm a hosteler. Finding a roommate in India means posting in a WhatsApp group, getting 47 'bhai available hai?' messages, picking someone randomly, and spending 6 months regretting it."

So I did what any reasonable sleep-deprived student would do.

I built an app.

  • Week 1 → "I'll just build a simple website"
  • Week 2 → "Okay I need a backend too"
  • Week 3 → "Wait what is MongoDB"
  • Week 4 → "Why is localhost:5000 showing 403??"
  • Week 5 → Deployed. Cried. Deployed again. ✅

✨ Features

Feature Description
🧠 AI Compatibility Scoring 4-vector algorithm — Sleep, Social, Cleanliness, Work style
📝 12-Question Lifestyle Quiz Under 3 minutes, builds your full personality profile
💑 Smart Matches Page Filter by city, budget, role, verified, online status
💬 Per-Person Chat Every conversation is separate — finally fixed after 3 days 😅
🤖 Gemini AI Chat Panel Real AI gives roommate advice inside the chat
🔒 Privacy Protection Contact details hidden until BOTH users agree to share
Verified Profiles College ID verification system
🔐 JWT Authentication Secure signup & login with bcrypt password hashing
📍 28 Indian Cities Bangalore, Mumbai, Pune, Delhi, Hyderabad, Indore & more
🚀 Fully Deployed Live on Vercel + Railway + MongoDB Atlas

🗺️ Pages

Page URL Description
🏠 Home /index.html Landing page with animations, gallery, profiles
🔐 Auth /signup.html Signup & Login with JWT
📝 Quiz /quiz.html 12-question lifestyle questionnaire
💑 Matches /matches.html Ranked, filtered roommate cards
💬 Chat /chat.html AI-powered messaging with per-person history

⚙️ Tech Stack

Frontend

  • HTML5 + CSS3 + Vanilla JavaScript — No frameworks, pure skill 💪
  • Google Fonts — Playfair Display + DM Sans
  • CSS Animations — Scroll triggers, marquee, fade-ins
  • Fetch API — Connecting to backend

Backend

  • Node.js + Express.js — REST API server
  • MongoDB Atlas — Cloud database (free tier)
  • Mongoose — ODM for MongoDB
  • bcryptjs — Password hashing
  • jsonwebtoken — JWT authentication
  • @google/generative-ai — Gemini AI integration
  • cors + dotenv — Security & config

Deployment

  • Vercel — Frontend (free, forever)
  • Railway — Backend ($5/month free credits)
  • MongoDB Atlas — Database (free M0 cluster)

🧠 How the Matching Algorithm Works

User answers 12 lifestyle questions
            ↓
4 compatibility vectors calculated:
  😴 Sleep       (30%) — bedtime, wake time
  🎉 Social      (25%) — guests, noise tolerance
  🧹 Cleanliness (25%) — cleaning habits
  💻 Work Style  (20%) — WFH, focus needs
            ↓
Weighted similarity score between two users
            ↓
  85%+ → 🟢 Great Match
  60–85% → 🟡 Good Match
  <60%  → 🔴 Poor Match

🚀 Getting Started Locally

# Clone the repo
git clone https://github.com/Snehachoudhary26/Roomsync.git
cd Roomsync

# Install dependencies
npm install

# Create .env file
PORT=3000
MONGO_URI=your_mongodb_uri_here
JWT_SECRET=your_secret_here
GEMINI_API_KEY=your_gemini_key_here

# Start server
node server.js

# Open in browser → http://127.0.0.1:3000/index.html

🔌 API Reference

Method Endpoint Description
POST /api/auth/signup Register a new user
POST /api/auth/login Login existing user
POST /api/auth/ai-chat Gemini AI roommate advice

📁 Project Structure

RoomSync/
├── 📄 index.html       ← Landing page
├── 📄 signup.html      ← Auth page
├── 📄 quiz.html        ← Lifestyle quiz
├── 📄 matches.html     ← Roommate matches
├── 📄 chat.html        ← AI-powered chat
├── ⚙️  server.js       ← Express server
├── 📁 models/
│   └── User.js         ← MongoDB schema
├── 📁 routes/
│   └── auth.js         ← API routes + Gemini AI
├── 📄 vercel.json      ← Vercel config
└── 📄 .env             ← Environment variables

🎓 What I Learned

  • Port 5000 is blocked by Chrome on Mac. This destroyed 3 days of my life.
  • MongoDB URI without the database name at the end will ruin your entire week.
  • "It works on localhost" means absolutely nothing in production.
  • Deploying a full-stack app feels like parallel parking for the first time — terrifying but satisfying.
  • Sleep is important. Ironic that I built a sleep-compatibility app while sleeping 4 hours a night.

🔮 Future Plans

  • 📱 React Native mobile app
  • 🔴 Real-time chat with Socket.io
  • 🔑 Google OAuth login
  • 📸 Profile photo upload
  • 🗺️ Google Maps room locations
  • ⭐ Roommate review system
  • 🌐 Hindi language support

📞 Contact & Support

🌐 Live Site roomsync-delta.vercel.app
📞 Helpline +91 88000 01234
✉️ Support support@roomsync.in
💼 Business hello@roomsync.in
🐙 GitHub Snehachoudhary26/Roomsync

Built from a hostel room · With bad WiFi · At 2 AM · Because the problem was too real 😅

⭐ Star this repo if you've ever had a bad roommate!

© 2026 RoomSync · Made with ❤️ in India 🇮🇳

About

roomsync

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages