Skip to content

confusedGustas/VideoGameStore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Video Game Store Application

A Video Game Store application built using PostgreSQL, Liquibase, Spring Boot, Spring Sessions, and Vue.js.

Features

  • Login and Registration
  • Game listing, editing, and deletion
  • Spring Session-based authentication
  • Filtering and sorting
  • Simulated checkout process
  • Change password, username, and email

Prerequisites

Ensure the following tools are installed before setting up the application:

Setup

  1. Clone the repository:

    git clone https://github.com/confusedGustas/VideoGameStore
    cd VideoGameStore
  2. 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
    
  3. 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 .env file.
  4. Build and run the application:

    cd frontend
    npm install
    npm run dev
    cd ..
    ./mvnw spring-boot:run

    (Optional) To run tests, execute:

    ./mvnw test

    Ensure Docker Desktop is running, as the tests utilize Docker containers.

Running with Docker

To run the application using Docker, follow these steps:

  1. Ensure Docker Desktop is installed and running.

  2. 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.
  3. Access the application:

    Use docker compose down to stop the containers when done.

License

This project is licensed under the MIT License.

Releases

No releases published

Packages

No packages published