/medicine-reminder

Primary LanguagePythonMIT LicenseMIT

ChatGPT prompt

I want you to act as a software developer. I will provide some specific information about a telegram bot requirements, and it will be your job to come up with an architecture and code for developing secure app with Python. My first request is 'I want a bot that reminds you the stuff you asked for it. main purpose is tracking the medicine time, user should be able to declare intervals for medicine e.g. a person takes a pill everyday at 9:00PM. Everyday at 9PM bot should send notification to the user.For database you can use sqllite .db extension'.

Answer from ChatGPT

Architecture:

  1. Telegram Bot API: We'll use the Telegram Bot API to interact with the Telegram platform and receive messages from users.

  2. SQLite Database: We'll use SQLite to store user information, including their chat ID, medicine intervals, and last reminder time.

  3. Scheduler: We'll implement a scheduler that runs periodically to check if it's time to send reminders to users.

Code:

  1. Set up the project:

    • Create a new Python project directory.
    • Set up a virtual environment and activate it.
    • Install the required packages, such as python-telegram-bot for interacting with the Telegram Bot API and apscheduler for scheduling tasks.
  2. Create the SQLite database:

    • Create a new SQLite database file with a .db extension.
    • Design the database schema with at least two tables: users and medicine_intervals.
    • The users table should store user information, including their chat ID.
    • The medicine_intervals table should store the medicine intervals for each user.
  3. Set up the Telegram bot:

    • Use the Telegram Bot API documentation to learn how to set up a bot, obtain an API token, and receive updates.
    • Set up the necessary event handlers to handle incoming messages, commands, and other relevant events.
  4. Implement the registration functionality:

    • When a user interacts with the bot for the first time, store their chat ID in the users table.
    • Provide a command (e.g., /setinterval) for users to set their medicine intervals.
    • Handle the /setinterval command and prompt the user to provide the desired interval.
  5. Store medicine intervals in the database:

    • When a user provides their desired medicine interval, store it in the medicine_intervals table along with their chat ID.
    • Update the interval if the user sets a new one.
  6. Implement the scheduler:

    • Use the apscheduler library to set up a scheduler that runs periodically (e.g., every minute).
    • In each run, fetch the current time and iterate through the medicine_intervals table.
    • Check if the current time matches any of the medicine intervals for each user.
    • If it's time for a reminder, send a notification to the user's chat ID using the Telegram Bot API.
  7. Set up error handling and logging:

    • Implement error handling to catch and handle any exceptions that might occur during the bot's execution.
    • Set up logging to record events and errors for debugging and monitoring purposes.
  8. Test and deploy the bot:

    • Test the bot by interacting with it in the Telegram app and verify that reminders are sent correctly.
    • Deploy the bot to a server or hosting platform so that it can run continuously.

Remember to handle edge cases, such as when a user wants to change their medicine interval or unsubscribe from reminders. Also, consider adding additional features like user authentication and error reporting.

Please note that the code provided here is an outline, and you'll need to write the specific implementation code based on your project's requirements and the libraries you choose to use.

Medicine Remainder

The Medicine Reminder Bot is a Telegram bot that helps users manage their medicine intake by sending reminders at specified intervals.

Features

Add a new medicine interval: Users can add a new medicine interval by providing the medicine name, day interval, and day hour in the format /new_medicine <medicine_name> <day_interval> <day_hour>. For example, /new_medicine Xanax 2 09:00 adds a new medicine interval for taking Xanax every 2 days at 09:00.

List all medicine intervals: Users can list all their medicine intervals by using the command /list. This command displays all the medicine intervals set by the user.

Delete a medicine interval: Users can delete a specific medicine interval by using the command /delete_medicine <medicine_name> <day_interval> <day_hour>. For example, /delete_medicine Xanax 2 09:00 deletes the medicine interval for taking Xanax every 2 days at 09:00.

Getting Started

To use the Medicine Reminder Bot, follow these steps:

Install the required dependencies by running:

Copy code

pip install -r requirements.txt

Create a Telegram bot and obtain its API token. You can follow the official Telegram documentation to create a bot and obtain the API token.

Update the TOKEN variable in the app.py file with your Telegram bot API token.

Start the bot by running:

Copy code

python app.py

Once the bot is running, you can interact with it using the available commands mentioned above.

Requirements

The Medicine Reminder Bot requires the following dependencies:

  • Python 3.6 or higher
  • python-telegram-bot library (install via pip install python-telegram-bot) Note The Medicine Reminder Bot uses the python-telegram-bot library to handle the Telegram bot functionality. It doesn't rely on an external scheduler. Instead, it internally checks for overdue medicines at regular intervals.

If you encounter any issues or have questions about the bot, feel free to refer to the python-telegram-bot library's documentation for more information and examples.