- Frontend: React (Vite), Material UI, Tailwind CSS
- Backend: Node.js, Express, Prisma (MongoDB)
- Auth: JWT + Email OTP
- Node.js installed
- MongoDB Database URL (Cloud or Local)
- Cloudinary Account (Optional, for image uploads)
- Navigate to
backendfolder:cd backend - Install dependencies:
npm install
- Configure
.env:- Rename
.env.exampleto.env(or create one). - Update
DATABASE_URLwith your MongoDB connection string. - Update
EMAIL_USERandEMAIL_PASSfor OTP emails. - Update
CLOUDINARY_*vars for image uploads.
- Rename
- Generate Prisma Client:
npx prisma generate
- Run Seed (Optional):
npx prisma db seed
- Start Server:
npm run dev
- Navigate to
frontendfolder:cd frontend - Install dependencies:
npm install
- Start Dev Server:
npm run dev
- Authentication: Login with Email OTP. Auto-creates user if not exists.
- Role Management: Student, Organizer, Admin.
- Event Management: Create events (Organizer), View events (All), Register (Student).
- Team Management: Create teams, Join teams via code.
- Analytics: Dashboard with charts for Organizers (Registrations, Feedback) and Students (Attendance).
- Clash Detection: Warns if venue/time conflicts.
- Responsive UI: Built with MUI and Tailwind.
- The email service mocks sending emails by logging to the console if
EMAIL_USERis[email protected]. Check the backend terminal for OTPs. - Image upload mocks Cloudinary if credentials are missing.