Skip to content

IEEE-Ritb-Website/industry-conclave

Repository files navigation

Industry Conclave 2025 - Tech Innovation Summit

A stunning, modern Next.js website for a premier technology conference with immersive 3D animations and cutting-edge design.

πŸš€ Features

  • Modern UI/UX: Clean, responsive design with Tailwind CSS and shadcn/ui components
  • Registration System: Complete user registration with form validation
  • Payment Integration: Razorpay integration for secure online payments (β‚Ή350)
  • Email Confirmations: Automated confirmation emails via SendGrid
  • Admin Dashboard: Protected admin panel to view and manage registrations
  • Database: Prisma ORM with SQLite for data persistence
  • Type Safety: Full TypeScript implementation with Zod validation

πŸ› οΈ Tech Stack

  • Frontend: Next.js 14 (App Router), React 18, TypeScript
  • Styling: Tailwind CSS v4, shadcn/ui components
  • Forms: React Hook Form with Zod validation
  • Database: Prisma ORM with SQLite
  • Payments: Razorpay integration
  • Email: SendGrid API
  • UI Components: Radix UI primitives
  • Icons: Lucide React
  • Notifications: Sonner toast library

πŸ“ Project Structure

src/
 β”œβ”€β”€ app/
 β”‚    β”œβ”€β”€ page.tsx                 # Landing page
 β”‚    β”œβ”€β”€ register/page.tsx        # Registration form
 β”‚    β”œβ”€β”€ success/page.tsx         # Post-payment success page
 β”‚    β”œβ”€β”€ admin/page.tsx           # Admin dashboard
 β”‚    └── api/
 β”‚         β”œβ”€β”€ register/route.ts   # Registration API
 β”‚         β”œβ”€β”€ payment/verify/route.ts # Payment verification
 β”‚         └── admin/registrations/route.ts # Admin API
 β”‚
 β”œβ”€β”€ components/
 β”‚    β”œβ”€β”€ ui/                      # shadcn/ui components
 β”‚    β”œβ”€β”€ forms/
 β”‚    β”‚    └── RegisterForm.tsx    # Registration form component
 β”‚    β”œβ”€β”€ layout/
 β”‚    β”‚    └── Navbar.tsx, Footer.tsx
 β”‚    └── shared/
 β”‚         └── ToastProvider.tsx
 β”‚
 β”œβ”€β”€ lib/
 β”‚    β”œβ”€β”€ sendgrid.ts              # Email sending logic
 β”‚    β”œβ”€β”€ razorpay.ts              # Razorpay integration
 β”‚    β”œβ”€β”€ validations.ts           # Zod schemas
 β”‚    β”œβ”€β”€ utils.ts                 # Helper functions
 β”‚    └── prisma.ts                # Prisma client
 β”‚
 β”œβ”€β”€ prisma/
 β”‚    └── schema.prisma            # Database schema
 β”‚
 └── styles/
      └── globals.css              # Global styles

πŸš€ Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn

Installation

  1. Clone the repository

    git clone <repository-url>
    cd conclave
  2. Install dependencies

    npm install
  3. Set up environment variables

    cp .env.local.example .env.local

    Update .env.local with your actual credentials:

    DATABASE_URL="file:./dev.db"
    NEXT_PUBLIC_BASE_URL="http://localhost:3000"
    
    # Razorpay Configuration
    RAZORPAY_KEY_ID="your_razorpay_key_id"
    RAZORPAY_KEY_SECRET="your_razorpay_key_secret"
    NEXT_PUBLIC_RAZORPAY_KEY_ID="your_razorpay_key_id"
    
    # SendGrid Configuration
    SENDGRID_API_KEY="your_sendgrid_api_key"
    FROM_EMAIL="noreply@youreventsite.com"
    
    # Admin Password
    ADMIN_PASSWORD="your_secure_password"
    NEXT_PUBLIC_ADMIN_PASSWORD="your_secure_password"
  4. Set up the database

    npx prisma generate
    npx prisma db push
  5. Run the development server

    npm run dev
  6. Open your browser Navigate to http://localhost:3000

πŸ”§ Configuration

Razorpay Setup

  1. Create a Razorpay account at razorpay.com
  2. Get your API keys from the Razorpay dashboard
  3. Add the keys to your .env.local file

SendGrid Setup

  1. Create a SendGrid account at sendgrid.com
  2. Generate an API key
  3. Verify your sender email/domain
  4. Add the API key to your .env.local file

πŸ“± Pages & Features

Landing Page (/)

  • Hero section with event details
  • About section with event highlights
  • Interactive schedule (Day 1/Day 2)
  • Featured speakers section
  • FAQ section
  • Contact form
  • Call-to-action for registration

Registration Page (/register)

  • Comprehensive registration form
  • Real-time validation with error messages
  • Integrated Razorpay payment
  • Loading states and error handling
  • Mobile-responsive design

Success Page (/success)

  • Payment confirmation
  • Registration details
  • Event information
  • Next steps and what to bring
  • Download ticket option

Admin Dashboard (/admin)

  • Password-protected admin access
  • Registration statistics
  • Search and filter functionality
  • Export to CSV feature
  • Payment status tracking

🎨 Design System

  • Primary Colors: Indigo and Purple gradients
  • Border Radius: Consistent 2xl (16px) rounded corners
  • Typography: Clean, modern font hierarchy
  • Components: Reusable shadcn/ui components
  • Responsive: Mobile-first design approach

πŸ”’ Security Features

  • Input validation with Zod schemas
  • SQL injection prevention with Prisma ORM
  • Payment signature verification
  • Admin route protection
  • Environment variable security

πŸ“Š Database Schema

The application uses two main models:

  1. Registration: Stores user information

    • id, fullName, email, college, phone
    • Timestamps for tracking
  2. Payment: Handles payment information

    • Links to registration
    • Razorpay order/payment IDs
    • Payment status tracking

πŸš€ Deployment

Vercel (Recommended)

  1. Push your code to GitHub
  2. Connect your repository to Vercel
  3. Add environment variables in Vercel dashboard
  4. Deploy!

Environment Variables for Production

DATABASE_URL="your_production_database_url"
NEXT_PUBLIC_BASE_URL="https://yourdomain.com"
RAZORPAY_KEY_ID="your_production_razorpay_key"
RAZORPAY_KEY_SECRET="your_production_razorpay_secret"
NEXT_PUBLIC_RAZORPAY_KEY_ID="your_production_razorpay_key"
SENDGRID_API_KEY="your_production_sendgrid_key"
FROM_EMAIL="your_verified_sender_email"
ADMIN_PASSWORD="your_secure_admin_password"
NEXT_PUBLIC_ADMIN_PASSWORD="your_secure_admin_password"

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly
  5. Submit a pull request

πŸ“ License

This project is licensed under the ISC License.


Built with ❀️ for the tech community

Releases

No releases published

Packages

 
 
 

Contributors