This repository contains a frontend React demo (Vite) and a minimal Express + MongoDB backend scaffold to get you started.
Project structure
src/— React frontend (Vite). UI demo pages: Landing, Auth, Dashboard, demo data.backend/— Express + Mongoose API scaffold with JWT auth, basic models and seed script.
What I added
- Frontend: landing, login, signup, dashboard pages and styles (in
src/). - Backend scaffold:
backend/with models (User, Event, Registration, Attendance), basic auth and event routes, and a seed script.
Quick start (requires Node.js and MongoDB)
- Frontend
Set-Location 'C:\Users\HP\OneDrive\Desktop\Touristers\CVMP'
npm install
npm run dev- Backend (in a separate terminal)
Set-Location 'C:\Users\HP\OneDrive\Desktop\Touristers\CVMP\backend'
npm install
# copy .env.example to .env and adjust MONGO_URI / JWT_SECRET if needed
# On Windows PowerShell:
Copy-Item .env.example .env
# Start server:
npm run dev
# Seed demo data (optional):
npm run seedBackend API (basic)
- POST /api/auth/register — { name, email, password, role }
- POST /api/auth/login — { email, password }
- GET /api/auth/me — (auth required)
- GET /api/events — list events
- GET /api/events/:id — get event
- POST /api/events — create event (auth required)
Notes & next steps
- The backend is intentionally minimal: no file uploads, no QR generation, no PDF generation yet.
- Next steps I can implement for you:
- Full JWT-based protected routes + role checks (Organizer/Admin only endpoints).
- Registration and attendance flows (QR generation, check-in endpoints).
- Certificate generation (signed PDF) and download endpoints.
- Email (SendGrid) / SMS (Twilio) notification integration for reminders.
- Integrate the frontend with the backend using fetch/axios and add React Router for proper routing.
If you want, I can now:
- Wire the frontend login/signup to the backend
/api/authendpoints (save token to localStorage and enable protected routes), or - Scaffold the QR/check-in and certificate endpoints next.
Which should I do next? If you prefer, I can implement "wire auth in frontend" so the demo app works end-to-end with the backend seed users.
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Currently, two official plugins are available:
- @vitejs/plugin-react uses Babel (or oxc when used in rolldown-vite) for Fast Refresh
- @vitejs/plugin-react-swc uses SWC for Fast Refresh
The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see this documentation.
If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the TS template for information on how to integrate TypeScript and typescript-eslint in your project.