How kemalq/feedback-bot works
Feedback Processing System collects anonymous employee feedback through Telegram, processes it asynchronously, and routes analysis into tracking and resolution workflows. Users onboard with role and branch selections, submit text or voice feedback, and receive bot responses; critical findings can become Trello cards, while feedback is logged to Sheets. A separate admin API supports authentication, invite-token management, and feedback review/resolution. The graph follows the documented architecture and available entry-point contracts; detailed internal wiring for unsampled services is not assumed.
Main entry points: FeedbackProcessingServiceImpl.java Feedback Processing · MainServiceImpl.java Conversation Logic · RabbitMessageListener.java Message Listener · AuthController.java Auth Controller
Components 32
Telegram Interaction
- Webhook Controller
dispatcher/src/main/java/com/feedbackbot/bot/WebhookController.java - Update Processor
dispatcher/src/main/java/com/feedbackbot/bot/UpdateProcessor.java - Telegram Bot
dispatcher/src/main/java/com/feedbackbot/bot/TelegramBot.java - Messaging Application
node/src/main/java/com/feedbackbot/service/impl/MessagingApplicationServiceImpl.java - Conversation Logic
node/src/main/java/com/feedbackbot/service/impl/MainServiceImpl.java - Answer Consumer
dispatcher/src/main/java/com/feedbackbot/service/AnswerConsumer.java
Feedback Processing
- Event Producer
node/src/main/java/com/feedbackbot/service/impl/ProducerServiceImpl.java - Message Listener
node/src/main/java/com/feedbackbot/listener/RabbitMessageListener.java - Message Validator
node/src/main/java/com/feedbackbot/listener/MessageValidator.java - Feedback Processing
node/src/main/java/com/feedbackbot/service/impl/FeedbackProcessingServiceImpl.java - Voice Transcription
node/src/main/java/com/feedbackbot/integrations/ai/GroqTranscriptionServiceImpl.java - AI Analysis
node/src/main/java/com/feedbackbot/integrations/ai/SpringAIAnalysisServiceImpl.java - Google Sheets
node/src/main/java/com/feedbackbot/integrations/sheets/GoogleSheetsServiceImpl.java - Trello Integration
node/src/main/java/com/feedbackbot/integrations/trello/TrelloServiceImpl.java
Administration API
- Invite Tokens
rest-service/src/main/java/com/feedbackbot/token/service/InviteTokenServiceImpl.java - Auth Controller
rest-service/src/main/java/com/feedbackbot/auth/controller/AuthController.java - Authentication Service
rest-service/src/main/java/com/feedbackbot/auth/service/AuthServiceImpl.java - JWT Service
rest-service/src/main/java/com/feedbackbot/auth/service/JwtService.java - Feedback Controller
rest-service/src/main/java/com/feedbackbot/feedback/controller/FeedbackController.java - Feedback Service
rest-service/src/main/java/com/feedbackbot/feedback/service/FeedbackServiceImpl.java - Token Controller
rest-service/src/main/java/com/feedbackbot/token/controller/TokenController.java
Shared Data
- Feedback Repository
common-jpa/src/main/java/com/feedbackbot/dao/FeedbackMessageDAO.java - Auth Repositories
rest-service/src/main/java/com/feedbackbot/auth/dao/RefreshTokenDAO.java - Invite Repository
common-jpa/src/main/java/com/feedbackbot/dao/InviteTokenDAO.java
Other components
- Employee
- Telegram API
- RabbitMQ
- PostgreSQL
- Administrator
- Groq API
- Google Sheets API
- Trello API
Connections 37
- Employee → Telegram API: submits feedback
- Telegram API → Webhook Controller: delivers updates
- Webhook Controller → Update Processor: forwards update
- Update Processor → Messaging Application: dispatches update
- Messaging Application → Conversation Logic: handles conversation
- Conversation Logic → Invite Tokens: validates invite
- Conversation Logic → Event Producer: publishes feedback
- Event Producer → RabbitMQ: publishes event
- RabbitMQ → Message Listener: delivers event
- Message Listener → Message Validator: validates message
- Message Listener → Feedback Processing: processes message
- Feedback Processing → Voice Transcription: transcribes voice
- Voice Transcription → Groq API: requests transcription
- Feedback Processing → AI Analysis: analyzes feedback
- AI Analysis → Groq API: requests analysis
- Feedback Processing → Feedback Repository: persists feedback
- Feedback Repository → PostgreSQL: reads/writes
- Feedback Processing → Google Sheets: logs feedback
- Google Sheets → Google Sheets API: writes rows
- Feedback Processing → Trello Integration: routes critical issues
- Trello Integration → Trello API: creates cards
- Feedback Processing → RabbitMQ: publishes answer
- RabbitMQ → Answer Consumer: delivers answer
- Answer Consumer → Telegram Bot: sends response
- Telegram Bot → Telegram API: replies to user
- Administrator → Auth Controller: authenticates
- Auth Controller → Authentication Service: delegates auth
- Auth Controller → JWT Service: issues access token
- Authentication Service → Auth Repositories: stores tokens
- Auth Repositories → PostgreSQL: reads/writes
- Administrator → Feedback Controller: manages feedback
- Feedback Controller → Feedback Service: requests feedback
- Feedback Service → Feedback Repository: queries feedback
- Administrator → Token Controller: manages invites
- Token Controller → Invite Tokens: requests token operations
- Invite Tokens → Invite Repository: reads/writes tokens
- Invite Repository → PostgreSQL: reads/writes