{"id":28372390,"url":"https://github.com/mohamedamin12/hotels-management-system","last_synced_at":"2026-04-17T01:32:15.124Z","repository":{"id":285787808,"uuid":"958877429","full_name":"mohamedamin12/hotels-management-system","owner":"mohamedamin12","description":"This is a Hotel Management System developed using Node.js, TypeScript, and PostgreSQL. The system includes functionalities like booking management, payment processing, hotel management, and more","archived":false,"fork":false,"pushed_at":"2025-05-21T09:54:26.000Z","size":1785,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-29T15:19:06.736Z","etag":null,"topics":["bcryptjs","multer","nestjs","nodejs","nodemailer","passportjs","postgresql","stripe","typeorm","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/mohamedamin12.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-01T23:01:58.000Z","updated_at":"2025-05-21T09:54:29.000Z","dependencies_parsed_at":"2025-04-02T17:39:19.752Z","dependency_job_id":"4d6f741c-02b7-4f1b-a05d-2169387540e5","html_url":"https://github.com/mohamedamin12/hotels-management-system","commit_stats":null,"previous_names":["mohamedamin12/hotel-management-system","mohamedamin12/hotels-management-system"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mohamedamin12/hotels-management-system","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohamedamin12%2Fhotels-management-system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohamedamin12%2Fhotels-management-system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohamedamin12%2Fhotels-management-system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohamedamin12%2Fhotels-management-system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mohamedamin12","download_url":"https://codeload.github.com/mohamedamin12/hotels-management-system/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohamedamin12%2Fhotels-management-system/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31911478,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"ssl_error","status_checked_at":"2026-04-16T18:21:47.142Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["bcryptjs","multer","nestjs","nodejs","nodemailer","passportjs","postgresql","stripe","typeorm","typescript"],"created_at":"2025-05-29T15:07:40.740Z","updated_at":"2026-04-17T01:32:15.108Z","avatar_url":"https://github.com/mohamedamin12.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hotel Management System\n\nA comprehensive hotel management system built with Node.js, TypeScript, PostgreSQL, and various third-party integrations like Stripe for payments, Multer for file uploads, and Nodemailer for email handling. The system allows hotel admins to manage hotels, rooms, bookings, payments, and reviews. Users can create bookings, make payments, and leave reviews.\n\n## Features\n\n- **User Management**: Register, login, and password management with Google authentication and forgot password functionality.\n- **Hotel Management**: Admin can create, update, and delete hotels.\n- **Room Management**: Admin can create, update, and delete rooms; Users can view room details.\n- **Booking Management**: Users can create, update, delete, and view bookings. Admins can manage all bookings.\n- **Payment Management**: Cash and Stripe payment options. Admin can update payment status from pending to completed.\n- **Review Management**: Users can create, update, and delete their own reviews. Admin can manage all reviews.\n- **Internationalization (i18n)**: Multi-language support using i18n.\n- **Email Handling**: Nodemailer for sending emails with custom templates using EJS.\n- **File Uploads**: Multer for file uploads (e.g., for hotel and room images).\n- **Security**: Helmet, CORS, and Rate Limiting for enhanced security.\n\n## Technologies Used\n\n- **Backend**: Node.js, Express.js , Nestjs\n- **Database**: PostgreSQL\n- **Authentication**: JWT, Google OAuth\n- **Payment Gateway**: Stripe, Cash payments\n- **File Upload**: Multer\n- **Internationalization**: i18n\n- **Email**: Nodemailer, EJS\n- **Testing**: Swagger, Postman\n- **Security**: Helmet, CORS, Rate Limiting\n\n## Installation\n\n### Prerequisites\n\n- Node.js\n- PostgreSQL\n- Stripe API keys (for Stripe payment functionality)\n\n### Steps to Run Locally\n\n1. Clone the repository:\n    ```bash\n    git clone https://github.com/yourusername/hotel-management-system.git\n    ```\n\n2. Navigate to the project folder:\n    ```bash\n    cd hotel-management-system\n    ```\n\n3. Install dependencies:\n    ```bash\n    npm install\n    ```\n\n4. Create a `.env` file in the root directory and add your environment variables (see `.env.example`).\n\n5. Run the application:\n    ```bash\n    npm start\n    ```\n\n6. Access the app at `http://localhost:5000`.\n\n## API Documentation\n\nThis project includes a RESTful API for interacting with the hotel management system.\n\n### Available Endpoints\n\n- **Authentication**: `/api/v1/users/auth/login`, `/api/v1/users/auth/register`, `/auth/google/sign`, `/api/v1/users/forgot-password`\n- **Hotels**: `/api/v1/hotels`, `/api/v1/hotels/:id`\n- **Rooms**: `/api/v1/rooms`, `/api/v1/rooms/:id`\n- **Bookings**: `/api/v1/bookings`, `/api/v1/bookings/:id`\n- **Payments**: `/api/v1/payment/stripe`, `/api/v1/payment/cash`\n- **Reviews**: `/api/v1/reviews`, `/api/v1/reviews/:id`\n\nYou can view the full API documentation using **Swagger** [here](http://localhost:5000/swagger).\nYou can view the full API documentation using **Postman** [here](https://documenter.getpostman.com/view/34351164/2sB2cYbKwM).\n\n## How to Contribute\n\n1. Fork the repository.\n2. Create a new branch (`git checkout -b feature-name`).\n3. Commit your changes (`git commit -m 'Add new feature'`).\n4. Push to the branch (`git push origin feature-name`).\n5. Open a Pull Request.\n\n## ENV File\n```\n# 🛢️ Database\nDB_DATABASE=your_database_name\nDB_USERNAME=your_db_username\nDB_PASSWORD=your_db_password\nDB_PORT=5432\n\nNODE_ENV=development\nPORT=5000\n\n# 🔐 JWT Authentication\nJWT_SECRET=your_jwt_secret_key\nJWT_EXPIRES_IN=1d\n\n# 📬 SMTP (Email Service)\nSMTP_HOST=smtp.gmail.com\nSMTP_PORT=587\nSMTP_USERNAME=your_email@gmail.com\nSMTP_PASSWORD=your_email_app_password\n\n# 🌍 Domains\nDOMAIN=http://localhost:5000\nCLIENT_DOMAIN=http://localhost:3000\n\n# 🔐 Google OAuth\nGOOGLE_CLIENT_ID=your_google_client_id\nGOOGLE_CLIENT_SECRET=your_google_client_secret\nGOOGLE_CALLBACK_URL=http://localhost:5000/auth/google/callback\n\n# 💳 Stripe Payment\nSTRIPE_SECRET_KEY=your_stripe_secret_key\n\n```      \n\n## License\n\nMIT License. See LICENSE file for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohamedamin12%2Fhotels-management-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmohamedamin12%2Fhotels-management-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohamedamin12%2Fhotels-management-system/lists"}