{"id":21809914,"url":"https://github.com/himuexe/hotel-booking-website","last_synced_at":"2026-04-10T14:35:26.452Z","repository":{"id":253391645,"uuid":"835431616","full_name":"himuexe/Hotel-Booking-Website","owner":"himuexe","description":"Hotel-Booking-Website Fullstack  using Typescript , Tailwind , Cloudinary , Playwright . ","archived":false,"fork":false,"pushed_at":"2025-03-10T21:00:08.000Z","size":856,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-10T21:32:37.164Z","etag":null,"topics":["authentication","cloudinary","e2e-tests","expressjs","hotel-booking","mongodb","nodejs","playwright-typescript","project","react","search-interface","sorting-visualization","tailwindcss","typescript","vite"],"latest_commit_sha":null,"homepage":"https://hotel-booking-website-0bkw.onrender.com/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/himuexe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-29T20:33:59.000Z","updated_at":"2025-03-10T21:00:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"06f6489f-83fd-4d48-b50c-098cff9d2ff4","html_url":"https://github.com/himuexe/Hotel-Booking-Website","commit_stats":null,"previous_names":["himuexe/hotel-booking-website"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/himuexe%2FHotel-Booking-Website","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/himuexe%2FHotel-Booking-Website/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/himuexe%2FHotel-Booking-Website/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/himuexe%2FHotel-Booking-Website/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/himuexe","download_url":"https://codeload.github.com/himuexe/Hotel-Booking-Website/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244767542,"owners_count":20507110,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["authentication","cloudinary","e2e-tests","expressjs","hotel-booking","mongodb","nodejs","playwright-typescript","project","react","search-interface","sorting-visualization","tailwindcss","typescript","vite"],"created_at":"2024-11-27T13:29:14.954Z","updated_at":"2025-12-30T19:03:48.230Z","avatar_url":"https://github.com/himuexe.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# 🏨 Vacays - Hotel Booking Platform\n\n[![Build Status](https://img.shields.io/badge/build-passing-brightgreen?style=for-the-badge\u0026logo=github-actions)](https://github.com/himuexe/Hotel-Booking-Website/actions)\n[![Docker](https://img.shields.io/badge/docker-ready-blue?style=for-the-badge\u0026logo=docker)](https://hub.docker.com/)\n[![License](https://img.shields.io/badge/license-MIT-green?style=for-the-badge\u0026logo=opensourceinitiative)](LICENSE)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen?style=for-the-badge\u0026logo=github)](https://github.com/himuexe/Hotel-Booking-Website/issues)\n\n**A modern, full-stack hotel booking platform built with React, TypeScript, Node.js, and MongoDB**\n\n[🚀 Quick Start](#-quick-start-30-seconds) • [🐳 Docker Setup](#-docker-deployment) • [📖 Documentation](#-documentation) • [🤝 Contributing](#-contributing)\n\n\u003c/div\u003e\n\n---\n\n## ✨ Features\n\n### 🎯 Feature Matrix\n\n```mermaid\nmindmap\n  root((🏨 Vacays Platform))\n    🔐 Authentication\n      👤 User Registration\n      🔑 JWT Login\n      🍪 Secure Cookies\n      🔒 Password Hashing\n    🏨 Hotel Management\n      ➕ Create Hotels\n      ✏️ Edit Properties\n      📸 Image Upload\n      📊 Analytics\n    🔍 Search \u0026 Discovery\n      🌍 Location Search\n      📅 Date Filtering\n      💰 Price Range\n      ⭐ Star Rating\n      🏷️ Amenities Filter\n    💳 Booking System\n      📋 Guest Information\n      💰 Price Calculation\n      💳 Stripe Payment\n      📧 Confirmation\n    👤 User Experience\n      📱 Mobile Responsive\n      ⚡ Fast Loading\n      ♿ Accessibility\n      🎨 Modern UI\n```\n\n\u003cdiv align=\"center\"\u003e\n\n| 🎨 **Modern UI/UX** | 🔐 **Secure Authentication** | 💳 **Payment Integration** |\n|:---:|:---:|:---:|\n| Responsive design with Tailwind CSS | JWT-based auth with HTTP-only cookies | Stripe payment processing |\n| **🔍 Advanced Search** | **📱 Mobile Optimized** | **🐳 Docker Ready** |\n| Filter by location, dates, price | Works seamlessly on all devices | One-command deployment |\n\n\u003c/div\u003e\n\n### 🎯 Core Functionality\n\n- **🏨 Hotel Management**: Complete CRUD operations for hotels with image uploads\n- **📅 Booking System**: Real-time availability checking and reservation management  \n- **👤 User Profiles**: Registration, authentication, and profile management\n- **🔍 Smart Search**: Advanced filtering by location, dates, price range, and amenities\n- **💰 Payment Processing**: Secure Stripe integration for seamless transactions\n- **📊 Admin Dashboard**: Comprehensive hotel and booking management\n- **🔒 Security**: Rate limiting, input validation, and secure authentication\n- **📱 Responsive Design**: Mobile-first approach with Tailwind CSS\n\n---\n\n## 🛠️ Technology Stack\n\n### 🏗️ Architecture Overview\n\n```mermaid\ngraph TB\n    subgraph \"🎨 Frontend Layer\"\n        FE[React 18.3.1\u003cbr/\u003eTypeScript 5.2.2\u003cbr/\u003eVite 5.3.4\u003cbr/\u003eTailwind CSS 3.4.10]\n    end\n    \n    subgraph \"🖥️ Backend Layer\"\n        BE[Node.js 20+\u003cbr/\u003eExpress 4.19.2\u003cbr/\u003eTypeScript\u003cbr/\u003eJWT Auth]\n    end\n    \n    subgraph \"🗄️ Data Layer\"\n        DB[MongoDB 6.8.0\u003cbr/\u003eMongoose 8.5.1\u003cbr/\u003eSchema Validation]\n    end\n    \n    subgraph \"☁️ External Services\"\n        CL[Cloudinary\u003cbr/\u003eImage Storage \u0026 CDN]\n        ST[Stripe 17.1.0\u003cbr/\u003ePayment Processing]\n    end\n    \n    subgraph \"🛠️ DevOps \u0026 Tools\"\n        DO[Docker\u003cbr/\u003eGitHub Actions\u003cbr/\u003eSwagger API Docs\u003cbr/\u003eESLint \u0026 Prettier]\n    end\n    \n    FE \u003c--\u003e BE\n    BE \u003c--\u003e DB\n    BE \u003c--\u003e CL\n    FE \u003c--\u003e ST\n    DO -.-\u003e FE\n    DO -.-\u003e BE\n    DO -.-\u003e DB\n    \n    style FE fill:#61DAFB,stroke:#333,stroke-width:2px,color:#000\n    style BE fill:#339933,stroke:#333,stroke-width:2px,color:#fff\n    style DB fill:#47A248,stroke:#333,stroke-width:2px,color:#fff\n    style CL fill:#3448C5,stroke:#333,stroke-width:2px,color:#fff\n    style ST fill:#008CDD,stroke:#333,stroke-width:2px,color:#fff\n    style DO fill:#FF6B6B,stroke:#333,stroke-width:2px,color:#fff\n```\n\n\u003cdiv align=\"center\"\u003e\n\n### Frontend\n[![React](https://img.shields.io/badge/React-18.3.1-61DAFB?style=flat\u0026logo=react)](https://reactjs.org/)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.2.2-3178C6?style=flat\u0026logo=typescript)](https://www.typescriptlang.org/)\n[![Vite](https://img.shields.io/badge/Vite-5.3.4-646CFF?style=flat\u0026logo=vite)](https://vitejs.dev/)\n[![Tailwind CSS](https://img.shields.io/badge/Tailwind_CSS-3.4.10-38B2AC?style=flat\u0026logo=tailwind-css)](https://tailwindcss.com/)\n[![React Query](https://img.shields.io/badge/React_Query-3.39.3-FF4154?style=flat\u0026logo=react-query)](https://tanstack.com/query)\n\n### Backend\n[![Node.js](https://img.shields.io/badge/Node.js-20+-339933?style=flat\u0026logo=node.js)](https://nodejs.org/)\n[![Express](https://img.shields.io/badge/Express-4.19.2-000000?style=flat\u0026logo=express)](https://expressjs.com/)\n[![MongoDB](https://img.shields.io/badge/MongoDB-6.8.0-47A248?style=flat\u0026logo=mongodb)](https://www.mongodb.com/)\n[![Mongoose](https://img.shields.io/badge/Mongoose-8.5.1-880000?style=flat\u0026logo=mongoose)](https://mongoosejs.com/)\n[![Stripe](https://img.shields.io/badge/Stripe-17.1.0-008CDD?style=flat\u0026logo=stripe)](https://stripe.com/)\n\n### DevOps \u0026 Tools\n[![Docker](https://img.shields.io/badge/Docker-Ready-2496ED?style=flat\u0026logo=docker)](https://www.docker.com/)\n[![GitHub Actions](https://img.shields.io/badge/GitHub_Actions-CI/CD-2088FF?style=flat\u0026logo=github-actions)](https://github.com/features/actions)\n[![Swagger](https://img.shields.io/badge/Swagger-API_Docs-85EA2D?style=flat\u0026logo=swagger)](https://swagger.io/)\n[![ESLint](https://img.shields.io/badge/ESLint-Code_Quality-4B32C3?style=flat\u0026logo=eslint)](https://eslint.org/)\n\n\u003c/div\u003e\n\n---\n\n## 🚀 Quick Start (30 seconds)\n\n\u003e 💡 **Prerequisites**: Docker and Docker Compose installed on your system\n\n### 🐳 One-Command Deployment\n\n```bash\n# Clone the repository\ngit clone https://github.com/himuexe/Hotel-Booking-Website.git\ncd Hotel-Booking-Website\n\n# Create environment file\ntouch .env\n# Edit .env with your configuration (see Environment Setup below)\n\n# 🚀 Deploy with Docker (Production Ready)\ndocker compose -f docker-compose.prod.yml up -d --build\n\n# ✅ Access your application\n# Frontend: http://localhost\n# Backend API: http://localhost:7000\n# API Documentation: http://localhost:7000/api-docs\n```\n\n### 🛠️ Development Mode (with hot reloading)\n\n```bash\n# Install dependencies\ncd frontend \u0026\u0026 npm install\ncd ../backend \u0026\u0026 npm install\n\n# Start development servers\ncd backend \u0026\u0026 npm run dev    # Terminal 1\ncd frontend \u0026\u0026 npm run dev   # Terminal 2\n\n# Access at http://localhost:5173\n```\n\n---\n\n## 🔧 Environment Setup\n\nCreate a `.env` file in the project root:\n\n```env\n# Database Configuration\nMONGODB_CONNECTION_STRING=mongodb://admin:password123@mongodb:27017/vacays?authSource=admin\nMONGO_INITDB_ROOT_USERNAME=admin\nMONGO_INITDB_ROOT_PASSWORD=password123\n\n# Authentication\nJWT_SECRET_KEY=your-super-secret-jwt-key-at-least-32-characters-long\n\n# Application URLs\nFRONTEND_URL=http://localhost:5173\n\n# Cloudinary (Backend Image Storage)\nCLOUDINARY_CLOUD_NAME=your-cloudinary-cloud-name\nCLOUDINARY_API_KEY=your-cloudinary-api-key\nCLOUDINARY_API_SECRET=your-cloudinary-api-secret\n\n# Stripe (Backend Payment Processing)\nSTRIPE_API_KEY=sk_test_your-stripe-secret-key\n```\n\nCreate `frontend/.env` file:\n\n```env\n# Frontend API Configuration\nVITE_API_BASE_URL=http://localhost:7000\nVITE_STRIPE_PUB_KEY=pk_test_your-stripe-publishable-key\n```\n\n\u003e 🔐 **Security Note**: Never commit your `.env` file to version control\n\n---\n\n## 🐳 Docker Deployment\n\n### 🚀 Production Deployment\n\n```bash\n# Build and start all services\ndocker compose -f docker-compose.prod.yml up -d --build\n\n# View logs\ndocker compose -f docker-compose.prod.yml logs -f\n\n# Scale services (if needed)\ndocker compose -f docker-compose.prod.yml up -d --scale backend=3\n\n# Stop services\ndocker compose -f docker-compose.prod.yml down\n```\n\n### 🛠️ Using Deployment Script\n\n```bash\n# Make script executable\nchmod +x scripts/deploy.sh\n\n# Deploy with Docker Compose\n./scripts/deploy.sh --type docker-compose --env production\n\n# View deployment status\ndocker compose -f docker-compose.prod.yml ps\n```\n\n### 🔍 Health Checks\n\n```bash\n# Check backend health\ncurl http://localhost:7000/health\n\n# Check frontend\ncurl http://localhost\n\n# View container status\ndocker compose -f docker-compose.prod.yml ps\n```\n\n---\n\n## 📖 Documentation\n\n\u003cdiv align=\"center\"\u003e\n\n| 📋 **Development** | 🏗️ **Architecture** | 🐳 **Deployment** | 🧪 **Testing** |\n|:---:|:---:|:---:|:---:|\n| [Development Setup](docs/setup-guides.md) | [Architecture Overview](docs/architecture.md) | [Docker Deployment](docs/docker-deployment.md) | [Testing Guide](docs/testing.md) |\n| Local development environment | System design and components | Complete containerized deployment | Comprehensive testing strategy |\n\n\u003c/div\u003e\n\n### 📚 Documentation Hub\n\n**[📖 Documentation Hub](docs/README.md)** - Centralized access to all project documentation with role-based guides\n\n### 🔧 Additional Resources\n\n- **[🚀 CI/CD Setup](docs/ci-cd-setup.md)** - Automated deployment pipelines\n- **[📊 API Documentation](http://localhost:7000/api-docs)** - Interactive Swagger API docs\n- **[📄 License](LICENSE)** - MIT License details\n\n---\n\n## 🧪 Testing\n\n### Run All Tests\n\n```bash\n# Backend tests\ncd backend \u0026\u0026 npm test\n\n# Frontend tests  \ncd frontend \u0026\u0026 npm test\n\n# E2E tests\ncd e2e-tests \u0026\u0026 npm test\n\n# Docker test script\n./docker-test.sh\n```\n\n### Test Coverage\n\n- **Unit Tests**: Component and function testing\n- **Integration Tests**: API endpoint testing\n- **E2E Tests**: Full user journey testing with Playwright\n- **Performance Tests**: Load testing and optimization\n- **Accessibility Tests**: WCAG compliance testing\n\n---\n\n## 💰 Free Production Deployment\n\nDeploy Vacays to production using **Docker-compatible free services**:\n\n\u003cdiv align=\"center\"\u003e\n\n| Service | Cost | Docker Support | Database | Best For |\n|---------|------|----------------|----------|----------|\n| **Railway** | $5 credit/month | ✅ Full Docker | MongoDB Atlas Free | **Recommended** |\n| **Render** | Free tier | ✅ Dockerfile | MongoDB Atlas Free | Simplicity |\n| **DigitalOcean** | $4/month | ✅ Full Docker | Self-hosted MongoDB | Full Control |\n\n\u003c/div\u003e\n\n### 🚀 Quick Deploy to Railway\n\n```bash\n# 1. Push your code to GitHub\ngit add . \u0026\u0026 git commit -m \"Deploy to Railway\"\ngit push origin main\n\n# 2. Connect to Railway\n# - Visit railway.app\n# - Connect GitHub repo\n# - Deploy with Docker\n\n# 3. Set environment variables in Railway dashboard\n# 4. Your app is live! 🎉\n```\n\n\u003e 🐳 **Docker Advantage**: Your app runs the same everywhere - local, staging, production!\n\n---\n\n## 🤝 Contributing\n\nWe welcome contributions! Here's how to get started:\n\n### 🐛 Found a Bug?\n\n1. Check [existing issues](https://github.com/himuexe/Hotel-Booking-Website/issues)\n2. Create a [new issue](https://github.com/himuexe/Hotel-Booking-Website/issues/new) with details\n3. Include steps to reproduce and expected behavior\n\n### 💡 Want to Contribute?\n\n1. **Fork** the repository\n2. **Create** a feature branch (`git checkout -b feature/amazing-feature`)\n3. **Commit** your changes (`git commit -m 'Add amazing feature'`)\n4. **Push** to the branch (`git push origin feature/amazing-feature`)\n5. **Open** a Pull Request\n\n### 📋 Development Guidelines\n\n- Follow the existing code style\n- Write tests for new features\n- Update documentation as needed\n- Ensure all tests pass before submitting\n- Test with Docker before submitting\n\n---\n\n## 📊 Project Stats\n\n\u003cdiv align=\"center\"\u003e\n\n![GitHub stars](https://img.shields.io/github/stars/himuexe/Hotel-Booking-Website?style=social)\n![GitHub forks](https://img.shields.io/github/forks/himuexe/Hotel-Booking-Website?style=social)\n![GitHub issues](https://img.shields.io/github/issues/himuexe/Hotel-Booking-Website)\n![GitHub pull requests](https://img.shields.io/github/issues-pr/himuexe/Hotel-Booking-Website)\n\n\u003c/div\u003e\n\n---\n\n## 📄 License\n\nThis project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details.\n\n---\n\n## 🙏 Acknowledgments\n\n- **[React](https://reactjs.org/)** - Frontend framework\n- **[Express](https://expressjs.com/)** - Backend framework  \n- **[MongoDB](https://www.mongodb.com/)** - Database\n- **[Stripe](https://stripe.com/)** - Payment processing\n- **[Cloudinary](https://cloudinary.com/)** - Image management\n- **[Docker](https://www.docker.com/)** - Containerization\n- **[Tailwind CSS](https://tailwindcss.com/)** - Styling framework\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**⭐ If you found this project helpful, please give it a star!**\n\n[🔝 Back to Top](#-vacays---hotel-booking-platform)\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhimuexe%2Fhotel-booking-website","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhimuexe%2Fhotel-booking-website","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhimuexe%2Fhotel-booking-website/lists"}