Skip to content

votingly/votingly-app

Repository files navigation

logo

Empowering Insights, One Question at a Time

version stability-beta stars issues license

Built in 🇧🇪 with ❤️ and:

Spring Boot RabbitMQ React Postgres Terraform Google Cloud

About

Votingly is a comprehensive web application designed to streamline the process of creating, distributing, and analyzing surveys. It caters to businesses, educators, researchers, and individuals seeking to gather insights and feedback efficiently.

Build and run

Local

./gradlew clean build
docker compose up -d
java -jar -Dspring.profiles.active=dev build/libs/votingly-app-17.0.10.jar

Access at localhost:8080

Dev Container

./gradlew clean -Dspring.profiles.active=testcontainer bootJar
java -jar -Dspring.profiles.active=devcontainer build/libs/votingly-app-17.0.10.jar

Dockerize

docker build --tag=votingly:latest .
docker run -p 8080:8080 -e "SPRING_PROFILES_ACTIVE=devcontainer" votingly:latest

# To run on same network in dev container use --network=votingly_default

Deploy

Requirements

  • Open this project
  • In GCP IAM - Create your service account with 'Compute Admin', ‘DNS Admin’, ‘Service Account Admin’, ‘Service Account User’ permission. Then put its key in deploy/.creds and rename to 'gcloud_sa_compute_admin.json'
  • Install Terraform (or see VScode dev containers on how to open our project in a container)

Steps

cd deploy/prod

Initialize (only first time)

terraform init

Get a preview of changes that Terraform plans to make to infrastructure

terraform plan

Execute the actions proposed in Terraform plan

terraform apply

Destroy all remote objects managed by Terraform

terraform destroy

Devevelopment

npm init
docker compose up -d

Run Tests (specify spring active profile)

./gradlew -PspringProfilesActiveTests=<profile_name> check

Continuously rebuild on code changes

./gradlew -t classes

About

Web application for creating and publishing surveys

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors