Skip to content

logeshkannan19/Roomora

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

4 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Roomora - Premium Room Rental Discovery Platform

Roomora Banner

A modern, production-ready room rental discovery platform with a premium Apple-inspired design.

๐Ÿš€ Overview

Roomora is a sophisticated room rental platform designed for the UAE market. It features a clean, Apple-inspired UI with smooth animations, advanced filtering capabilities, and a delightful user experience. Built with modern web technologies and best practices.

Live Demo: roomora.vercel.app

โœจ Features

Feature Description
๐Ÿ  Hero Landing Stunning hero section with animated search and statistics
๐Ÿ” Smart Filters Filter by location, price range, and room type
๐Ÿ“ฑ Responsive Grid Beautiful card layout adapts to all screen sizes
๐Ÿ“„ Room Details Full gallery, amenities, and booking actions
โค๏ธ Favorites Save rooms locally with persistent storage
๐ŸŒ™ Dark Mode Eye-friendly dark theme with smooth transitions
๐Ÿ”Ž Auto-Suggest Smart search with location suggestions
โšก Animations Framer Motion powered smooth transitions
๐Ÿ’ซ Loading States Skeleton loaders for premium UX

๐Ÿ›  Tech Stack

Category Technology
Framework Next.js 14 (App Router)
Language TypeScript
Styling Tailwind CSS + shadcn/ui
State Zustand
Icons Lucide React
Animation Framer Motion
UI Components Radix UI

๐Ÿ“ Project Structure

roomora/
โ”œโ”€โ”€ app/                        # Next.js App Router
โ”‚   โ”œโ”€โ”€ api/rooms/[id]/        # API routes
โ”‚   โ”œโ”€โ”€ favorites/              # Favorites page
โ”‚   โ”œโ”€โ”€ layout.tsx             # Root layout
โ”‚   โ”œโ”€โ”€ page.tsx               # Landing page
โ”‚   โ””โ”€โ”€ globals.css            # Global styles
โ”œโ”€โ”€ components/
โ”‚   โ”œโ”€โ”€ ui/                    # shadcn/ui components
โ”‚   โ”œโ”€โ”€ Header.tsx             # Navigation header
โ”‚   โ”œโ”€โ”€ Hero.tsx               # Hero section
โ”‚   โ”œโ”€โ”€ Footer.tsx             # Footer
โ”‚   โ”œโ”€โ”€ RoomCard.tsx           # Room card component
โ”‚   โ”œโ”€โ”€ RoomListings.tsx       # Room grid with filters
โ”‚   โ”œโ”€โ”€ Filters.tsx            # Filter controls
โ”‚   โ”œโ”€โ”€ SearchBar.tsx          # Search with suggestions
โ”‚   โ”œโ”€โ”€ FeaturedRooms.tsx      # Featured listings
โ”‚   โ”œโ”€โ”€ FavoritesButton.tsx    # Heart/favorite toggle
โ”‚   โ””โ”€โ”€ ThemeProvider.tsx      # Theme context
โ”œโ”€โ”€ lib/
โ”‚   โ”œโ”€โ”€ mockData.ts            # 18 premium room listings
โ”‚   โ”œโ”€โ”€ store.ts               # Zustand state management
โ”‚   โ””โ”€โ”€ utils.ts               # Utility functions
โ”œโ”€โ”€ hooks/
โ”‚   โ””โ”€โ”€ useDebounce.ts        # Debounce hook
โ”œโ”€โ”€ next.config.js             # Next.js configuration
โ””โ”€โ”€ tsconfig.json              # TypeScript configuration

๐Ÿš€ Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Git

Installation

# Clone the repository
git clone https://github.com/logeshkannan19/Roomora.git
cd Roomora

# Install dependencies
npm install

# Start development server
npm run dev

# Build for production
npm run build

# Start production server
npm start

Environment Variables

Create a .env.local file if needed:

NEXT_PUBLIC_SITE_URL=http://localhost:3000

๐ŸŽจ Design System

Color Palette

Color Hex Usage
Primary #10B981 CTAs, links, highlights
Primary Dark #059669 Hover states
Background Light #FFFFFF Light mode background
Background Dark #020617 Dark mode background
Text #0F172A Primary text
Muted #64748B Secondary text

Typography

  • Font Family: Inter (Google Fonts)
  • Headings: Bold, large size
  • Body: Regular, optimized line height
  • Code: JetBrains Mono

Components

  • Cards: Rounded-xl (16px radius), soft shadows
  • Buttons: Rounded-xl, multiple variants
  • Inputs: Clean, minimal borders
  • Transitions: 300ms ease-out

๐Ÿ“ฑ Responsive Design

Breakpoint Columns Description
< 640px 1 Mobile phones
640px+ 2 Tablets
768px+ 3 Small laptops
1024px+ 3-4 Desktops
1280px+ 4 Large screens

๐Ÿ”Œ API Reference

The API routes are structured for easy backend integration:

GET /api/rooms/[id]

Fetch a single room by ID.

Response:

{
  "id": "1",
  "title": "Modern Marina Studio",
  "location": "Dubai Marina",
  "price": 2500,
  "rating": 4.9,
  "type": "Studio",
  "amenities": ["WiFi", "AC", "Pool"],
  "images": ["url1", "url2"],
  "description": "...",
  "availableNow": true
}

๐Ÿ“ฆ Mock Data

The platform includes 18 premium room listings across:

  • Dubai Marina, Downtown Dubai, Palm Jumeirah
  • Abu Dhabi Corniche, Al Reem Island
  • Sharjah, Ajman, Ras Al Khaimah, Fujairah
  • DIFC, Business Bay, JBR, and more

๐Ÿ”ฎ Future Roadmap

  • User authentication (NextAuth.js)
  • Database integration (PostgreSQL/Supabase)
  • Real-time chat with hosts
  • Booking system with payments
  • User reviews and ratings
  • Push notifications
  • PWA support
  • Advanced analytics

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

Releases

No releases published

Packages

 
 
 

Contributors