Java web application for purchasing Tomorrowland tickets online, built with Spring Boot, Spring MVC, Thymeleaf, Spring Security, and PostgreSQL.
Production: tomorrowland-project-production.up.railway.app
| Role | Username | Password |
|---|---|---|
| Admin | admin |
admin123 |
| Buyer | register at /register |
your choice |
- Browse products and categories
- Add items to session-based cart
- Update quantities or remove items
- Register and login
- Checkout via PayPal or Cash on Delivery
- View order history
- Manage products and categories
- View all orders with filters
- View login audit log
| Layer | Technology |
|---|---|
| Backend | Spring Boot 3 |
| Web | Spring MVC + Thymeleaf |
| Security | Spring Security + JWT |
| Database | PostgreSQL |
| ORM | Spring Data JPA + Hibernate |
| Migrations | Flyway |
| Payment | PayPal Java SDK |
| Build | Maven + Docker |
| Hosting | Railway |
| Testing | JUnit 5 + Mockito + MockMvc |
| UI | Bootstrap 5 |
Browser
↓
Spring Security (session + JWT filter)
↓
Controllers (MVC + API)
↓
Service layer (@Transactional business logic)
↓
Repositories (JPA/Hibernate)
↓
PostgreSQL
- Java 21+
- Maven 3.9+
./mvnw spring-boot:runApp runs at http://localhost:8080.
docker build -t tomorrowland-shop .
docker run -p 8080:8080 tomorrowland-shop# all tests
./mvnw test
# full verification
./mvnw clean verifyDeployed on Railway with PostgreSQL and environment-based configuration.
Typical env vars:
SPRING_PROFILES_ACTIVEDATABASE_URLJWT_SECRETPAYPAL_CLIENT_IDPAYPAL_CLIENT_SECRETPAYPAL_MODE
src/
├── main/
│ ├── java/com/yourname/tomorrowlandshop/
│ │ ├── config/
│ │ ├── controller/
│ │ ├── controller/api/
│ │ ├── domain/
│ │ ├── repository/
│ │ └── service/
│ └── resources/
│ ├── db/migration/
│ ├── templates/
│ └── application*.properties
└── test/
└── java/com/yourname/tomorrowlandshop/
University Java Web project.