{"id":28717971,"url":"https://github.com/CodeLander07/Holiday-Homes","last_synced_at":"2025-12-30T22:33:16.701Z","repository":{"id":288131930,"uuid":"966906252","full_name":"CodeLander07/Hotel-Booking-Website","owner":"CodeLander07","description":"A full-stack hotel booking website where users can browse listings, view details, and manage bookings.","archived":false,"fork":false,"pushed_at":"2025-06-08T07:41:53.000Z","size":116,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-08T12:19:50.499Z","etag":null,"topics":["bootstrap5","ejs","full-stack-web-development","javascript","mern-stack","nodejs","npm-package"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CodeLander07.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2025-04-15T16:21:02.000Z","updated_at":"2025-06-08T07:41:57.000Z","dependencies_parsed_at":"2025-06-08T12:29:56.404Z","dependency_job_id":null,"html_url":"https://github.com/CodeLander07/Hotel-Booking-Website","commit_stats":null,"previous_names":["unstopablesid/hotel-booking-website","codelander07/hotel-booking-website"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/CodeLander07/Hotel-Booking-Website","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeLander07%2FHotel-Booking-Website","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeLander07%2FHotel-Booking-Website/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeLander07%2FHotel-Booking-Website/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeLander07%2FHotel-Booking-Website/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CodeLander07","download_url":"https://codeload.github.com/CodeLander07/Hotel-Booking-Website/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeLander07%2FHotel-Booking-Website/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259919459,"owners_count":22932073,"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":["bootstrap5","ejs","full-stack-web-development","javascript","mern-stack","nodejs","npm-package"],"created_at":"2025-06-15T04:08:49.125Z","updated_at":"2025-12-30T22:33:16.692Z","avatar_url":"https://github.com/CodeLander07.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TripEasy - Hotel Management App\n\nTripEasy is a full-stack web application designed to facilitate hotel management and booking. It allows users to list properties, view details, leave reviews, and manage their bookings. The application is built using the MEN stack (MongoDB, Express.js, Node.js) and follows the MVC (Model-View-Controller) architecture.\n\n## 🚀 Features\n\n- **User Authentication \u0026 Authorization:**\n  - Secure Sign Up and Login functionality using Passport.js.\n  - Authorization checks to ensure only owners can edit/delete their listings.\n- **CRUD Operations for Listings:**\n  - Users can Create, Read, Update, and Delete hotel listings.\n  - Upload images for listings (stored via Cloudinary).\n- **Review System:**\n  - Users can leave ratings and comments on listings.\n  - Reviews can be deleted by their authors.\n- **Responsive Design:**\n  - Built with Bootstrap for a mobile-friendly user interface.\n- **Data Validation:**\n  - Server-side validation using Joi to ensure data integrity.\n- **Session Management:**\n  - Persistent sessions using MongoDB (connect-mongo).\n- **Flash Messages:**\n  - Interactive feedback messages (success/error) for user actions.\n\n## 🛠️ Tech Stack \u0026 Dependencies\n\nThe project utilizes the following technologies and libraries:\n\n### Backend\n- **Node.js:** JavaScript runtime environment.\n- **Express.js:** Web framework for Node.js.\n- **Mongoose:** ODM for MongoDB.\n- **Passport.js:** Authentication middleware for Node.js.\n- **Joi:** Data validation library.\n\n### Frontend\n- **EJS (Embedded JavaScript):** Templating engine.\n- **EJS-Mate:** Layout support for EJS.\n- **Bootstrap:** CSS framework for styling.\n\n### Utilities \u0026 Middleware\n- **Cloudinary \u0026 Multer:** For handling image uploads and storage.\n- **Connect-Flash:** For displaying flash messages.\n- **Express-Session:** For managing user sessions.\n- **Method-Override:** To support PUT and DELETE requests in HTML forms.\n- **Dotenv:** For environment variable management.\n\n## 📂 Folder Structure\n\n```\nTripEasy/\n├── controllers/        # Logic for handling requests (MVC Controller)\n├── init/               # Database initialization scripts\n├── models/             # Mongoose schemas and models (MVC Model)\n├── public/             # Static files (CSS, JS, Images)\n├── Routes/             # Express routes definitions\n├── utils/              # Utility functions (Error handling, wrappers)\n├── views/              # EJS templates (MVC View)\n├── app.js              # Main application entry point\n├── cloudConfig.js      # Cloudinary configuration\n├── middleware.js       # Custom middleware (Auth, Validation)\n├── schema.js           # Joi validation schemas\n├── .env                # Environment variables (not committed)\n└── package.json        # Project dependencies and scripts\n```\n\n## ⚙️ Installation \u0026 Setup\n\n1.  **Clone the repository:**\n    ```bash\n    git clone https://github.com/CodeLander07/Holiday-Homes.git\n    cd Holiday-Homes\n    ```\n\n2.  **Install dependencies:**\n    ```bash\n    npm install\n    ```\n\n3.  **Set up Environment Variables:**\n    Create a `.env` file in the root directory and add the following credentials:\n    ```env\n    CLOUD_NAME=your_cloudinary_cloud_name\n    CLOUD_API_KEY=your_cloudinary_api_key\n    CLOUD_API_SECRET=your_cloudinary_api_secret\n    MONGOURL=your_mongodb_connection_string\n    SESSION_SECRET=your_session_secret\n    ```\n\n4.  **Initialize the Database (Optional):**\n    If you want to seed the database with initial data:\n    ```bash\n    node init/index.js\n    ```\n\n5.  **Run the Application:**\n    ```bash\n    node app.js\n    # OR for development with nodemon\n    npm run dev\n    ```\n\n6.  **Access the App:**\n    Open your browser and go to `http://localhost:3000`.\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## 📄 License\n\nThis project is licensed under the ISC License.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCodeLander07%2FHoliday-Homes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FCodeLander07%2FHoliday-Homes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCodeLander07%2FHoliday-Homes/lists"}