{"id":29013305,"url":"https://github.com/arjsabbir88/tourtide","last_synced_at":"2026-04-08T23:33:01.516Z","repository":{"id":301059693,"uuid":"1008040608","full_name":"arjsabbir88/tourTide","owner":"arjsabbir88","description":"\"TourTide\" is a full-stack MERN web application that allows users to explore, book, and manage tour packages. This booking management system includes user authentication, real-time tour data handling, booking history, and user-specific tour management functionality.","archived":false,"fork":false,"pushed_at":"2025-08-10T13:44:26.000Z","size":242,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-13T16:09:31.443Z","etag":null,"topics":["axios","cors","daisyui","dotenv","express","firebase-auth","framer-motion","jwt-authentication","mongodb","nodejs","react","react-awesome-reveal","react-toastify","reacthookform","reactrouter","sweetalert2","tailwindcss"],"latest_commit_sha":null,"homepage":"https://tourtide-app.web.app/","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/arjsabbir88.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-06-24T23:56:09.000Z","updated_at":"2025-08-10T13:44:29.000Z","dependencies_parsed_at":"2025-07-10T16:37:14.304Z","dependency_job_id":"0da26531-0856-4537-b31b-136fc3a176fa","html_url":"https://github.com/arjsabbir88/tourTide","commit_stats":null,"previous_names":["arjsabbir88/tourtide"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/arjsabbir88/tourTide","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arjsabbir88%2FtourTide","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arjsabbir88%2FtourTide/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arjsabbir88%2FtourTide/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arjsabbir88%2FtourTide/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arjsabbir88","download_url":"https://codeload.github.com/arjsabbir88/tourTide/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arjsabbir88%2FtourTide/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001982,"owners_count":26083259,"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","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["axios","cors","daisyui","dotenv","express","firebase-auth","framer-motion","jwt-authentication","mongodb","nodejs","react","react-awesome-reveal","react-toastify","reacthookform","reactrouter","sweetalert2","tailwindcss"],"created_at":"2025-06-25T19:10:44.219Z","updated_at":"2025-10-09T20:40:19.130Z","avatar_url":"https://github.com/arjsabbir88.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🌍 TourTide - Tour Package Booking Platform\n\nLive Site 👉 [https://tour-tide-server.vercel.app](https://tour-tide-server.vercel.app)\n\n## 📌 Project Overview\n\n**TourTide** is a full-stack MERN web application that allows users to explore, book, and manage tour packages. This booking management system includes user authentication, real-time tour data handling, booking history, and user-specific tour management functionality.\n\nThe project focuses on usability, responsiveness, and secure implementation of Firebase Auth \u0026 JWT to provide a seamless booking experience.\n\n---\n\n## 🚀 Features\n\n### 🔓 Public Access\n\n- Home Page with Hero Banner \u0026 Featured Packages\n- All Packages listing\n- Package Details (requires login)\n- About Us Page\n\n### 🔐 Authentication\n\n- Login with Email/Password\n- Login with Google\n- Registration with validation (Name, Email, Password, Photo URL)\n- JWT token issued after login \u0026 used for protected API routes\n- Secure routes for booking \u0026 package management\n\n### 🧑‍💻 Logged-in User Features\n\n- Add New Tour Package\n- Manage My Packages (Update/Delete)\n- Book any Package\n- View My Bookings \u0026 confirm status\n- View guide info on packages\n\n### 💼 Admin/Guide Features\n\n- View only own-added packages\n- Update / Delete packages with confirmation\n- Booking count updates automatically using `$inc`\n\n---\n\n## 🧭 Routes \u0026 Pages\n\n- `/` → Home (Banner + Featured + Extras)\n- `/all-packages` → All Packages with search\n- `/add-package` → Private Route (Add Tour)\n- `/manage-packages` → Private Route (Edit/Delete)\n- `/my-bookings` → Private Route (See own bookings)\n- `/package/:id` → Private Route (Package details + Booking)\n- `/about` → About Us\n- `/login` → Login\n- `/register` → Register\n- `*` → 404 Page with animation\n\n---\n\n## 🔐 Authentication \u0026 Authorization\n\n- Firebase Authentication\n- Google Sign-In\n- JWT token stored in `localStorage` for session\n- Backend protected routes using custom JWT middleware\n- Firebase domain whitelisted for deployment\n\n---\n\n## 🛠️ Tech Stack\n\n### Frontend:\n\n- React\n- React Router DOM\n- Tailwind CSS\n- DaisyUI\n- Axios\n- React Hook Form\n- Framer Motion (optional)\n- Firebase Auth\n\n### Backend:\n\n- Express.js\n- Node.js\n- MongoDB (with Mongoose)\n- JWT for secure API calls\n- CORS configured\n- dotenv for secure environment variables\n\n---\n\n## 📂 Database Collections\n\n### `tourPackages`\n\n```json\n{\n  \"tour_name\": \"Dhaka to Cox’s Bazar Tour\",\n  \"image\": \"url\",\n  \"duration\": \"3 Days 2 Nights\",\n  \"departure_location\": \"Dhaka\",\n  \"destination\": \"Cox's Bazar\",\n  \"price\": 12000,\n  \"departure_date\": \"2025-07-15\",\n  \"package_details\": \"Includes transport, hotel and guide\",\n  \"guide_name\": \"John Doe\",\n  \"guide_email\": \"john@example.com\",\n  \"guide_photo\": \"url\",\n  \"guide_contact_no\": \"017xxxxxx\",\n  \"bookingCount\": 3,\n  \"created_at\": \"2025-06-24T12:00:00Z\"\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farjsabbir88%2Ftourtide","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farjsabbir88%2Ftourtide","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farjsabbir88%2Ftourtide/lists"}