{"id":29479221,"url":"https://github.com/nitindevspace/entrify","last_synced_at":"2026-04-06T02:33:56.607Z","repository":{"id":303373391,"uuid":"1014900910","full_name":"NitinDevSpace/entrify","owner":"NitinDevSpace","description":"🎟️ Full-stack ticket booking platform for movies, events, and shows. Built with React, Node.js, Express, MongoDB, and Stripe payments.","archived":false,"fork":false,"pushed_at":"2025-07-14T14:39:12.000Z","size":7819,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-14T18:36:17.238Z","etag":null,"topics":["antd","express","fullstack","jwt-authentication","mern","mongodb","nodejs","react","react-router","stripe-payments","tailwindcss","ticket-booking"],"latest_commit_sha":null,"homepage":"https://entrify.onrender.com/","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/NitinDevSpace.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-06T16:18:05.000Z","updated_at":"2025-07-14T14:39:16.000Z","dependencies_parsed_at":"2025-07-07T09:40:55.222Z","dependency_job_id":"46fd7640-7a11-4615-b723-06c372b014c0","html_url":"https://github.com/NitinDevSpace/entrify","commit_stats":null,"previous_names":["nitindevspace/entrify"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/NitinDevSpace/entrify","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NitinDevSpace%2Fentrify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NitinDevSpace%2Fentrify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NitinDevSpace%2Fentrify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NitinDevSpace%2Fentrify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NitinDevSpace","download_url":"https://codeload.github.com/NitinDevSpace/entrify/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NitinDevSpace%2Fentrify/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265344225,"owners_count":23750553,"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":["antd","express","fullstack","jwt-authentication","mern","mongodb","nodejs","react","react-router","stripe-payments","tailwindcss","ticket-booking"],"created_at":"2025-07-14T20:12:44.108Z","updated_at":"2025-12-30T20:06:38.406Z","avatar_url":"https://github.com/NitinDevSpace.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Entrify\n\nEntrify is a full-stack event and movie booking platform inspired by BookMyShow, but extended to support SaaS features for venue partners. This project demonstrates secure authentication, payment processing, seat selection, and role-based access control.\n\n## 🏗️ Project Structure\n\n```\nentrify/\n├── client/            # Frontend (React + Vite)\n│   ├── src/\n│   │   ├── components/\n│   │   ├── pages/\n│   │   ├── services/   # Axios API calls\n│   │   ├── App.jsx\n│   │   └── main.jsx\n│   ├── index.html\n│   └── tailwind.config.js\n├── server/            # Backend (Node.js + Express + Mongoose)\n│   ├── controllers/\n│   ├── models/\n│   ├── routes/\n│   ├── stripeWebhook.js\n│   ├── server.js\n│   └── .env\n└── README.md\n```\n\n## 🚀 Features\n\n✅ User Registration \u0026 Login  \n✅ JWT Authentication (stored in cookies)  \n✅ Role-based authorization (Admin/User)  \n✅ Movies, Theatres, Shows CRUD (Admin only)  \n✅ Seat selection with dynamic booking  \n✅ Stripe Checkout Integration  \n✅ Webhook to finalize bookings after payment success  \n✅ Email notifications with nodemailer  \n✅ Rate limiting to prevent abuse  \n\n## 🛡️ Security Measures\n\n- Passwords hashed with bcrypt\n- JWT tokens stored securely in cookies\n- `express-rate-limit` to prevent abuse\n- `helmet` for HTTP header protection\n- Input validation on backend\n- Mongoose schema validation\n\n## 🧾 How to Run Locally\n\n1️⃣ **Clone the repository**\n\n```bash\ngit clone https://github.com/YOUR_USERNAME/entrify.git\ncd entrify\n```\n\n2️⃣ **Install backend dependencies**\n\n```bash\ncd server\nnpm install\n```\n\n3️⃣ **Install frontend dependencies**\n\n```bash\ncd ../client\nnpm install\n```\n\n4️⃣ **Configure environment variables**\n\nCreate a `.env` file in the `server/` directory:\n\n```\nPORT=8080\nMONGO_URL=mongodb+srv://...\nJWT_SECRET=your_jwt_secret\nSTRIPE_SECRET_KEY=sk_test_...\nSTRIPE_WEBHOOK_SECRET=whsec_...\n```\n\n5️⃣ **Run backend**\n\n```bash\ncd server\nnpm run dev\n```\n\n6️⃣ **Run frontend**\n\n```bash\ncd ../client\nnpm run dev\n```\n\nThe frontend will be served on `http://localhost:5173` and the backend on `http://localhost:8080`.\n\n## 💳 Stripe Integration\n\n- On payment, Stripe Checkout session is created.\n- Webhook endpoint listens for `checkout.session.completed` events.\n- Booking is saved only after payment succeeds.\n- Email confirmation is sent to the user.\n\n## ✉️ Email Sending\n\n- Nodemailer configured with Gmail or any SMTP service.\n- Used to send OTPs and booking confirmations.\n\n## 🎯 Rate Limiting\n\n- Limits requests to 40 per 5 minutes per IP.\n- Returns a dynamic message showing minutes remaining.\n\n## 🧩 Technologies Used\n\n- **Frontend:** React, TailwindCSS, Ant Design, Axios, React Router\n- **Backend:** Node.js, Express, Mongoose\n- **Database:** MongoDB Atlas\n- **Payments:** Stripe\n- **Email:** Nodemailer\n\n## 🌟 Why Entrify?\n\nThis project showcases a full production-like workflow:\n- Authentication \u0026 authorization\n- Payment processing with Stripe webhooks\n- Role-based dashboards\n- Real-world security practices\n- Clean UI built with Tailwind and Ant Design\n\nIt demonstrates an end-to-end application suitable for production, but built as a learning project.\n\n---\n\nFeel free to explore the code, run it locally, and try the features!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnitindevspace%2Fentrify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnitindevspace%2Fentrify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnitindevspace%2Fentrify/lists"}