Skip to content

Codeboy20/Eventra

Β 
Β 

Repository files navigation

Eventra πŸŽ‰

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.

License Java Spring Boot React

🌐 Live Demo

πŸ“Š Project Insights

🌟 Stars 🍴 Forks πŸ› Issues πŸ”” Open PRs πŸ”• Closed PRs πŸ› οΈ Languages πŸ‘₯ Contributors
Stars Forks Issues Open PRs Closed PRs Languages Count Contributors Count
## πŸ“‹ Table of Contents

✨ Features

🎯 Core Functionality

  • 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

πŸ—οΈ Platform Features

  • 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

πŸ› οΈ Tech Stack

Backend

  • 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

Frontend

  • 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

DevOps & Infrastructure

  • Environment Profiles: Development, Production, Azure
  • Version Control: Git with comprehensive documentation
  • Deployment: Vercel for frontend hosting

πŸ—οΈ Architecture

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

πŸš€ Quick Start

Prerequisites

  • Node.js 16 or higher
  • npm or yarn
  • Git

Clone the Repository

git clone https://github.com/SandeepVashishtha/Eventra.git
cd Eventra

Frontend Setup

# Install dependencies
npm install

# Start the development server
npm start

The application will be available at http://localhost:3000

πŸ”§ Environment Configuration

Frontend Environment Variables

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

πŸš€ Deployment

Frontend Deployment (Vercel)

  1. Connect to Vercel:
    • Import your GitHub repository to Vercel
    • Set build command: npm run build
    • Set output directory: build
  2. Set Environment Variables in Vercel dashboard:
    • REACT_APP_API_URL: URL of your backend API

πŸ“± Frontend Components

Key Components

Pages

  • 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

Authentication

  • Login/Signup - User authentication system
  • ProtectedRoute - Route protection for authenticated users
  • AuthContext - React context for authentication state

Dashboard Components

  • UserDashboard - Personalized user interface
  • AdminDashboard - Administrative controls and analytics

Common Components

  • Navbar - Navigation header
  • Footer - Site footer
  • Loading - Loading indicators
  • ErrorMessage - Error display component
  • ScrollToTop - Scroll to top functionality

🀝 Contributing

We welcome contributions! To get started:

  1. Fork the repository
  2. Create a feature branch:
    git checkout -b feature/amazing-feature
    
  3. Commit your changes:

git commit -m "Add some amazing feature"

  1. Push to your branch: git push origin feature/amazing-feature

  2. Open a Pull Request

Development Guidelines

  1. Follow Java coding conventions for backend
  2. Follow React best practices for frontend
  3. Write meaningful commit messages
  4. Update documentation for new features
  5. Test thoroughly before submitting PRs

Code Structure

  • 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

πŸ“„ License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

πŸ™ Acknowledgments

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

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

Database Setup

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

Production Deployment

  1. Backend Build

    cd backend
    .\mvnw.cmd clean package -Pprod
  2. Frontend Build

    cd frontend
    npm run build

πŸ“š API Documentation

Comprehensive API documentation is available through multiple channels:

Interactive Documentation

Documentation Files

🎨 Frontend Components

Core Components

  • 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

Feature Components

  • 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

Auth Components

  • 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

Utility Components

  • Loading - Loading spinner for async operations
  • ErrorMessage - Error display component
  • SearchFilter - Reusable search and filter component

βš™οΈ Configuration

Frontend Configuration

API Configuration

// 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 start

Environment Variables

  • REACT_APP_API_URL: Backend API base URL
  • REACT_APP_DEBUG: Enable debug mode

🀝 Contributing

We welcome contributions! Please follow these guidelines:

Development Workflow

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'Add amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

Code Standards

  • 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

Getting Started for Contributors

  1. Set up the development environment as described in the Quick Start section
  2. Explore the codebase structure
  3. Check existing issues or propose new features
  4. Follow the coding standards and testing requirements

πŸ“„ License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

πŸ”— Links

πŸ€πŸ‘€ Contributors

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. πŸ’–πŸ‘

Contributors

Contributors

See the full list of contributors and their contributions on the GitHub Contributors Graph.

Contributor updates automatically every 24 hours

πŸš€ Want to contribute?

We'd love your help! Follow the development workflow and code standards outlined above to get started.

πŸ‘₯ Maintainers


Crafted with ❀️ for our amazing community. Let the events begin and the celebrations flow! πŸŽ‰

About

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.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Β 
Β 
Β 

Contributors

Languages

  • JavaScript 85.6%
  • CSS 14.2%
  • HTML 0.2%