A microservices-based event management platform built with Spring Boot, React, and Vite.
π§βπΌ Organizer Dashboard
ποΈ Attendee Dashboard
EventFlow is a comprehensive event management system featuring microservices architecture, JWT authentication, role-based access control, and a modern React frontend. The platform supports event organizers and attendees with complete event lifecycle management.
Key Highlights:
- β Fully implemented JWT authentication & authorization
- β 8 microservices with service discovery
- β Role-based access (Admin, Organizer, Attendee)
- β Real-time analytics and dashboard
- β Complete booking and ticketing system
- β User profile management with preferences
- β Docker-ready production deployment
git clone https://github.com/HasithFernando/event-management-system.git
cd event-management-system
docker-compose up --buildAccess the application:
- π Frontend: http://localhost:3000
- π Eureka Dashboard: http://localhost:8761
- π API Gateway: http://localhost:8080
See DEPLOYMENT.md for detailed local setup instructions.
Frontend (React/Vite) β API Gateway (JWT Auth) β Microservices β H2 Databases
β
Eureka Discovery
| Service | Port | Description |
|---|---|---|
| Frontend | 3000 | React + Vite application |
| API Gateway | 8080 | JWT authentication & routing |
| Eureka Server | 8761 | Service discovery |
| Config Server | 8888 | Centralized configuration |
| Auth Service | 8082 | User authentication & JWT |
| Event Service | 8081 | Event management |
| Payment Service | 8083 | PayHere payment integration |
| Ticket Service | 8084 | Ticket operations |
| Notification Service | 8085 | Event notifications |
| Analytics Service | 8086 | Analytics & reporting |
| Admin Service | 8087 | Admin operations |
| Profile Service | 8088 | User profile management |
Backend:
- Spring Boot 3.2.5, Java 17
- Spring Cloud (Gateway, Eureka, Config)
- JWT authentication (JJWT)
- H2 in-memory databases
- OpenFeign for inter-service communication
Frontend:
- React 18 with Vite
- TypeScript
- Tailwind CSS
- React Router
- Recharts for analytics
DevOps:
- Docker & Docker Compose
- Multi-stage Docker builds
- Nginx for frontend serving
- β JWT-based authentication
- β Bcrypt password hashing
- β Role-based access control (Admin, Organizer, Attendee)
- β API Gateway security filtering
- β Protected routes and endpoints
Admin:
- Dashboard with system-wide analytics
- User management (view, delete, ban/unban)
- Event management (all events)
- Access to all features
Organizer:
- Create and manage events
- View attendee lists
- Track ticket sales
- Event analytics
Attendee:
- Browse and search events
- Purchase tickets
- View booking history
- Event notifications
- π Event creation and management
- π« Ticket purchasing and management
- π₯ Attendee registration and tracking
- π Analytics dashboard with charts
- π Event search and filtering
- π§ Notification system
- π³ Booking and payment tracking
All endpoints accessible through API Gateway at http://localhost:8080
POST /api/auth/register # User registration
POST /api/auth/login # User login (returns JWT)
GET /api/events # List all events
POST /api/events # Create event (Organizer/Admin)
GET /api/events/{id} # Get event details
PUT /api/events/{id} # Update event (Organizer/Admin)
DELETE /api/events/{id} # Delete event (Admin)
GET /api/attendees # List attendees
POST /api/attendees # Register attendee
GET /api/attendees/{id} # Get attendee details
PUT /api/attendees/{id}/status # Update status
GET /api/tickets # List tickets
POST /api/tickets # Purchase ticket
GET /api/tickets/{id} # Get ticket details
GET /api/analytics/overview # System overview
GET /api/analytics/revenue # Revenue data
GET /api/admin/dashboard/stats # Dashboard statistics
GET /api/admin/events # All events
GET /api/admin/users # All users
DELETE /api/admin/users/{id} # Delete user
Security: All endpoints (except /api/auth/*) require valid JWT token in Authorization header.
Create frontend/.env.local:
VITE_API_URL=http://localhost:8080JWT secret configured in backend/auth-service/src/main/resources/application.yml:
jwt:
secret: <base64-encoded-secret>
expiration: 86400000 # 24 hoursNote: Same JWT secret must be configured in backend/api-gateway/src/main/resources/application.yml.
event-management-system/
βββ backend/
β βββ api-gateway/ # JWT authentication & routing
β βββ eureka-server/ # Service discovery
β βββ config-server/ # Configuration server
β βββ auth-service/ # Authentication & user management
β βββ event-service/ # Event CRUD operations
β βββ attendee-service/ # Attendee management
β βββ ticket-service/ # Ticket operations
β βββ notification-service/ # Notifications
β βββ analytics-service/ # Analytics & reporting
β βββ admin-service/ # Admin operations
βββ frontend/ # React + Vite application
βββ config-repo/ # Shared configurations
βββ docker-compose.yml # Docker orchestration
βββ DEPLOYMENT.md # Deployment guide
βββ README.md # This file
# Build all services
./build.sh # Linux/Mac
build.bat # Windows
# Build individual service
cd backend/auth-service
mvn clean package -DskipTests
# Build frontend
cd frontend
npm install
npm run builddocker-compose up --build # Build and start all services
docker-compose down # Stop all services
docker-compose logs -f # View logs
docker-compose ps # List containers
docker-compose down -v # Remove volumesβ Implemented:
- JWT token-based authentication
- Password hashing with BCrypt
- API Gateway security filtering
- Role-based access control
- Protected routes
- Change default admin password
- Use environment variables for secrets
- Enable HTTPS/TLS
- Implement rate limiting
- Add CORS configuration
- Set up proper logging and monitoring
- Use managed databases (not H2)
Services not registering with Eureka:
- Wait 30-60 seconds for registration
- Check Eureka dashboard at http://localhost:8761
JWT token errors:
- Verify JWT secrets match in auth-service and api-gateway
- Check token expiration time
Port conflicts:
- Stop conflicting services or change ports in
application.yml
Docker issues:
docker-compose down -v
docker system prune -f
docker-compose up --buildFor detailed troubleshooting, see DEPLOYMENT.md.
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions welcome! Please ensure:
- Code follows existing patterns
- JWT authentication is maintained
- Role-based access is respected
- Documentation is updated
For issues or questions:
- Check service health:
http://localhost:8080/actuator/health - View Eureka dashboard:
http://localhost:8761 - Check logs:
docker-compose logs [service-name]
Version: 1.0.0 | Status: Production Ready | License: MIT




