- Frontend: React (Vite), Tailwind CSS, Framer Motion
- Backend: Node.js, Express, Prisma (MongoDB)
- Authentication: Clerk (Managed Auth)
- Database: MongoDB (Atlas)
- File Storage: Cloudinary
The project is split into two main directories:
backend/: Express server with Prisma ORM and Clerk integration. See detailed backend architecturefrontend/: React application with Tailwind CSS.
- Node.js installed
- MongoDB Database URL
- Clerk Publishable & Secret Keys
- Cloudinary Credentials (Optional)
- Navigate to
backendfolder:cd backend - Install dependencies:
npm install
- Configure
.env:- Rename
.env.exampleto.env. - Update
DATABASE_URLwith your MongoDB string. - Add
CLERK_PUBLISHABLE_KEYandCLERK_SECRET_KEY.
- Rename
- Generate Prisma Client:
npx prisma generate
- Start Server:
npm run dev
- Navigate to
frontendfolder:cd frontend - Install dependencies:
npm install
- Configure
.env:- Add
VITE_CLERK_PUBLISHABLE_KEY.
- Add
- Start Dev Server:
npm run dev
- Universal Auth: Seamless login via Clerk (Google, Email, etc.).
- Role-Based Access: Student, Organizer, Faculty, and Admin levels.
- Event Lifecycle: Create, Edit, Delete, and Register for events.
- Team Registrations: Support for team-based competitions with join codes.
- Real-time Analytics: Dashboard for organizers to track engagement.
- Automated Sync: Clerk identities are automatically synced to MongoDB profiles.
- Responsive Design: Fully optimized for mobile and desktop.
- Detailed Backend Architecture
- Frontend Component Guide (To be added)