Modern event and hackathon platform for communities, organizers, and contributors.
Eventra is an open-source frontend application built with React and Vite. It supports event discovery, registration, dashboards, hackathons, collaboration features, feedback flows, and role-based access experiences.
This repository contains the frontend and serverless API helpers under api/.
The Spring Boot backend is maintained in a separate repository.
- Frontend repo: https://github.com/SandeepVashishtha/Eventra
- Backend repo: https://github.com/SandeepVashishtha/Eventra-Backend
- Backend API base: https://eventra-backend-springboot-eybhdvaubxcua7ha.centralindia-01.azurewebsites.net
- Swagger: https://eventra-backend-springboot-eybhdvaubxcua7ha.centralindia-01.azurewebsites.net/swagger-ui/index.html
- Event and hackathon discovery, filtering, and registration flows
- Auth-aware routes with protected pages and role-aware behavior
- Dashboard and profile surfaces for users and organizers
- Real-time and offline-friendly UX utilities
- Feedback, recommendation, and community engagement modules
- Extensive utility and behavior test coverage
- React 19
- React Router 7
- Vite 8
- Tailwind CSS 4
- Framer Motion
- Lucide React
- Playwright (E2E)
- ESLint and Prettier
Eventra/
|-- api/ # Serverless API routes and middleware
|-- docs/ # Architecture, env setup, onboarding, security docs
|-- public/ # Static assets
|-- scripts/ # Validation and automation scripts
|-- src/
| |-- Pages/ # Route-level pages
| |-- components/ # Shared and feature components
| |-- context/ # React context providers
| |-- hooks/ # Custom hooks
| |-- utils/ # Utility modules
| |-- config/ # Runtime/env config helpers
| |-- App.jsx
| `-- index.jsx
|-- tests/ # Node-based unit/integration tests
|-- vite.config.js
|-- vercel.json
`-- README.md
- Node.js
>=22.x - npm
>=9.6.4
- Clone and install:
git clone https://github.com/SandeepVashishtha/Eventra.git
cd Eventra
npm install- Create your env file:
cp .env.example .env- Start dev server:
npm run devApp runs at http://localhost:3000 (configured in vite.config.js).
Use .env.example as the source of truth.
| Variable | Required | Purpose |
|---|---|---|
REACT_APP_API_URL |
Yes | Backend API base URL |
REACT_APP_GITHUB_REPO |
No | Public repo identifier used in metadata |
REACT_APP_PUBLIC_URL |
No | Canonical public app URL |
REACT_APP_VAPID_PUBLIC_KEY |
No | Public web-push key |
REACT_APP_CSP_REPORT_URI |
No | CSP report endpoint |
Security note: never place private secrets in REACT_APP_* or VITE_* variables because they are exposed to the client bundle.
| Command | Description |
|---|---|
npm run dev |
Start local dev server |
npm run start |
Alias to Vite dev server |
npm run build |
Production build |
npm run preview |
Preview production build locally |
npm run lint |
Run ESLint on src/ |
npm run lint:fix |
Auto-fix lint issues |
npm run format |
Run Prettier on source files |
npm run test |
Run unit test suite |
npm run test:e2e |
Run Playwright E2E tests |
npm run storybook |
Start Storybook |
npm run build-storybook |
Build Storybook static output |
npm run lint
npm run test
npm run test:e2eFor local realtime testing:
node sse-mock-server.jsOptional environment flags:
SSE_MOCK_PORT(default4001)ALLOWED_ORIGIN(defaulthttp://localhost:3000)SSE_DEBUG(trueorfalse)
Vercel configuration is checked in via vercel.json:
- Build command:
npm run lint && GENERATE_SOURCEMAP=false npm run build - Output directory:
build /api/*is rewritten to the hosted Spring Boot backend
- Architecture and Roles
- Environment Setup Guide
- Frontend Onboarding
- Security Migration Notes
- API Documentation Notes
- Read CONTRIBUTING.md
- Follow CODE_OF_CONDUCT.md
- Open focused pull requests with clear scope and test notes
- Issues may be auto-unassigned after inactivity by workflow: auto-unassign-stale-issues.yml
Licensed under Apache 2.0. See LICENSE.
|
Sandeep Vashishtha |
Rhythm |
Built by the Eventra community.