Eventora is a full-stack event management application with a React frontend and an Express/MongoDB backend. It supports user authentication, event creation and editing, event discovery, map-based event browsing, profile management, Cloudinary file uploads, and geocoding.
backend/- Node.js + Express REST API, MongoDB, authentication, event and user management, geocoding, Cloudinary uploads, scheduled event status updates.fronend/- React + Vite frontend using Redux Toolkit, React Router, TailwindCSS, Leaflet, and Axios.
- User registration, login, session refresh, logout
- Create, update, delete, and manage events
- Event search, filters, pagination, and map exploration
- User profile management and avatar uploads
- Saved events, attendance actions, and event recommendations
- Geocoding support for locations using Geoapify
- Email notifications via Nodemailer
- Security best practices: helmet, CORS, rate limiting, JWT, input validation
- Health endpoint and background cron job to update event statuses
- Backend: Node.js, Express, MongoDB, Mongoose, Cloudinary, JWT, Nodemailer
- Frontend: React 19, Vite, Redux Toolkit, React Router, TailwindCSS, Leaflet
- Utilities: Axios, dayjs, bcryptjs, validator, slugify, multer
- Open a terminal and run:
cd backend npm install - Create a
.envfile inbackend/with the following variables:MONGO_URI= ACCESS_TOKEN_SECRET= REFRESH_TOKEN_SECRET= CLOUDINARY_CLOUD_NAME= CLOUDINARY_API_KEY= CLOUDINARY_API_SECRET= EMAIL_USER= EMAIL_PASS= GEOAPIFY_API_KEY= PORT=3000 CORS_ORIGIN=http://localhost:5173 RATE_LIMIT_WINDOW_MS=900000 RATE_LIMIT_MAX_REQUESTS=100 COOKIE_MAX_AGE=604800000
- Start the backend:
npm run dev
- Open another terminal and run:
cd fronend npm install - Optional: create a
.envfile infronend/to override the API base URL:If the backend runs on portVITE_API_BASE_URL=http://localhost:3000/api
5000, setVITE_API_BASE_URL=http://localhost:5000/api. - Start the frontend:
npm run dev
- The frontend default API base URL is
http://localhost:5000/api. - If the backend uses port
3000, setVITE_API_BASE_URL=http://localhost:3000/apiin the frontend.envfile. - The backend health route is available at
/api/health.
- Backend development:
cd backend && npm run dev - Frontend development:
cd fronend && npm run dev - Frontend production build:
cd fronend && npm run build - Backend production start:
cd backend && npm start