A complete event ticketing and management platform with a modern Angular frontend and a robust Spring Boot backend API.
This is a full-stack application that provides:
- Frontend: Modern Angular 19 UI with responsive design for users and administrators
- Backend: RESTful API built with Spring Boot 3.1 for event and ticket management
The Backend API is deployed and publicly accessible:
Deployment Details:
- Platform: Render (Cloud Platform)
- Container: Docker
- Status: π’ Live and Running
- Database: H2 (In-Memory)
Note: This is a free tier deployment. The API sleeps after 15 minutes of inactivity. First request after sleep may take 30-60 seconds to respond.
Quick Test:
curl https://ticket-management-system-k1cg.onrender.com/api/eventsticket_management/
βββ frontend/ # Angular 19 UI application
β βββ src/
β βββ public/
β βββ angular.json
β βββ package.json
βββ backend/ # Spring Boot REST API
β βββ src/
β β βββ main/java/
β β βββ test/java/
β βββ pom.xml
β βββ README.md
βββ README.md # This file
- Node.js (v18 or higher)
- npm (v9 or higher)
- Angular CLI (v19 or higher)
- Java JDK 17 or higher
- Maven 3.6+
cd backend
mvn spring-boot:runThe backend API will be available at: http://localhost:8080
API Documentation (Swagger UI): http://localhost:8080/swagger-ui/index.html
cd frontend
npm install
npm startThe frontend will be available at: http://localhost:4200
- Browse events by categories (Music, Arts, Sports, etc.)
- View detailed event information
- Responsive design for all devices
- Search and filter events
- Dashboard with analytics and statistics
- Event management (Create, Read, Update, Delete)
- Visual charts for revenue and categories
- Event status tracking
- Framework: Angular 19 (Standalone Components)
- Language: TypeScript
- Styling: SCSS
- SSR: Angular Universal
| Route | Description |
|---|---|
/user |
User home page |
/user/event/:id |
Event details |
/admin/dashboard |
Admin dashboard |
/admin/events |
Event management |
For detailed frontend documentation, see the original README in the frontend/ directory.
- RESTful API for event and ticket management
- JPA/Hibernate for data persistence
- H2 in-memory database (development)
- Spring Security configuration
- Swagger/OpenAPI documentation
- Comprehensive test coverage
- Framework: Spring Boot 3.1.0
- Language: Java 17
- Database: H2 (in-memory)
- Security: Spring Security
- API Docs: SpringDoc OpenAPI
- Testing: JUnit 5, Mockito
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/events |
Get all events |
| GET | /api/events/{id} |
Get event by ID |
| POST | /api/events |
Create a new event |
| PUT | /api/events/{id} |
Update an event |
| DELETE | /api/events/{id} |
Delete an event |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/tickets/event/{eventId} |
Get tickets for an event |
| GET | /api/tickets/{id} |
Get ticket by ID |
| POST | /api/tickets/reserve/{ticketId} |
Reserve a ticket |
For detailed backend documentation, see backend/README.md
Update the Angular environment file to connect to the backend:
frontend/src/environments/environment.ts
export const environment = {
production: false,
apiUrl: 'http://localhost:8080/api'
};The backend is configured to allow CORS requests from the Angular frontend running on localhost:4200.
- URL:
jdbc:h2:mem:testdb - Username:
sa - Password:
password - Console: http://localhost:8080/h2
For production, configure a persistent database (PostgreSQL/MySQL) in backend/src/main/resources/application.properties
cd backend
mvn testTest Coverage: 36 tests across all layers (Repository, Service, Controller)
cd frontend
npm test- Swagger UI: http://localhost:8080/swagger-ui/index.html
- OpenAPI JSON: http://localhost:8080/v3/api-docs
- Backend README - Complete API documentation with examples
- Backend PROMPT_BUILD.md - Test case generation guide
- Development Mode: All endpoints are publicly accessible
- CSRF: Disabled for development
- Authentication: Not implemented (planned for future)
- Implement JWT-based authentication
- Add role-based access control (RBAC)
- Enable HTTPS
- Configure proper CORS policies
- Use environment-specific configurations
cd backend
mvn clean packagejava -jar target/ticket_management-1.0-SNAPSHOT.jarcd frontend
npm run buildThe production files will be in frontend/dist/event-management/
Create application-prod.properties for production:
server.port=8080
spring.datasource.url=jdbc:postgresql://localhost:5432/ticketdb
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.jpa.hibernate.ddl-auto=updateUpdate environment files in frontend/src/environments/
- Start Backend:
cd backend && mvn spring-boot:run - Start Frontend:
cd frontend && npm start - Access Application: http://localhost:4200
- Test Backend API: http://localhost:8080/swagger-ui/index.html
- Run Tests:
- Backend:
mvn test - Frontend:
npm test
- Backend:
curl -X POST http://localhost:8080/api/events \
-H "Content-Type: application/json" \
-d '{
"name": "Rock Concert 2026",
"date": "2026-06-15",
"location": "Madison Square Garden"
}'curl http://localhost:8080/api/eventscurl -X POST http://localhost:8080/api/tickets/reserve/1- User authentication and authorization (JWT)
- Payment gateway integration (Stripe/PayPal)
- Email notifications
- User profile management
- Booking history and management
- QR code generation for tickets
- Real-time updates using WebSockets
- Advanced analytics and reporting
- Social media integration
- Mobile app (React Native/Flutter)
- Implement Redis caching
- Add database migrations (Flyway/Liquibase)
- Set up CI/CD pipeline
- Add Docker containerization
- Implement rate limiting
- Add monitoring and logging (ELK Stack)
- Performance optimization
- Dynamic route prerendering requires additional configuration
- H2 database is for development only - configure persistent database for production
- CORS is currently permissive - restrict in production
- Frontend: Angular 19, TypeScript
- Backend: Spring Boot 3.1, Java 17
- Test Coverage: 36 backend tests (100% pass rate)
- API Endpoints: 8 RESTful endpoints
- Components: 6 Angular components
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License.
- Frontend: Angular 19 with standalone components
- Backend: Spring Boot 3.1 with comprehensive testing
For support and queries:
- Create an issue in the repository
- Email: support@blueticket.com
- Angular Team for the amazing framework
- Spring Boot Team for the excellent backend framework
- All open-source contributors
Built with β€οΈ using Angular 19 and Spring Boot 3.1