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.
- Features
- Tech Stack
- Architecture
- Quick Start
- Installation
- API Documentation
- Frontend Components
- Configuration
- 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: JPA with configurable database support
- Security: Spring Security with JWT authentication
- Build Tool: Maven
- Documentation: OpenAPI 3.0
- Framework: React 18.2.0
- Routing: React Router DOM 6.8.0
- Animations: Framer Motion 8.5.2
- Icons: Heroicons React 2.0.16
- 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/
βββ backend/ # Spring Boot API Server
β βββ src/main/java/com/eventra/
β β βββ config/ # Configuration classes
β β βββ controller/ # REST API controllers
β β βββ dto/ # Data Transfer Objects
β β βββ entity/ # JPA entities
β β βββ service/ # Business logic
β β βββ repository/ # Data access layer
β β βββ exception/ # Custom exceptions
β βββ src/main/resources/ # Configuration files
βββ frontend/ # React Web Application
β βββ public/ # Static assets
β βββ src/
β βββ components/ # React components
β βββ context/ # React context providers
β βββ config/ # API configuration
β βββ styles/ # CSS stylesheets
βββ docs/ # API Documentation
βββ openapi.yaml # OpenAPI specification
βββ *.md # Endpoint documentation
- Java 17 or higher
- Node.js 16 or higher
- npm or yarn
- Git
git clone https://github.com/SandeepVashishtha/Eventra.git
cd Eventra# Navigate to backend directory
cd backend
# Run with Maven (Windows)
.\mvnw.cmd spring-boot:run
# Run with Maven (Linux/Mac)
./mvnw spring-boot:run
# Or build and run the JAR
.\mvnw.cmd clean package
java -jar target/backend-0.0.1-SNAPSHOT.jar# Navigate to frontend directory
cd frontend
# Install dependencies
npm install
# Start development server
npm start- Frontend: http://localhost:3000
- Backend API: http://localhost:8080
- API Documentation: http://localhost:8080/swagger-ui.html
-
Backend Configuration
cd backend cp src/main/resources/application.properties.example src/main/resources/application.propertiesEdit
application.propertieswith your database and security configurations. -
Environment Profiles
application-dev.properties- Development settingsapplication-prod.properties- Production settingsapplication-azure.properties- Azure deployment settings
-
Frontend Configuration
cd frontend # Update API endpoints in src/config/api.js
-
Backend Build
cd backend .\mvnw.cmd clean package -Pprod
-
Frontend Build
cd frontend npm run build
Comprehensive API documentation is available in the /docs directory:
- 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
- Dashboard - User dashboard with event overview
- AdminDashboard - Administrative control panel
- EventCreation - Event creation and editing forms
- EventsSection - Event listing and search
- HackathonHub - Hackathon-specific features
- ProjectGallery - Community project showcase
- CollaborationHub - Team collaboration tools
- Leaderboard - Community rankings and recognition
- Login/Signup - User authentication
- ProtectedRoute - Route protection middleware
- AuthContext - Authentication state management
# application.properties
spring.datasource.url=jdbc:postgresql://localhost:5432/eventra
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.jpa.hibernate.ddl-auto=update# JWT Configuration
jwt.secret=your-jwt-secret-key
jwt.expiration=86400000// src/config/api.js
const API_BASE_URL = process.env.NODE_ENV === 'production'
? 'https://api.eventra.com/api'
: 'http://localhost:8080/api';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
- Follow Java conventions for backend code
- Use ESLint and Prettier for frontend code
- Write comprehensive tests for new features
- Update documentation for API changes
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
Thanks to all the amazing people who have contributed to Eventra!
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! π