A full-stack application with Spring Boot backend and ReactJS frontend.
Before running this application, make sure you have installed:
- Java 25 or higher
- Node.js 20 or higher
- PostgreSQL 17 or higher
- Maven 3.9 or higher
git clone https://github.com/vitalii-skl/groont.git
cd groontcd backend- Create a database in PostgreSQL
- Update
src/main/resources/application.json:
spring:
datasource:
url: jdbc:postgresql://localhost:5432/<your-database>
username: <your_username>
password: <your_password>./mvnw spring-boot:runOr build and run:
./mvnw clean package
java -jar targer/<application_name>.jarThe backend will start on http://localhost:8080
cd frontendnpm installnpm run devThe frontend will start on http://localhost:5173
It is possible to run the application in Docker without all the prerequisites above.
docker-compose -f docker-compose.dev.yml up --buildWhen running in development mode, the project creates persistent Docker volumes for the frontend and backend. This facilitates hot-reloading by syncing your local code changes with the containerized environment.
POSTGRES_DB=<your-database>
POSTGRES_USER=<your_username>
POSTGRES_PASSWORD=<your_password>
DATABASE_HOST=<your_database_hostname>
DATABASE_PORT=<your_database_port_number>This configuration file manages environment variables for your application, ensuring they remain protected from public exposure in source repositories such as GitHub.
docker-compose --env-file .env.prod -f docker-compose.prod.yml up --buildDocker generates anonymous cached images that accumulate with each restart. It's recommend regularly cleaning them up using docker image prune to prevent excessive disk usage.
docker image prune