A Video Game Store application built using PostgreSQL, Liquibase, Spring Boot, Spring Sessions, and Vue.js.
- Login and Registration
- Game listing, editing, and deletion
- Spring Session-based authentication
- Filtering and sorting
- Simulated checkout process
- Change password, username, and email
Ensure the following tools are installed before setting up the application:
-
Clone the repository:
git clone https://github.com/confusedGustas/VideoGameStore cd VideoGameStore -
Set up environment variables:
create a .env file in the root directory and add the following:
DB_URL=jdbc:postgresql://localhost:5432/video_game_store DOCKER_DB_URL=jdbc:postgresql://database:5432/video_game_store DB_NAME=video_game_store DB_USER=postgres DB_PASSWORD=admin SPRING_USER=admin SPRING_PASSWORD=admin
-
Configure PostgreSQL:
- Create a new database named
video_game_store. - Leave the default settings as they are. Spring Boot will create the necessary tables.
- To adjust settings, edit the
.envfile.
- Create a new database named
-
Build and run the application:
cd frontend npm install npm run dev cd .. ./mvnw spring-boot:run
- The Spring Boot backend will start at http://localhost:8080/swagger-ui.html.
- The Vue.js frontend will run at http://localhost:8081.
(Optional) To run tests, execute:
./mvnw testEnsure Docker Desktop is running, as the tests utilize Docker containers.
To run the application using Docker, follow these steps:
-
Ensure Docker Desktop is installed and running.
-
Build and run the Docker containers:
docker compose up
This command will:
- Start the PostgreSQL database container.
- Launch the Spring Boot backend.
- Launch the Vue.js frontend.
-
Access the application:
- Backend: http://localhost:8080/swagger-ui.html
- Frontend: http://localhost:8081
Use
docker compose downto stop the containers when done.
This project is licensed under the MIT License.