{"id":29544581,"url":"https://github.com/chandrashekher1/triptix","last_synced_at":"2026-04-07T21:31:14.113Z","repository":{"id":303096635,"uuid":"1013199433","full_name":"Chandrashekher1/TripTix","owner":"Chandrashekher1","description":"TripTix is a real-time bus ticket booking web app. It allows users to search buses, select seats, fill passenger details, and make payments using Razorpay. Seat locking and unlocking are handled live to prevent overbooking.","archived":false,"fork":false,"pushed_at":"2025-07-17T04:32:32.000Z","size":179,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-17T06:59:20.118Z","etag":null,"topics":["expressjs","gemini-api","jwt-authentication","mongodb","nodejs","reactjs","socket-io","tailwindcss","usecontext-hook"],"latest_commit_sha":null,"homepage":"https://trip-tix-zeta.vercel.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/Chandrashekher1.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-07-03T14:06:03.000Z","updated_at":"2025-07-17T04:32:35.000Z","dependencies_parsed_at":"2025-07-05T18:08:33.069Z","dependency_job_id":null,"html_url":"https://github.com/Chandrashekher1/TripTix","commit_stats":null,"previous_names":["chandrashekher1/triptix"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Chandrashekher1/TripTix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chandrashekher1%2FTripTix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chandrashekher1%2FTripTix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chandrashekher1%2FTripTix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chandrashekher1%2FTripTix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Chandrashekher1","download_url":"https://codeload.github.com/Chandrashekher1/TripTix/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chandrashekher1%2FTripTix/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265619535,"owners_count":23799447,"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":["expressjs","gemini-api","jwt-authentication","mongodb","nodejs","reactjs","socket-io","tailwindcss","usecontext-hook"],"created_at":"2025-07-17T15:02:35.929Z","updated_at":"2026-04-07T21:31:14.104Z","avatar_url":"https://github.com/Chandrashekher1.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚌 TripTix - Real-Time Bus Ticket Booking App\n\nTripTix is a full-stack real-time web application that allows users to search for buses, select seats, enter passenger details, and complete bookings with secure Razorpay payment integration. Built using the MERN stack with Socket.io, it supports **real-time seat locking**, preventing overbooking and ensuring a seamless experience.\n\n---\n\n##  Features\n\n-  **Browse Available Buses**  \n  Search and view available bus listings with operator, AC/sleeper info, and pricing.\n\n-  **Real-Time Seat Selection**  \n  Interactive seat layout with **real-time seat locking/unlocking** using Socket.io.\n\n-  **Passenger Details Form**  \n  Dynamically generated form for each selected seat to collect traveler information.\n\n-  **Razorpay Payment Integration**  \n  Secure and smooth payment gateway integration.\n\n-  **Live Socket Communication**  \n  Prevents double-booking by locking selected seats until the transaction is complete or cancelled.\n\n-  **Booking Summary \u0026 Confirmation**  \n  View trip, seat, fare, and duration summary before final confirmation.\n\n---\n\n##  Tech Stack\n\n- Frontend: React.js, Tailwind CSS\n- Backend: Node.js, Express.js\n- Databse: MongoDB, Mongoose\n- Real-Time: Socket.io\n- Payment: Razorpay API\n- Icons/UI: React-Icons, Responsive UI\n\n\n---\n\n## Folder Structure\n\n```\n/tripTix\n/components\n- BusCard.jsx\n- ChatBot.jsx\n- Footer.jsx\n- Header.jsx\n- Login.jsx\n- Navbar.jsx\n- OfferCard.jsx\n- Payment.jsx\n- SearchBar.jsx\n- SeatSelection.jsx\n/context\n- BusContext.js\n- BusProvider.jsx\n/hook\n- useBus.js\n/pages\n- Home.jsx\n- AvailableBus.jsx\n- PassengerDetails.jsx\n- Profile.jsx\n/utils\n- constants.js\nApp.js\n\n\n```\n\n---\n\n##  How It Works\n\n1. **User logs in** and searches for buses.\n2. **User selects a bus** and views available seats.\n3. Selected seats are **locked in real-time** using `Socket.io`.\n4. On the next page, user fills **passenger details**.\n5. Proceeds to **Razorpay payment**.\n6. If successful, **booking is saved**, else **seats are unlocked**.\n\n---\n\n##  Setup Instructions\n\n###  Prerequisites\n- Node.js\n- MongoDB\n- Razorpay Account (API Keys)\n- Google Gemini API Key (Optional for ChatBot)\n\n###  Installation\n\n```bash\n# Clone the project\ngit clone https://github.com/Chandrashekher1/TripTix.git\ncd tripTix\n\n# Install Frontend dependencies\nnpm install\n\n# Run Frontend\nnpm run dev\n\n```\n## Real-Time ChatBot\n- Uses Google Gemini API to answer user FAQs related to bookings.\n- Uses Google Gemini API to answer user FAQs related to bookings.\n\n## Screenshots\n\u003cimg width=\"1899\" height=\"885\" alt=\"image\" src=\"https://github.com/user-attachments/assets/72ae3ca9-4fc4-4353-9fdc-7325fdc37904\" /\u003e\n\n\u003cimg width=\"1890\" height=\"878\" alt=\"image\" src=\"https://github.com/user-attachments/assets/0986066c-6360-45ff-97d8-18b2d565447c\" /\u003e\n\n\u003cimg width=\"1902\" height=\"887\" alt=\"image\" src=\"https://github.com/user-attachments/assets/559ddf05-e652-429f-af5e-38dc63b9c68f\" /\u003e\n\n\u003cimg width=\"1881\" height=\"864\" alt=\"image\" src=\"https://github.com/user-attachments/assets/63217dcc-cbe3-4730-b8a2-adc4dcf9e879\" /\u003e\n\n\u003cimg width=\"1844\" height=\"883\" alt=\"image\" src=\"https://github.com/user-attachments/assets/424ba03d-37ed-48f6-9767-d4597c8587ff\" /\u003e\n\n\n\n\n## Author\nChandrashekher Prasad\n\n## License\nMIT License - feel free to use, fork, and build upon it!\n\n\n\n\n# React + Vite\n\nThis template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.\n\nCurrently, two official plugins are available:\n\n- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) for Fast Refresh\n- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh\n\n## Expanding the ESLint configuration\n\nIf you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) for information on how to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchandrashekher1%2Ftriptix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchandrashekher1%2Ftriptix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchandrashekher1%2Ftriptix/lists"}