A polished UI for organisers & participants — profiles, invites, teams, hosted & participated hackathons.
- Modern Next.js (App Router) + TypeScript codebase.
- Responsive UI built with Tailwind CSS and accessibility-minded components.
- Profile editing modal with optimistic UI and loader overlay (size stable while saving).
- Serverless API routes (Next.js) with Mongoose for MongoDB.
- Integrations: Cloudinary for uploads, lucide-react icons, Framer Motion for subtle animations.
Prerequisites: Node.js (18+ recommended), npm.
-
Install
npm install
-
Environment
- Copy
.env.example→.envand populate:- DATABASE_URI, NEXT_PUBLIC_CLOUDINARY, JWT_SECRET, etc. (project-specific)
- Example (not included here): MONGO connection string, Cloudinary credentials, email config.
- Copy
-
Run (dev)
npm run dev
-
Build / start
npm run build npm start
npm run dev— start dev server (Next.js)npm run build— production buildnpm start— start production servernpm run lint— lint project
(See package.json for current script details.)
app/— Next.js app router pages & API routescomponents/— UI components (Profile, UI primitives, Loader, Toast)styles/— global & theme CSS (Tailwind config)api/— Next API handlers (underapp/api)README.md,package.json,tsconfig.json
- Next.js — fast SSR/SSG + App Router
- React — UI library
- TypeScript — static types
- Tailwind CSS — utility-first styling
- MongoDB + Mongoose — database
- lucide-react — icons
- Cloudinary — image uploads
- Framer Motion — animations
- Nodemailer — email (invites/notifications)
- Fork repository, create feature branch, open PR.
- Keep changes focused; lint & type-check before PR.
- Add tests for new logic where applicable.
- Ensure Tailwind is compiled (postcss config) when modifying styles.
- API routes expect authentication for protected endpoints — check
app/api/authfor auth flow. - Keep secrets out of repository; use environment variables.
MIT — see LICENSE file.