A stunning, modern Next.js website for a premier technology conference with immersive 3D animations and cutting-edge design.
- 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
- 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
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
- Node.js 18+
- npm or yarn
-
Clone the repository
git clone <repository-url> cd conclave
-
Install dependencies
npm install
-
Set up environment variables
cp .env.local.example .env.local
Update
.env.localwith 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"
-
Set up the database
npx prisma generate npx prisma db push
-
Run the development server
npm run dev
-
Open your browser Navigate to http://localhost:3000
- Create a Razorpay account at razorpay.com
- Get your API keys from the Razorpay dashboard
- Add the keys to your
.env.localfile
- Create a SendGrid account at sendgrid.com
- Generate an API key
- Verify your sender email/domain
- Add the API key to your
.env.localfile
- 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
- Comprehensive registration form
- Real-time validation with error messages
- Integrated Razorpay payment
- Loading states and error handling
- Mobile-responsive design
- Payment confirmation
- Registration details
- Event information
- Next steps and what to bring
- Download ticket option
- Password-protected admin access
- Registration statistics
- Search and filter functionality
- Export to CSV feature
- Payment status tracking
- 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
- Input validation with Zod schemas
- SQL injection prevention with Prisma ORM
- Payment signature verification
- Admin route protection
- Environment variable security
The application uses two main models:
-
Registration: Stores user information
- id, fullName, email, college, phone
- Timestamps for tracking
-
Payment: Handles payment information
- Links to registration
- Razorpay order/payment IDs
- Payment status tracking
- Push your code to GitHub
- Connect your repository to Vercel
- Add environment variables in Vercel dashboard
- Deploy!
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"- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the ISC License.
Built with β€οΈ for the tech community