A Modern Event Management Platform for Builders and Communities
Eventra is a comprehensive event management system that empowers organizers to create, manage, and track events seamlessly. Built with a modern tech stack featuring React frontend and Spring Boot backend, Eventra provides everything needed to run successful events from creation to post-event analytics.
- Frontend: https://eventra-psi.vercel.app/
- Backend API: https://eventra-backend-dgcae3etebbag8ft.centralindia-01.azurewebsites.net
- API Documentation: Backend Swagger UI
| π Stars | π΄ Forks | π Issues | π Open PRs | π Closed PRs | π οΈ Languages | π₯ Contributors |
- Features
- Tech Stack
- Architecture
- Quick Start
- Installation
- Environment Configuration
- Deployment
- API Documentation
- Frontend Components
- Troubleshooting
- Contributing
- License
- Event Creation & Management - Create and customize events with rich details
- User Authentication & Authorization - Secure JWT-based authentication system
- RSVP Management - Handle attendee registrations and responses
- QR Code Check-ins - Streamlined event check-in process
- Real-time Analytics - Track event performance and attendee engagement
- Admin Dashboard - Comprehensive administrative controls
- User Dashboard - Personalized user experience and event tracking
- Hackathon Hub - Specialized features for hackathon management
- Project Gallery - Showcase community projects and collaborations
- Collaboration Tools - Foster community engagement and networking
- Feedback System - Post-event surveys and feedback collection
- Leaderboards - Gamification and community recognition
- Responsive Design - Mobile-first, responsive user interface
- Framework: Spring Boot 3.3.1
- Language: Java 17
- Database: MySQL (Aiven) with H2 for development
- Security: Spring Security with JWT authentication
- Build Tool: Maven
- Documentation: OpenAPI 3.0 with Springdoc
- Key Dependencies:
- Spring Data JPA
- Spring Web
- Spring Security
- JJWT for JWT tokens
- H2 Database (development)
- MySQL Connector
- Lombok
- Spring Boot DevTools
- Framework: React 18.2.0
- Routing: React Router DOM 6.8.0
- Animations: Framer Motion 8.5.2
- Icons: Heroicons React 2.0.16
- Observers: React Intersection Observer 9.4.1
- Styling: CSS with modern responsive design
- Build Tool: Create React App
- Environment Profiles: Development, Production, Azure
- API Documentation: OpenAPI/Swagger specification
- Version Control: Git with comprehensive documentation
Eventra/
βββ .github/ # GitHub workflows and templates
βββ .vscode/ # VS Code settings
βββ backend/ # Spring Boot API Server
β βββ src/main/java/com/eventra/
β β βββ config/ # Configuration classes
β β β βββ CorsConfig.java # CORS configuration
β β β βββ OpenApiConfig.java # Swagger/OpenAPI setup
β β βββ controller/ # REST API controllers
β β β βββ AdminController.java # Admin management
β β β βββ AuthController.java # Authentication endpoints
β β β βββ EventController.java # Event management
β β β βββ HealthController.java # Health check endpoint
β β β βββ HomeController.java # Home page endpoint
β β β βββ UserController.java # User management
β β βββ dto/ # Data Transfer Objects
β β βββ entity/ # JPA entities
β β β βββ User.java # User entity
β β β βββ Event.java # Event entity
β β β βββ Project.java # Project entity
β β βββ exception/ # Custom exceptions
β β βββ filter/ # Security filters
β β βββ repository/ # Data access layer (JPA repositories)
β β βββ service/ # Business logic services
β β βββ util/ # Utility classes (JWT, validation)
β β βββ BackendApplication.java # Main Spring Boot application
β β βββ SecurityConfig.java # Security configuration
β β βββ StatusController.java # Status endpoint
β βββ src/main/resources/ # Configuration files
β β βββ application.properties # Main configuration
β β βββ application-dev.properties # Development settings
β β βββ application-mysql.properties # MySQL configuration
β β βββ application-prod.properties # Production settings
β β βββ application-azure.properties # Azure deployment config
β βββ src/test/java/ # Test files
β βββ target/ # Build output
β βββ azure-cors-variables.json # Azure CORS environment variables
β βββ azure-environment-variables.json # Azure deployment variables
β βββ CLEANUP_SUMMARY.md # Database cleanup documentation
β βββ DATABASE_MIGRATION.md # Database migration guide
β βββ DEPLOYMENT_GUIDE.md # Backend deployment guide
β βββ update-azure-cors.sh # Azure CORS update script
β βββ mvnw / mvnw.cmd # Maven wrapper
β βββ pom.xml # Maven configuration
βββ frontend/ # React Web Application
β βββ public/ # Static assets
β β βββ favicon.ico
β β βββ index.html
β β βββ manifest.json
β βββ src/
β β βββ components/ # React components
β β β βββ admin/ # Admin dashboard components
β β β β βββ AdminDashboard.js
β β β β βββ AdminDashboard.css
β β β βββ auth/ # Authentication components
β β β β βββ Auth.css
β β β β βββ Login.js
β β β β βββ PasswordReset.js
β β β β βββ ProtectedRoute.js
β β β β βββ Signup.js
β β β β βββ Unauthorized.js
β β β βββ common/ # Shared components
β β β β βββ common-components.css
β β β β βββ ErrorMessage.js
β β β β βββ EventCreation.js
β β β β βββ EventCreation.css
β β β β βββ Loading.js
β β β βββ Layout/ # Layout components
β β β β βββ Footer.js
β β β β βββ Navbar.js
β β β βββ styles/ # Component-specific styles
β β β β βββ components.css
β β β β βββ Contributors.css
β β β β βββ notFound.css
β β β β βββ scrolltotopButton.css
β β β βββ user/ # User-specific components
β β β βββ CollaborationHub.js # Collaboration features
β β β βββ Contributors.js # Contributors display
β β β βββ Dashboard.js # Main dashboard
β β β βββ GitHubStats.jsx # GitHub statistics
β β β βββ Leaderboard.js # User leaderboard
β β β βββ NotFound.js # 404 page
β β β βββ ScrollToTop.js # Scroll to top button
β β β βββ SearchFilter.js # Search and filter
β β βββ config/ # Configuration files
β β β βββ api.js # API endpoints and utilities
β β βββ context/ # React context providers
β β β βββ AuthContext.js # Authentication context
β β βββ Pages/ # Page components
β β β βββ About/ # About page
β β β βββ Events/ # Events pages
β β β βββ Hackathons/ # Hackathons section
β β β βββ Home/ # Home page
β β β βββ Projects/ # Projects section
β β βββ App.js # Main App component
β β βββ App.css # Global app styles
β β βββ index.js # React entry point
β β βββ index.css # Global CSS styles
β βββ .env.example # Environment variables template
β βββ .env.production # Production environment config
β βββ CSS-CONSOLIDATION-SUMMARY.md # CSS consolidation notes
β βββ package.json # npm dependencies
β βββ README.md # Frontend documentation
βββ docs/ # Project documentation
β βββ admin.md # Admin functionality docs
β βββ authentication.md # Authentication documentation
β βββ CHANGELOG.md # Version history
β βββ checkin.md # Check-in process docs
β βββ dashboards.md # Dashboard documentation
β βββ errors.md # Error handling docs
β βββ events.md # Events API documentation
β βββ feedback.md # Feedback system docs
β βββ frontend-integration.md # Frontend integration guide
β βββ index.md # Documentation index
β βββ openapi.yaml # OpenAPI specification
β βββ README.md # Documentation README
β βββ rsvp-attendees.md # RSVP and attendee management
βββ .gitignore # Git ignore rules
βββ CODE_OF_CONDUCT.md # Code of conduct
βββ CONTRIBUTING.md # Contributing guidelines
βββ DEPLOYMENT_TROUBLESHOOTING.md # Deployment troubleshooting guide
βββ LICENSE # Apache 2.0 license
βββ package.json # Root package configuration
βββ package-lock.json # npm lock file
βββ README.md # Main project documentation
βββ vercel.json # Vercel deployment configuration
- Java 17 or higher
- Node.js 16 or higher
- npm or yarn
- Git
- MySQL (for production) or use built-in H2 database for development
git clone https://github.com/SandeepVashishtha/Eventra.git
cd Eventra# Navigate to backend directory
cd backend
# Install dependencies and run (Windows)
.\mvnw.cmd spring-boot:run
# Install dependencies and run (Linux/Mac)
./mvnw spring-boot:run
# Or build and run the JAR
.\mvnw.cmd clean package
java -jar target/backend-0.0.1-SNAPSHOT.jarThe backend will start on http://localhost:8080 with:
- H2 in-memory database for development
- H2 Console available at http://localhost:8080/h2-console
- Swagger UI available at http://localhost:8080/swagger-ui.html
- API endpoints available at http://localhost:8080/api
# Navigate to frontend directory
cd frontend
# Install dependencies
npm install
# Start development server
npm startThe frontend will start on http://localhost:3000 and automatically connect to the backend API.
- Frontend: http://localhost:3000
- Backend API: http://localhost:8080
- API Documentation: http://localhost:8080/swagger-ui.html
- H2 Database Console: http://localhost:8080/h2-console (JDBC URL: jdbc:h2:mem:eventra)
For production deployment, configure these environment variables:
# Database Configuration (Aiven MySQL)
AIVEN_DATABASE_URL=jdbc:mysql://your-host:port/database?useSSL=true
AIVEN_DATABASE_USERNAME=your_username
AIVEN_DATABASE_PASSWORD=your_password
DATABASE_DRIVER=com.mysql.cj.jdbc.Driver
DATABASE_DIALECT=org.hibernate.dialect.MySQL8Dialect
DDL_AUTO=update
# Security Configuration
JWT_SECRET=your_secure_jwt_secret_key_here
JWT_EXPIRATION=86400000
# CORS Configuration
CORS_ALLOWED_ORIGINS=https://eventra-psi.vercel.app
CORS_ALLOWED_METHODS=GET,POST,PUT,DELETE,OPTIONS,PATCH
CORS_ALLOWED_HEADERS=*
CORS_ALLOW_CREDENTIALS=true
# Application Settings
SHOW_SQL=false
LOG_LEVEL=INFOCreate .env.production in the frontend directory:
# Production API Configuration
REACT_APP_API_URL=https://eventra-backend-dgcae3etebbag8ft.centralindia-01.azurewebsites.net/api
REACT_APP_APP_NAME=Eventra
REACT_APP_VERSION=1.0.0
GENERATE_SOURCEMAP=false-
Build the application:
cd backend ./mvnw clean package -DskipTests -
Deploy to Azure:
- Upload the JAR file from
target/directory - Configure environment variables in Azure App Service
- Set the startup command:
java -jar /home/site/wwwroot/backend-0.0.1-SNAPSHOT.jar
- Upload the JAR file from
-
Environment Variables in Azure: Use the JSON format from
backend/azure-cors-variables.jsonto configure CORS settings.
-
Connect to Vercel:
- Import your GitHub repository to Vercel
- Set build command:
npm run build - Set output directory:
build
-
Environment Variables in Vercel:
REACT_APP_API_URL = https://eventra-backend-dgcae3etebbag8ft.centralindia-01.azurewebsites.net/api
The backend provides a comprehensive REST API documented with OpenAPI 3.0:
- Live API Documentation: Swagger UI
- OpenAPI Specification: API Docs
POST /api/auth/login- User loginPOST /api/auth/signup- User registrationPOST /api/auth/logout- User logoutGET /api/auth/verify- Token verification
GET /api/events- List all eventsPOST /api/events- Create new eventGET /api/events/{id}- Get event detailsPUT /api/events/{id}- Update eventDELETE /api/events/{id}- Delete eventPOST /api/events/{id}/join- Join eventDELETE /api/events/{id}/leave- Leave event
GET /api/user/profile- Get user profilePUT /api/user/update- Update user profileGET /api/user/events- Get user's events
GET /api/admin/dashboard- Admin dashboard dataGET /api/admin/users- Manage usersGET /api/admin/events- Manage events
Problem: "Network error. Please check your connection and try again."
Solution:
- Verify backend is running: Visit backend health endpoint
- Check CORS configuration in Azure App Service
- Verify
REACT_APP_API_URLenvironment variable in Vercel
Problem: Browser console shows CORS errors
Solution:
- Add these environment variables to Azure App Service:
CORS_ALLOWED_ORIGINS = * CORS_ALLOWED_METHODS = GET,POST,PUT,DELETE,OPTIONS,PATCH CORS_ALLOWED_HEADERS = * CORS_ALLOW_CREDENTIALS = true - Restart the Azure App Service
- Clear browser cache
Problem: Backend fails to start or connect to database
Solution:
- Verify database environment variables in Azure
- Check database connectivity and credentials
- Ensure database server allows connections from Azure IP ranges
Problem: Vercel build fails with schema validation errors
Solution:
- Check
vercel.jsonconfiguration - Ensure all required environment variables are set
- Verify
package.jsondependencies
- Local Development: Use H2 database for quick setup
- API Testing: Use the built-in Swagger UI for testing endpoints
- Debugging: Enable SQL logging with
SHOW_SQL=true - Frontend Development: Start backend first, then frontend
- Check the Deployment Troubleshooting Guide
- Review browser console for specific error messages
- Check Azure App Service logs for backend errors
- Verify environment variables in both Vercel and Azure
We welcome contributions to Eventra! Please follow these steps:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add some amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- Follow Java coding conventions for backend development
- Use React best practices for frontend development
- Write meaningful commit messages
- Update documentation for any new features
- Test thoroughly before submitting PRs
- Backend: Follow Spring Boot conventions and package structure
- Frontend: Use functional components with hooks
- API: Maintain RESTful design principles
- Documentation: Update OpenAPI specifications for new endpoints
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
- Spring Boot community for excellent framework and documentation
- React community for powerful frontend library
- Azure and Vercel for reliable cloud hosting
- Aiven for managed MySQL database service
Built with β€οΈ by the Eventra Team
For more information, visit our live application or check out the API documentation.
- Frontend Configuration
The frontend automatically connects to
http://localhost:8080/api. To change the API URL:# Set environment variable export REACT_APP_API_URL=http://your-api-url:port/api # Or edit src/config/api.js
Development (H2 - Default)
- No setup required - uses in-memory H2 database
- Access console at http://localhost:8080/h2-console
- JDBC URL:
jdbc:h2:mem:eventra - Username:
sa - Password: (empty)
Production (MySQL)
# application.properties
spring.datasource.url=jdbc:mysql://your-mysql-host:port/database_name
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect-
Backend Build
cd backend .\mvnw.cmd clean package -Pprod
-
Frontend Build
cd frontend npm run build
Comprehensive API documentation is available through multiple channels:
- Swagger UI: http://localhost:8080/swagger-ui.html
- OpenAPI JSON: http://localhost:8080/api-docs
- API Overview - Complete API guide
- Authentication - User auth and JWT
- Events - Event management endpoints
- RSVP & Attendees - Registration management
- Check-in - QR code and check-in system
- Dashboards - Analytics and reporting
- Feedback - Survey and feedback system
- Admin - Administrative operations
- OpenAPI Spec - Machine-readable API spec
- Development:
http://localhost:8080/api - Production:
https://api.eventra.com/api
- Hero - Landing page hero section
- Navbar - Navigation and user menu with authentication state
- Dashboard - User dashboard with event overview and management
- AdminDashboard - Administrative control panel for user and event management
- EventCreation - Event creation and editing forms with validation
- EventsSection - Event listing with search and filtering capabilities
- HackathonHub - Specialized features for hackathon management
- ProjectGallery - Community project showcase and collaboration
- CollaborationHub - Team collaboration tools and communication
- Leaderboard - Community rankings and recognition system
- Login/Signup - User authentication forms with validation
- ProtectedRoute - Route protection middleware for authenticated routes
- AuthContext - Authentication state management and token handling
- Unauthorized - Access denied component for restricted routes
- Loading - Loading spinner for async operations
- ErrorMessage - Error display component
- SearchFilter - Reusable search and filter component
spring.datasource.url=jdbc:h2:mem:eventra
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.h2.console.enabled=true
spring.jpa.show-sql=truespring.datasource.url=jdbc:mysql://your-aiven-host:port/database_name?useSSL=true&requireSSL=true&verifyServerCertificate=false
spring.datasource.username=your_aiven_username
spring.datasource.password=your_aiven_password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect# JWT Configuration
jwt.secret=your-secure-jwt-secret-key
jwt.expiration=86400000
# CORS Configuration
cors.allowed-origins=http://localhost:3000
cors.allowed-methods=GET,POST,PUT,DELETE,OPTIONS,PATCH
cors.allowed-headers=Origin,Content-Type,Accept,Authorization,Cache-Control,X-Requested-With
cors.allow-credentials=true// src/config/api.js
const API_BASE_URL = process.env.REACT_APP_API_URL || 'http://localhost:8080/api';
// Environment variable usage:
// REACT_APP_API_URL=http://your-api-url:port/api npm startREACT_APP_API_URL: Backend API base URLREACT_APP_DEBUG: Enable debug mode
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- Backend: Follow Java conventions and Spring Boot best practices
- Frontend: Use ESLint and Prettier for consistent code style
- Testing: Write comprehensive tests for new features
- Documentation: Update API documentation for any changes
- Commit Messages: Use conventional commit messages
- Set up the development environment as described in the Quick Start section
- Explore the codebase structure
- Check existing issues or propose new features
- Follow the coding standards and testing requirements
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
- Repository: https://github.com/SandeepVashishtha/Eventra
- Issues: https://github.com/SandeepVashishtha/Eventra/issues
- Discussions: https://github.com/SandeepVashishtha/Eventra/discussions
We love our contributors! If you'd like to help, please check out our CONTRIBUTE.md file for guidelines.
Thank you once again to all our contributors who has contributed to AlgoVisualizer! Your efforts are truly appreciated. ππ
See the full list of contributors and their contributions on the GitHub Contributors Graph.
Contributor updates automatically every 24 hours
We'd love your help! Check out our Contributing Guidelines to get started.
- Sandeep Vashishtha - @SandeepVashishtha
Built with β€οΈ for the community. Happy event organizing! π