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 Repo: https://github.com/SandeepVashishtha/Eventra-Backend
- 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
- Deployment
- Frontend Components
- Contributing
- License
- Event Creation & Management - Create and customize events with rich details
- User Authentication & Authorization - Secure JWT-based authentication system
- 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
- Version Control: Git with comprehensive documentation
- Deployment: Vercel for frontend hosting
Eventra/
βββ .github/ # GitHub workflows and templates
βββ public/ # Static assets
β βββ favicon.ico
β βββ index.html
β βββ manifest.json
βββ src/ # React source code
β βββ 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
β β β βββ ProjectSubmission.js
β β β βββ ProjectSubmission.css
β β βββ Layout/ # Layout components
β β β βββ Footer.js
β β β βββ Navbar.js
β β βββ styles/ # Component-specific styles
β β β βββ components.css
β β β βββ Contributors.css
β β β βββ notFound.css
β β β βββ scrolltotopButton.css
β β β βββ shared-layout.css
β β βββ user/ # User-specific components
β β β βββ UserDashboard.css
β β β βββ UserDashboard.js
β β βββ CollaborationHub.js # Collaboration features
β β βββ Contributors.js # Contributors display
β β βββ Dashboard.js # Main dashboard
β β βββ 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 components
β β β βββ AboutPage.js
β β β βββ Features.js
β β β βββ MissionVision.js
β β β βββ ModernAbout.js
β β βββ Contact/ # Contact page
β β β βββ ContactUs.js
β β βββ Events/ # Events pages
β β β βββ eventsMockData.json
β β β βββ EventsPage.js
β β βββ Hackathons/ # Hackathons section
β β β βββ HackathonHero.js
β β β βββ hackathonMockData.json
β β β βββ HackathonPage.js
β β βββ Home/ # Home page
β β β βββ HomePage.jsx
β β β βββ components/
β β β βββ Community.js
β β β βββ Features.js
β β β βββ GitHubStats.jsx
β β β βββ Hero.js
β β β βββ Testimonials.js
β β β βββ WhatsHappening.js
β β βββ Leaderboard/ # Leaderboard page
β β β βββ Leaderboard.jsx
β β βββ Projects/ # Projects section
β β βββ mockProjectsData.json
β β βββ ProjectHero.js
β β βββ ProjectsPage.js
β βββ App.js # Main App component
β βββ App.css # Global app styles
β βββ index.js # React entry point
β βββ index.css # Global CSS styles
βββ build/ # Production build output
βββ .env.example # Environment variables template
βββ .gitignore # Git ignore rules
βββ LICENSE # Apache 2.0 license
βββ package.json # npm dependencies and scripts
βββ package-lock.json # npm lock file
βββ README.md # Project documentation
βββ vercel.json # Vercel deployment configuration
- Node.js 16 or higher
- npm or yarn
- Git
git clone https://github.com/SandeepVashishtha/Eventra.git
cd Eventra# Install dependencies
npm install
# Start the development server
npm startThe application will be available at http://localhost:3000
Create .env in the project root:
# API Configuration
REACT_APP_API_URL=http://localhost:3000/api
REACT_APP_APP_NAME=Eventra
REACT_APP_VERSION=1.0.0- Connect to Vercel:
- Import your GitHub repository to Vercel
- Set build command:
npm run build - Set output directory:
build
- Set Environment Variables in Vercel dashboard:
REACT_APP_API_URL: URL of your backend API
- HomePage - Landing page with hero section and features
- AboutPage - Information about the platform and mission
- EventsPage - Browse and manage events
- HackathonPage - Specialized hackathon management
- ProjectsPage - Project gallery and submissions
- ContactUs - Contact form and information
- Leaderboard - User rankings and achievements
- Login/Signup - User authentication system
- ProtectedRoute - Route protection for authenticated users
- AuthContext - React context for authentication state
- UserDashboard - Personalized user interface
- AdminDashboard - Administrative controls and analytics
- Navbar - Navigation header
- Footer - Site footer
- Loading - Loading indicators
- ErrorMessage - Error display component
- ScrollToTop - Scroll to top functionality
We welcome contributions! To get started:
- 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 your branch:
git push origin feature/amazing-feature -
Open a Pull Request
- Follow Java coding conventions for backend
- Follow React best practices for frontend
- Write meaningful commit messages
- Update documentation for 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
- Dashboards - Analytics and reporting
- Feedback - Survey and feedback system
- Admin - Administrative operations
- OpenAPI Spec - Machine-readable API spec
- 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
// 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 follow these guidelines:
- 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 the development workflow above for guidelines.
Thank you once again to all our contributors who has contributed to Eventra! 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! Follow the development workflow and code standards outlined above to get started.
- Sandeep Vashishtha - @SandeepVashishtha
Crafted with β€οΈ for our amazing community. Let the events begin and the celebrations flow! π