A premium discovery & booking web application for student hostels, tiffin mess subscriptions, and roommate matching. Designed with modern UX, interactive maps, and student compatibility tags.
- Browse rooms, hostels, and PGs with a cinematic photo grid, reviews, pricing, and distance parameters.
- Interactive map integration using Advanced Markers showing student-specific locations and neighborhood essentials (Libraries, Hospitals, Late-Night Food Points).
- Real-time room booking flow with secure group/shared room invitations.
- Subscriptions for Veg/Non-Veg/Both dining plans with reviews and location badges.
- Integrated tiffin service reviews, overall ratings, and location proximity filters.
- Confirmed Booking Gating: Verified tenants with active confirmed room bookings can publish public roommate request advertisements.
- Compatibility Tagging: Auto-prefills and matches roommates based on habits: Study Style (Quiet, Group, Flexible), Social Vibe (Introvert, Extrovert, Balanced), Cleanliness Indexes, Smoking preferences, and Dietary choices.
- Notice Bulletin Board: All published roommate ads are displayed on a dedicated tab on the Home page as notice cards with detail modals.
- In-app Chat Connect: Direct linking to in-app messaging threads to instantly coordinate flatshares.
- Custom, tabbed profile controller to manage Personal Info (Name, College, Bio), Account Settings (Preferences, clean/diet tags), Security & Privacy (Password change, custom toggle controls for profile visibility), and Roommate Ad (publish/edit/delete roommate requests).
- Real-time updates for bookings, message requests, and landlord responses powered by Socket.io.
- Native styling transitions with complete visual visibility checks for all text, icons, forms, interactive map markers, and primary buttons.
| Layer | Technologies |
|---|---|
| Frontend | React 19 (Vite SPA), Tailwind CSS v4, Lucide Icons, Google Maps React API, Framer Motion |
| Backend | Node.js, Express.js, Socket.io |
| Database | Prisma ORM, SQLite (prisma/dev.db for fully offline development) |
| Auth | JWT (JSON Web Tokens), bcrypt password hashing |
erDiagram
User ||--o{ Room : hosts
User ||--o{ Booking : places
User ||--o{ Message : sends
User ||--o{ Message : receives
User ||--o{ Review : writes
User ||--o{ Mess : operates
User ||--o{ MessSubscription : subscribes
User ||--o{ MessReview : reviews
User ||--o{ Wishlist : saves
User ||--o{ MaintenanceRequest : reports
User ||--o{ Notification : receives
User ||--o{ RoommateListing : posts
Room ||--o{ Image : has
Room ||--o{ Booking : contains
Room ||--o{ Review : rated_by
Room }o--o{ Mess : nearby
Room ||--o{ Wishlist : saved_in
Room ||--o{ MaintenanceRequest : reported_on
Room ||--o{ RoommateListing : attached_to
Booking ||--o{ GroupMember : includes
Booking ||--o| RoommateListing : qualifies
Mess ||--o{ MessImage : has
Mess ||--o{ MessReview : rated_by
Mess ||--o{ MessSubscription : subscribed_via
Mess ||--o{ Wishlist : saved_in
βββ client/ # React Frontend (Vite)
β βββ src/
β β βββ components/ # Reusable UI (RoomCard, MessCard, Map, Layout)
β β βββ context/ # AuthContext, ThemeContext
β β βββ pages/ # Home, Auth, Profile, Details
β βββ package.json
βββ server/ # Express Backend
βββ prisma/ # Schema configuration, migrations, seed scripts
βββ routes/ # REST API routers (auth, rooms, messes, roommates, etc.)
βββ server.js # Server initialization and Socket.io setups
βββ package.json
Follow these steps to run the application completely offline:
Make sure you have Node.js (v18+) and npm installed.
git clone https://github.com/adwaitumredkar1818/Homely.git
cd Homely# Navigate to the server folder
cd server
# Install dependencies
npm install
# Run database schema push & generate client
npx prisma db push
# Seed the database with sample listings, user credentials, and active requests
node prisma/seed.js
# Start the local API server
node server# Navigate to client folder in a new terminal window
cd client
# Install dependencies
npm install
# Start the Vite development server
npm run devThe client will be running locally at http://localhost:5173.
Use these seeded accounts to log in and inspect the features:
| Account Type | Password | Role | Features | |
|---|---|---|---|---|
| Student Tenant | tenant@test.com |
password123 |
TENANT |
Book hostels, subscribe to messes, browse/post roommate listings |
| Landlord Host | host@test.com |
password123 |
HOST |
Manage reservations, upload listings, inspect metrics |
Note: Screenshots coming soon! Run the app locally to explore the full UI.
| Feature | Description |
|---|---|
| π Home Page | Toggle between Hostels, Messes, and the Notice Board with a premium sliding pill selector |
| πΊοΈ Interactive Map | Google Maps with Advanced Markers showing nearby essentials |
| π₯ Notice Board | Roommate notice cards with detail modals and direct chat links |
| βοΈ Profile Dashboard | Tabbed settings with Personal Info, Account, Security, and Roommate Ad management |
| π Dark Mode | Full dark theme support with audited contrast across all components |
This project is for educational and portfolio purposes.
Made with β€οΈ by Adwait Umredkar