🌐 Available languages: English | Українська
This project is a Spring Boot application that collects feedback through a Telegram bot, stores it in PostgreSQL, duplicates it in Google Docs, and automatically creates a Trello card for critical ratings (level 4–5).
To run the project, you need Docker and Docker Compose.
-
Install Docker Desktop from the official site: https://docs.docker.com/get-docker/
-
Verify installation:
docker --version docker compose version
In the project root, create a .env file based on .env.example and fill it with your values.
Example:
# Database
DB_URL=postgres:5432/feedbackdb
DB_USERNAME=postgres
DB_PASSWORD=postgres
# Telegram Bot
BOT_USERNAME=your_bot_username
BOT_TOKEN=your_bot_token
# Google Docs
DOC_ID=your_google_doc_id
# OpenAI
OPENAI_API_KEY=sk-xxxxxx
# Trello
TRELLO_API_KEY=your_api_key
TRELLO_API_TOKEN=your_api_token
TRELLO_LIST_ID=your_list_id
TRELLO_CRITICAL_LABEL_IDS=labelId1,labelId2To store feedback in Google Docs:
- Go to Google Cloud Console.
- Create a project and enable the Google Docs API.
- Create a service account and download the key in JSON format (
sa-key.json). - Rename it to
sa-key.jsonand place it insrc/main/resources.
To make the bot work, you need a Telegram Username and Token.
- Create a bot using @BotFather in Telegram.
- Obtain BOT_USERNAME and BOT_TOKEN.
- Add them to the
.envfile:
# Telegram Bot
BOT_USERNAME=your_bot_username
BOT_TOKEN=your_bot_token- Go to Trello API Key.
- Copy your API Key.
- Click the link to generate a Token, grant access, and save it.
Example:
TRELLO_API_KEY=ae639aab4c75aa2ee86eafb4f14b9e15
TRELLO_API_TOKEN=ded9dde13c993c50661fccdb60a947604b4639a97496227333ea528ed2c83930-
Find the
boardIdin your Trello board URL. Example:https://trello.com/b/80WRZ9Xt/sto→ boardId =80WRZ9Xt -
Make a request:
curl "https://api.trello.com/1/boards/<BOARD_ID>/lists?key=<API_KEY>&token=<API_TOKEN>" -
In the response, find the
idof the desired list.{ "id": "68bc2a6e9b0ed71abfdff172", "name": "To Do" }→
68bc2a6e9b0ed71abfdff172is your List ID.
-
Make a request:
curl "https://api.trello.com/1/boards/<BOARD_ID>/labels?key=<API_KEY>&token=<API_TOKEN>" -
Find the
idof the required labels. -
Add them to
.env, separated by commas:TRELLO_CRITICAL_LABEL_IDS=labelId1,labelId2
The project includes a docker-compose.yml that launches PostgreSQL, PgAdmin, and the application itself.
docker compose builddocker compose up -d- App: http://localhost:8080
- PgAdmin: http://localhost:80
Stop containers:
docker compose downView logs:
docker compose logs -f appNow the project is ready to use 🎉