Table of contents
- PROJECT : eventhubserver
- GETTING STARTED
- Few commands
- API Documentation & actuator
- GENERAL INFO
- CONTRIBUTE / CONTACT
- LICENCE
EventHub is a ticketing application designed for event industry professionals and the general public.
The primary goal of EventHub is to facilitate the management and sale of tickets for events by providing an interface for venue managers and end-users. On one side, professionals can manage events, venues, sessions, and pricing. On the other, the general public can view shows, make reservations, and purchase tickets.
Three-tier architecture : Presentation --> Business logic --> Data layer More information is to be found in the documentation section.
- Presentation Layer (front-end): Represented by event-hub-site, which is the user interface developed in Vue.js. This is the part visible to users (both the public and managers) for interacting with the application.
- Business Logic Layer (back-end): Represented by event-hub-server, which is the REST API written in Java/Spring Boot. This layer contains the business logic, such as data processing, event management, venue management, reservations, and more.
- Data Layer: During development, the application uses an H2 database and test data managed by Flyway.
- General Documentation of the project - such as functional requirements, database... mainly in french
- A wiki presents :
- a slideshow presentation for the application
- a video demonstration of the application and the commands to run the demo yourself
- the development process notes
| Software stack | CI/CD stack | Servers |
| ------------------------------- | ------------------------------------------- | ------- |
| SpringBoot, Gradle | | Tomcat |
| VueJs3, NPM | | |
| | | Apache |
| ------------------------------- | ------------------------------------------- | |
| Tests | Documentation | |
| ------------------------------- | ------------------------------------------- | |
| Junit, mockMVC, slice testing | Spring REST Docs | |
- Gradle 8.0.2
- Java 17.0.2
- Kotlin 1.8.10
- NPM 9.6.6
- Node v19.8.1
- Vue 3.3.2
- Vite 4.3.6
clone the project
git clone https://github.com/vifeng/tickettothemoon.git
start the Backend
cd event-hub-server
./gradlew bootRun
Access to the Application endpoints such as the EVENTS endpoint http://localhost:8080/api/events in your browser.
start the Frontend
cd event-hub-site
npm run dev
Access the application http://localhost:5173/ in your browser.
In the event-hub-server folder
./gradlew build -x test
# Build without the tests
./gradlew clean
# clean the build folder
CTL+C
# Shutdown the front or backend from the terminal
In the event-hub-site folder
npm list vue
# to check the vue version.
npm run dev
# run the application
npm run build
# build the application
./gradlew build
# build the app and generate documentation
Access to the API documentation at http://localhost:8080/api in your browser.
Sometimes the application may not start because the linting task is failing. If you encounter this issue, you can run the following commands:
./gradlew spotlessApply
# apply the linting rules
./gradlew check
# run all verification tasks, including tests and linting
./gradlew build
# build the app and generate documentation
Access to the actuator at http://localhost:8080/actuator in your browser.
- There are actuator health check and info routes as well:
The project is in development.
- The backend is almost finished. All the important buisness logic has been done and tested.
- The frontend is in progress. It only shows a few pages of some get requests to the API.
See the project's roadmap at github projects See the open issues for a list of proposed features (and known issues) at github issues
see functional requirements documentation
More information about the development process is to be found in the repository wiki
The documentation is depending on the tests results. Thus all the tests are passing otherwise the build couldn't be done.
See the open issues for a list of proposed features (and known issues) at the project's github issues
- Feel free to send pull requests.
- My issue tracker is available here: https://github.com/tickettothemoon/issues
- You can contact me on github.