Skip to content

adeshsinghbits/eventora

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 

Repository files navigation

Eventora

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.

Project structure

  • 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.

Key features

  • 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

Tech stack

  • 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

Setup

Backend

  1. Open a terminal and run:
    cd backend
    npm install
  2. Create a .env file in backend/ 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
  3. Start the backend:
    npm run dev

Frontend

  1. Open another terminal and run:
    cd fronend
    npm install
  2. Optional: create a .env file in fronend/ to override the API base URL:
    VITE_API_BASE_URL=http://localhost:3000/api
    If the backend runs on port 5000, set VITE_API_BASE_URL=http://localhost:5000/api.
  3. Start the frontend:
    npm run dev

Notes

  • The frontend default API base URL is http://localhost:5000/api.
  • If the backend uses port 3000, set VITE_API_BASE_URL=http://localhost:3000/api in the frontend .env file.
  • The backend health route is available at /api/health.

Useful commands

  • 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

About

Discover, create, and manage events with real-time map exploration, smart filtering, and interactive location-based experiences.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages