Skip to content

Java Spring Boot app for managing group meeting notifications on Telegram via a dedicated bot. Features REST endpoints for CRUD operations, utilizes a producer-consumer model, and employs a scheduler for timely reminders. Bot acts solely as a notification consumer, enhancing user experience.

Notifications You must be signed in to change notification settings

hakimfauzi23/group-telegram-meeting-reminder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Group Meeting Notification Application for Telegram using Java Spring Boot

This application enables the creation and management of group meeting notifications on Telegram through a Telegram Bot. It employs a producer and consumer-style and incorporates REST endpoints for convenient CRUD operations. The application is built with Java Spring Boot and utilizes a scheduler for sending reminders in the morning and before the start of the meeting. The meeting information can be managed solely via the provided REST API, and the Telegram Bot functions solely as a consumer for notifications without receiving any input.

App Flow

Features

  • Effortless creation of group meeting notifications on Telegram
  • Integration with a Telegram Bot for efficient notification delivery
  • Implementation of the producer and consumer architecture for optimized message handling
  • Scheduler for sending morning reminders and meeting start notifications

Installation

  1. Clone the repository: git clone https://github.com/hakimfauzi23/group-telegram-meeting-reminder.git
  2. Navigate to the project directory: cd group-telegram-meeting-reminder
  3. Config application.properties (if you don't have a telegram bot, please read Telegram API Docs )
  4. Create the database (the table will be automatically created if the properties is set spring.jpa.hibernate.ddl-auto=update)
  5. Start a rabbitMQ Application, here's my command for starting RabbitMQ on docker : docker run --rm -it -p 15672:15672 -p 5672:5672 rabbitmq:3.10.5-management
  6. Build the application: mvn clean install
  7. Run the application: java -jar target/group-reminder-bot-0.1.0.jar

Configuration

  1. Create a Telegram Bot through the BotFather on Telegram.
  2. Obtain the API token for the created bot.
  3. Configure the application with the obtained API token and other necessary properties.

Usage

  • Creating Group Meeting Notifications: Utilize the provided REST endpoints to create meeting notifications for specific Telegram groups.
  • Managing Meeting Notifications: Utilize the exposed CRUD operations to manage existing meeting notifications effectively.
  • Interacting with the Scheduler: Utilize the scheduler to send morning reminders and meeting start notifications.

API Endpoints

  • POST /api/messages - Create a new meeting notification.
  • GET /api/messages - Retrieve all meeting notification.
  • GET /api/messages/today - Retrieve all meeting notification that held today.
  • PUT /api/messages/{id} - Update a specific meeting notification.
  • DELETE /api/messages/{id} - Delete a specific meeting notification.

Dependencies

  • Java Development Kit (JDK) - Required for running the application.
  • Spring Boot - Framework for creating stand-alone, production-grade Spring-based applications.
  • Telegram Bot API - Telegram Bot API for sending messages.
  • Spring Web - Spring framework for building web applications.
  • RabbitMQ - RabbitMQ Message broker for producer and consumer style in sending telegram notification

Contributing

Contributions are welcome! If you encounter any issues or have suggestions for improvements, please feel free to open an issue or submit a pull request.

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

About

Java Spring Boot app for managing group meeting notifications on Telegram via a dedicated bot. Features REST endpoints for CRUD operations, utilizes a producer-consumer model, and employs a scheduler for timely reminders. Bot acts solely as a notification consumer, enhancing user experience.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages