Project under EXSOLVIA - Excellence in Software Solutions
KAMPYN is a campus-focused platform for food ordering, vendor and university dashboards, payments, guest-house flows, auditorium booking, and related admin tools. The UI is a Next.js application with role-specific dashboards and integrations for Razorpay.
- Framework: Next.js 16 (App Router)
- Runtime: React 19
- Language: TypeScript
- Styling: Tailwind CSS, SCSS, Radix UI primitives, Framer Motion
- Charts / UX: Recharts, Lucide / React Icons
- HTTP: Axios (central API helpers in
src/utils/apiUtils.ts) - Auth: JWT-backed flows with
@react-oauth/google - Payments: Razorpay (via backend + public key configuration)
- Analytics: Vercel Analytics & Speed Insights (when deployed on Vercel)
- Multi-role experiences (students, vendors, universities, admins, guest house, auditorium booking)
- Food ordering, carts, favourites, and vendor dashboards
- Payments and invoices (integration with backend Razorpay routes)
- Admin tooling (monitoring, platform fees, help messages, rate limits, etc.)
- Responsive layouts and shared cart / billing components
- Node.js 18 or newer (aligned with Next.js / React requirements)
- npm (or another compatible package manager)
From this repository’s frontend folder:
git clone https://github.com/exsolvia/kampyn-frontend.git
cd kampyn-frontend
npm installCreate .env.local in the project root (Next.js reads this automatically). Use at least the variables in Environment variables below.
Start the dev server (uses Turbopack):
npm run devThe app runs at http://localhost:3000.
If you use the KAMPYN monorepo layout instead of cloning only this repo, open kampyn-frontend from the workspace root and follow the same steps.
Point NEXT_PUBLIC_BACKEND_URL at your API origin (for example http://localhost:5001 when running kampyn-backend locally). In development, next.config.ts also rewrites /api/* to http://localhost:5001/api/* so direct /api/... calls can reach the backend without CORS issues for that path pattern.
Define these in .env.local (never commit secrets).
| Variable | Purpose |
|---|---|
NEXT_PUBLIC_BACKEND_URL |
Base URL of the KAMPYN backend (no trailing slash), e.g. http://localhost:5001 |
NEXT_PUBLIC_GOOGLE_CLIENT_ID |
Google OAuth Web client ID for Sign in with Google |
NEXT_PUBLIC_RAZORPAY_KEY_ID |
Razorpay Key ID (publishable) |
NEXT_PUBLIC_RAZORPAY_KEY_SECRET |
Used where the client config expects it (prefer backend-only secrets for production) |
NEXT_PUBLIC_APP_NAME |
Display name (defaults to KAMPYN in code if unset) |
NEXT_PUBLIC_APP_VERSION |
Optional version string for UI/config |
NEXT_PUBLIC_DIRECT_RAZORPAY_API |
Set to true to enable direct Razorpay API behaviour where implemented |
NEXT_PUBLIC_RAZORPAY_FALLBACK |
Set to false to disable fallback behaviour (see src/config/environment.ts) |
| Script | Description |
|---|---|
npm run dev |
Next.js dev server with Turbopack |
npm run build |
Production build (runs postbuild → next-sitemap) |
npm start |
Serve production build |
npm run lint |
ESLint via Next.js |
npm run sitemap |
Regenerate sitemap (next-sitemap) |
Husky and lint-staged run ESLint on staged files when configured in your checkout.
- Features:
feature/feature-description - Bug fixes:
fix/bug-description - Hotfixes:
hotfix/critical-fix-description
git commit -m "feat: implement user authentication system"
git commit -m "fix: resolve payment validation issue"
git commit -m "docs: update component documentation"- Fork or branch from the appropriate repo
- Create a feature branch (
git checkout -b feature/your-feature) - Commit with clear messages
- Push and open a pull request
This project is licensed under the MIT License.
- Contact: contact@kampyn.com
© 2026 EXSOLVIA. All rights reserved.