- Notifications
You must be signed in to change notification settings - Fork0
Simple Event Management System
License
jpwhite3/eventr
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A comprehensive, full-stack event management platform designed for corporate environments. Built with Spring Boot, React, and TypeScript, Eventr provides seamless event creation, registration, and management capabilities with modern features like markdown support, multi-session events, and advanced analytics.
- Event Creation: Rich event builder with image uploads and markdown-enabled descriptions
- Multi-Session Support: Create complex events with multiple sessions and prerequisites
- Event Types: Support for in-person, virtual, and hybrid events
- Advanced Analytics: Real-time attendance tracking and comprehensive reporting
- Capacity Management: Waitlist functionality and session capacity controls
- Easy Registration: Streamlined registration process with custom forms
- QR Code Check-in: Mobile-friendly check-in process
- Bulk Operations: Efficient bulk check-in and user management
- Offline Support: Offline check-in capabilities for events
- Markdown Support: Rich text formatting for event descriptions
- Responsive Design: Mobile-first UI with Bootstrap 5
- RESTful API: Well-documented Spring Boot backend
- File Storage: AWS S3 integration for image and document storage
- Email Integration: Automated email notifications
- Security: Role-based access control and secure authentication
- Webhook System: Event-driven integrations with external systems
- SOLID Architecture: Clean, testable code following SOLID principles
- Java 21 (LTS)
- Maven 3.9.6+
- Node.js 18+
- npm 10+
- Docker & Docker Compose
# Clone the repositorygit clone https://github.com/jpwhite3/eventr.gitcd eventr# Start all services with Docker Composedocker-compose up -d# Initialize AWS services (LocalStack)chmod +x localstack-init/init-aws.sh# Start the backend./mvnw spring-boot:run -Pbackend# In another terminal, start the frontendcd frontendnpm installnpm start# Optional: Start webhook test client for local developmentcd webhook-clientnpm installnpm start
# Option 1: Full development environment with webhook testing (Recommended)chmod +x start-dev-with-webhooks.sh./start-dev-with-webhooks.sh# Option 2: Basic development script (Unix/Mac)chmod +x start-dev.sh./start-dev.sh# Option 3: Use development script (Windows)start-dev.bat# Option 4: Manual setup with Maven profiles./mvnw spring-boot:run -Pdev# Starts both backend and frontend
- Frontend:http://localhost:3001
- Backend API:http://localhost:8080/api
- API Documentation:http://localhost:8080/swagger-ui.html
- H2 Console (dev):http://localhost:8080/h2-console
- MailHog UI:http://localhost:8025
- LocalStack Dashboard:http://localhost:4566
- Webhook Test Client:http://localhost:3002
📖Complete Documentation - Comprehensive guides for developers and integrators
- API Documentation - Complete REST API reference
- Webhook Integration - Event-driven integration guide
- Local Development - Development environment setup
- Architecture Guide - System design and patterns
eventr/├── src/main/kotlin/com/eventr/ # Backend (Spring Boot + Kotlin)│ ├── controller/ # REST API controllers│ ├── service/ # Business logic layer│ ├── model/ # Data models│ ├── repository/ # Data access layer│ └── config/ # Configuration classes├── frontend/ # Frontend (React + TypeScript)│ ├── src/components/ # Reusable UI components│ ├── src/pages/ # Page components│ ├── src/api/ # API client│ └── public/ # Static assets├── src/test/ # Backend tests└── docker-compose.yml # Local development services
Backend:
- Spring Boot 3.3.2
- Kotlin
- JPA/Hibernate
- PostgreSQL
- AWS S3 (via LocalStack for dev)
- Maven
Frontend:
- React 18.2.0
- TypeScript 5.9.2
- Bootstrap 5
- React Router
- Axios
- React Markdown
Development:
- Docker & Docker Compose
- Testcontainers
- LocalStack (AWS simulation)
- MailHog (email testing)
The application includes several reusable components:
- Event Builder: Rich form with markdown preview
- Advanced Analytics Dashboard: Real-time charts and metrics
- QR Scanner: Mobile-optimized check-in interface
- Form Builder: Dynamic form creation for registrations
- Session Builder: Multi-session event configuration
- Bulk Operations: Batch user management tools
Key API endpoints include:
Events & Registration:
GET /api/events # List eventsPOST /api/events # Create eventGET /api/events/{id} # Get event detailsPUT /api/events/{id} # Update eventDELETE /api/events/{id} # Delete eventGET /api/registrations # List registrationsPOST /api/registrations # Register for eventPOST /api/check-in/{id} # Check in attendeeGET /api/attendance/{id} # Get attendance dataGET /api/sessions # List sessionsPOST /api/sessions # Create session
Webhooks:
GET /api/webhooks # List webhooksPOST /api/webhooks # Create webhookGET /api/webhooks/{id} # Get webhook detailsPUT /api/webhooks/{id} # Update webhookDELETE /api/webhooks/{id} # Delete webhookPOST /api/webhooks/{id}/test # Test webhook deliveryPUT /api/webhooks/{id}/secret # Regenerate webhook secret
See ourAPI Documentation for complete endpoint details.
# Run all tests./mvnwtest# Run tests with Testcontainers./mvnwtest -Ptest# Frontend testscd frontendnpmtest# Run with coveragenpmtest -- --coverage
- Backend: JUnit 5 + Spring Boot Test + Testcontainers
- Frontend: Jest + React Testing Library
- Integration: Testcontainers for database and AWS services
- E2E: Planned Cypress integration
# Build backend./mvnw clean package -DskipTests# Build frontendcd frontendnpm run build# Build Docker imagedocker build -t eventr:latest.
We welcome contributions! Please see ourContributing Guide for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Make your changes
- Run tests (
./mvnw test && cd frontend && npm test
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Follow existing code style and conventions
- Write tests for new features
- Update documentation as needed
- Use meaningful commit messages
- Keep PRs focused and atomic
- Mobile app (React Native)
- Advanced reporting dashboard
- Calendar integrations
- SSO/LDAP authentication
- Multi-tenant architecture
- API rate limiting
- Advanced notification system
- Integration marketplace
Security is a top priority. Please report vulnerabilities through GitHub issues or contact the maintainers directly.
This project is licensed under the MIT License - see theLICENSE file for details.
- Documentation: Check ourdocs
- Issues:GitHub Issues
- Discussions:GitHub Discussions
- Spring Boot team for the excellent framework
- React community for the amazing ecosystem
- All contributors who make this project possible
About
Simple Event Management System
Resources
License
Contributing
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Contributors2
Uh oh!
There was an error while loading.Please reload this page.