Skip to content

Next.js Event management with multiple roles (organizer, guest) . Event playing a big role in this application were used to create booking and manage booking with added wallet to multiple entities.

License

Notifications You must be signed in to change notification settings

syam-ts/Nextevent_Next.JS

Repository files navigation

📄 NextEvent

NextEvent is a modern event management platform where organizers can create and manage events, and guests can browse, book, and cancel events. The app supports both free and paid events (via Stripe), filtered event browsing, and revenue sharing between guest and admin on cancellations.


🔧 Tech Stack

  • ⚛️ Next.js (App Router)
  • 🎨 Tailwind CSS v4
  • 🎥 Framer Motion
  • 🦊 Lucide-react
  • 🧠 Redux Toolkit
  • 📦 React Query
  • ✅ Formik
  • 🔔 React Hot Toast
  • 💳 Stripe
  • 🐳 Docker

📁 Folder Structure

/nextevent
│
├── .github/workflows/       # GitHub Actions for CI/CD
├── api/                     # Route handlers for app API
├── app/                     # Next.js app router (pages, layout, routing)
├── auth/                    # Protected routes and auth logic
├── components/              # Reusable UI components
├── helper/methods/          # Reusable helper functions
├── hooks/                   # Custom React hooks (React Query, etc.)
├── lib/                     # Stripe logic, middlewares, constants
├── public/                  # Public assets like images
├── redux/                   # Redux slices and store setup
├── toast/                   # React Hot Toast messages
├── types/                   # TypeScript types/interfaces
├── utils/                   # Utility functions
│
├── .dockerignore            # Docker ignore config
├── .gitignore               # Git ignore config
├── Dockerfile               # Docker image config
├── LICENCE                  # Project license (MIT)
├── README.md                # Project documentation
├── eslint.config.mjs        # ESLint configuration
├── next.config.ts           # Next.js configuration
├── package.json             # NPM scripts and dependencies
├── postcss.config.mjs       # PostCSS configuration
├── tsconfig.json            # TypeScript configuration
├── yarn.lock                # Yarn lock file

🔑 Features

  • 🧑‍💼 Organizers can sign up, log in, edit profile and create, view events
  • 👤 Guests can register,edit profile, browse, book, and cancel events
  • 💳 Stripe integration for paid events
  • 🎁 Free events supported
  • 📅 Filtered event views (nearby, free, paid)
  • 🔁 On cancellation, 50% refund goes to guest, 50% to admin
  • 🛡️ Role-based protected routing
  • 📱 Responsive UI with smooth transitions

🚀 Getting Started

📋 Prerequisites

  • Node.js (v18+)
  • Yarn or npm
  • MongoDB
  • Stripe account
  • Docker (optional)

📥 1. Clone the Repository

git clone https://github.com/syam-ts/nextevent.git
cd nextevent

📦 2. Install Dependencies

yarn install
# or
npm install

⚙️ 3. Create .env File

touch .env

Add the following:


NEXT_PUBLIC_BASE_URL=http://localhost:3000
NEXT_PUBLIC_BACKEND_URL=http://localhost:3001
NEXT_PUBLIC_CLOUDINARY_URL=your_cloudinary_rul
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=your_publishable_key

▶️ 4. Run the Development Server

yarn dev
# or
npm run dev

Visit: http://localhost:3000


🐳 Running with Docker

1. Build Docker Image

docker build -t nextevent .

2. Run the Container

docker run -d -p 3000:80 nextevent

Visit: http://localhost:3000

Note: Ensure your backend API, MongoDB, and Stripe keys are accessible within Docker.

Licence

MIT Licence

About

Next.js Event management with multiple roles (organizer, guest) . Event playing a big role in this application were used to create booking and manage booking with added wallet to multiple entities.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages