Skip to content

Modern event management & registration platform built with Next.js 16, TypeScript, and PostgreSQL. Features role-based access, real-time capacity tracking, and premium UI/UX.

Notifications You must be signed in to change notification settings

Pusri27/eventify-platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ‰ Eventify - Event Management Platform

A modern, full-stack event management and registration system built with Next.js 16, TypeScript, and PostgreSQL

Next.js TypeScript PostgreSQL Tailwind CSS License: MIT PRs Welcome

πŸ“– About

Eventify is a production-ready event management platform that enables organizers to create and manage events while providing attendees with a seamless event discovery and registration experience. Built with modern web technologies and featuring a premium glassmorphism UI design.

✨ Key Features

πŸ” Authentication & Authorization

  • Secure user registration with role selection (Organizer/Attendee)
  • Email and password authentication
  • Session management with NextAuth.js v5
  • Role-based access control (RBAC)
  • Protected routes and API endpoints

πŸ“… Event Management (Organizers)

  • Create events with comprehensive details
  • Edit and delete owned events
  • View registered attendees list
  • Real-time capacity tracking
  • Event statistics dashboard
  • Image upload integration (Cloudinary)

πŸ” Event Discovery (Attendees)

  • Browse all available events
  • Advanced filtering by category and status
  • Real-time search functionality
  • Detailed event information pages
  • Responsive event cards with status badges

πŸ“ Registration System

  • One-click event registration
  • Real-time capacity validation
  • Registration cancellation
  • "My Events" dashboard
  • Registration status tracking

🎨 Modern UI/UX

  • Dark theme with glassmorphism design
  • Indigo-purple gradient accents
  • Smooth animations and micro-interactions
  • Mobile-first responsive design
  • Optimized for all screen sizes

πŸ› οΈ Tech Stack

Frontend

  • Framework: Next.js 16 (App Router)
  • Language: TypeScript
  • Styling: Tailwind CSS 4
  • UI Components: Custom components with Lucide React icons
  • State Management: React Hooks
  • Notifications: React Hot Toast

Backend

  • API: Next.js API Routes
  • Database: PostgreSQL
  • ORM: Prisma
  • Authentication: NextAuth.js v5
  • Password Hashing: bcryptjs

Infrastructure

  • Image Storage: Cloudinary
  • Deployment: Vercel-ready
  • Database Hosting: Compatible with Neon, Supabase, Railway

πŸš€ Getting Started

Prerequisites

  • Node.js 18 or higher
  • PostgreSQL database (local or cloud-hosted)
  • npm or yarn package manager

Installation

  1. Clone the repository

    git clone https://github.com/Pusri27/eventify-platform.git
    cd eventify-platform
  2. Install dependencies

    npm install
  3. Set up environment variables

    cp .env.example .env.local

    Configure the following variables in .env.local:

    # Database
    DATABASE_URL="postgresql://username:password@localhost:5432/eventify"
    
    # NextAuth
    NEXTAUTH_SECRET="your-secret-key-here"
    NEXTAUTH_URL="http://localhost:3000"
    
    # Cloudinary (Optional - for image uploads)
    NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME="your-cloud-name"
    CLOUDINARY_API_KEY="your-api-key"
    CLOUDINARY_API_SECRET="your-api-secret"
  4. Set up the database

    npx prisma db push
  5. Run the development server

    npm run dev
  6. Open your browser

    Navigate to http://localhost:3000
    

πŸ“ Project Structure

eventify-platform/
β”œβ”€β”€ prisma/
β”‚   └── schema.prisma          # Database schema
β”œβ”€β”€ public/                    # Static assets
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ api/              # API routes
β”‚   β”‚   β”‚   β”œβ”€β”€ auth/         # Authentication endpoints
β”‚   β”‚   β”‚   β”œβ”€β”€ events/       # Event CRUD endpoints
β”‚   β”‚   β”‚   β”œβ”€β”€ register/     # User registration
β”‚   β”‚   β”‚   └── user/         # User-specific endpoints
β”‚   β”‚   β”œβ”€β”€ dashboard/        # Dashboard pages
β”‚   β”‚   β”‚   β”œβ”€β”€ manage-events/
β”‚   β”‚   β”‚   β”œβ”€β”€ my-events/
β”‚   β”‚   β”‚   └── profile/
β”‚   β”‚   β”œβ”€β”€ events/           # Event pages
β”‚   β”‚   β”œβ”€β”€ login/            # Login page
β”‚   β”‚   β”œβ”€β”€ register/         # Registration page
β”‚   β”‚   β”œβ”€β”€ globals.css       # Global styles
β”‚   β”‚   β”œβ”€β”€ layout.tsx        # Root layout
β”‚   β”‚   └── page.tsx          # Landing page
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ events/           # Event-related components
β”‚   β”‚   β”œβ”€β”€ layout/           # Layout components (Navbar, Footer)
β”‚   β”‚   └── Providers.tsx     # Client-side providers
β”‚   β”œβ”€β”€ lib/
β”‚   β”‚   β”œβ”€β”€ auth.ts           # NextAuth configuration
β”‚   β”‚   β”œβ”€β”€ prisma.ts         # Prisma client
β”‚   β”‚   └── utils.ts          # Utility functions
β”‚   └── types/
β”‚       └── next-auth.d.ts    # TypeScript type augmentation
β”œβ”€β”€ .env.example              # Environment variables template
β”œβ”€β”€ next.config.ts            # Next.js configuration
β”œβ”€β”€ tailwind.config.ts        # Tailwind CSS configuration
└── tsconfig.json             # TypeScript configuration

πŸ—„οΈ Database Schema

Models

  • User - User accounts with role-based access (ORGANIZER/ATTENDEE)
  • Event - Event information with organizer relations
  • Registration - Event registrations with status tracking

Key Features

  • Proper relational design with foreign keys
  • Cascade deletes for data integrity
  • Indexes on frequently queried fields
  • Unique constraints for business logic
  • Timestamp tracking (createdAt, updatedAt)

πŸ“‘ API Endpoints

Method Endpoint Description Auth Required
POST /api/register Register new user ❌
GET /api/events List events with filters & pagination ❌
POST /api/events Create new event βœ… Organizer
GET /api/events/[id] Get event details ❌
PUT /api/events/[id] Update event βœ… Owner
DELETE /api/events/[id] Delete event βœ… Owner
POST /api/events/[id]/register Register to event βœ… Attendee
DELETE /api/events/[id]/register Cancel registration βœ… Attendee
GET /api/events/[id]/attendees Get attendee list βœ… Organizer
GET /api/user/events Get user's registered events βœ…
GET /api/user/organized-events Get organizer's events βœ… Organizer

🎨 Design System

Color Palette

  • Background: Deep black with subtle gradients
  • Accent: Indigo-purple gradient (#6366f1 β†’ #a855f7)
  • Text: White with varying opacity levels
  • Borders: Subtle white with low opacity

Key Design Features

  • Glassmorphism effects with backdrop blur
  • Smooth transitions and hover states
  • Gradient text and button accents
  • Custom scrollbar styling
  • Responsive grid layouts

πŸ”‘ Environment Variables

Variable Description Required
DATABASE_URL PostgreSQL connection string βœ…
NEXTAUTH_SECRET Secret key for NextAuth.js βœ…
NEXTAUTH_URL Base URL of the application βœ…
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME Cloudinary cloud name ❌
CLOUDINARY_API_KEY Cloudinary API key ❌
CLOUDINARY_API_SECRET Cloudinary API secret ❌

🚒 Deployment

Vercel (Recommended)

  1. Push your code to GitHub
  2. Import project in Vercel
  3. Configure environment variables
  4. Deploy

Database Hosting Options

  • Neon - Serverless PostgreSQL (Free tier available)
  • Supabase - Open-source Firebase alternative
  • Railway - Infrastructure platform
  • Render - Cloud application hosting

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘¨β€πŸ’» Author

Pusri27

πŸ™ Acknowledgments

  • Next.js team for the amazing framework
  • Vercel for hosting and deployment platform
  • Prisma for the excellent ORM
  • All open-source contributors

⭐ If you find this project helpful, please consider giving it a star!

About

Modern event management & registration platform built with Next.js 16, TypeScript, and PostgreSQL. Features role-based access, real-time capacity tracking, and premium UI/UX.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published