This is an event booking platform built with Spring Boot 4, Thymeleaf, Spring Security, and JPA.
For local development, it uses an H2 in-memory database by default.
- Java 17
- Maven, or the included Maven Wrapper (
./mvnw)
- Move to the project root.
cd event-platform- Start the application.
./mvnw spring-boot:run- Open the following URLs in your browser.
- Application:
http://localhost:8080 - H2 Console:
http://localhost:8080/h2-console
The default settings in src/main/resources/application.properties are:
- Database:
jdbc:h2:mem:testdb - H2 username:
sa - H2 password: empty
- Base URL:
http://localhost:8080
You can override the following values with environment variables:
APP_BASE_URLSUPPORT_EMAILSTRIPE_SECRET_KEYSTRIPE_WEBHOOK_SECRET
Example:
APP_BASE_URL=http://localhost:8080 \
SUPPORT_EMAIL=support@example.com \
./mvnw spring-boot:runSample data is inserted automatically on the first startup. You can log in with these test accounts:
- Customer:
customer@test.com/temp1111 - Organizer:
organizer@test.com/temp1111 - Organizer:
organizer2@test.com/temp1111 - Admin:
admin@test.com/temp1111
Sample categories, organizer profiles, plans, bookings, and invoice data are also created.
By default, the application uses an H2 in-memory database, so all data is lost when the application stops.
If you want to persist data locally, change the datasource setting in src/main/resources/application.properties:
# spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.url=jdbc:h2:file:./data/testdb./mvnw testUse this flow to verify that Stripe Checkout and the webhook integration work end to end.
- Prepare Stripe test credentials.
- You need two different Stripe credentials for this check:
STRIPE_SECRET_KEY: the Stripe test secret key used by the application to create Checkout Sessions.STRIPE_WEBHOOK_SECRET: the webhook signing secret used by the application to verify webhook events.- To get
STRIPE_SECRET_KEY, open the Stripe Dashboard, switch to test mode, and copy the secret key that starts withsk_test_. - To get
STRIPE_WEBHOOK_SECRET, start a webhook tunnel with the Stripe CLI:
stripe listen --forward-to localhost:8080/stripe/webhook- Keep this command running while you test the payment flow.
- Copy the signing secret displayed by the Stripe CLI. It starts with
whsec_. Set that value asSTRIPE_WEBHOOK_SECRET.
- Start the application with Stripe enabled.
STRIPE_SECRET_KEY=sk_test_xxxxx \
STRIPE_WEBHOOK_SECRET=whsec_xxxxx \
./mvnw spring-boot:run