{"id":19605248,"url":"https://github.com/macket/paidagogos_bot","last_synced_at":"2026-06-13T17:31:32.491Z","repository":{"id":101868854,"uuid":"254960645","full_name":"Macket/paidagogos_bot","owner":"Macket","description":"Telegram bot for remote learning","archived":false,"fork":false,"pushed_at":"2021-01-20T19:09:34.000Z","size":6414,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-26T16:24:54.673Z","etag":null,"topics":["python","telegram-bot"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Macket.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-11T21:44:41.000Z","updated_at":"2021-12-08T20:55:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"6ec7585a-45d3-40a4-9087-7d0c2d9b6a54","html_url":"https://github.com/Macket/paidagogos_bot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Macket/paidagogos_bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Macket%2Fpaidagogos_bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Macket%2Fpaidagogos_bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Macket%2Fpaidagogos_bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Macket%2Fpaidagogos_bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Macket","download_url":"https://codeload.github.com/Macket/paidagogos_bot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Macket%2Fpaidagogos_bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34294407,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-13T02:00:06.617Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["python","telegram-bot"],"created_at":"2024-11-11T09:42:03.866Z","updated_at":"2026-06-13T17:31:32.473Z","avatar_url":"https://github.com/Macket.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Paidagogos Bot\n\nPaidagogos is a Telegram bot for remote learning. It is recommended to use it in conjunction with a [Paidagogos Drawer](https://github.com/Macket/paidagogos_drawer), which provides the review interface for teachers.\n\nThere are two types of users: **teachers** and **students**. They can do the following things.\n\n#### Teachers\n\n- create classrooms and add students to them\n- assign tasks in any format: text, photo, video, files or audio messages\n- review submissions ([Paidagogos Drawer](https://github.com/Macket/paidagogos_drawer)), rate and comment them\n\n#### Students\n\n- get tasks from teachers\n- send submissions to teachers\n- get teachers reviews ([Paidagogos Drawer](https://github.com/Macket/paidagogos_drawer)) on their submissions as well as rates and comments\n\n## Getting Started\n\nPaidagogos bot requires Python 3.7 and packages specified in ```requirements.txt```.\n\nYou can install them with\n\n```\npip install -r requirements.txt\n```\n\nBefore you start Paidagogos it is necessary to create ```.env``` file:\n\n```\ntouch .env\n```\n\nand fill in this file according to the example below:\n\n```\nDEBUG = True\n\nBOT_TOKEN = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\nADMIN_ID = XXXXXXXXXXX\n\nDATABASE_URL = postgres://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n\nDB_NAME = paidagogos_db\nDB_USER = user\nDB_PASSWORD = XXXXXXXXXXX\nDB_HOST = localhost\n\nPROXY = https://XXX.XXX.XXX.XXX:XXXX\n\n```\n\n```DEBUG``` should be **False** in prod\n\n```BOT_TOKEN``` is the token got from [BotFather](https://t.me/BotFather)\n\n```ADMIN_ID``` is the telegram id of the admin\n\n```DATABASE_URL``` is used to access the database in prod\n\n```DB_NAME```, ```DB_USER```, ```DB_PASSWORD``` and  ```DB_HOST```  are used to access the database in dev\n\n```PROXY``` is used if Telegram is blocked in your country (also uncomment appropriate code in ***bot.py***)\n\n\nThen you can start Paidagogos bot with this command:\n\n```\npython app.py\n```\n\n\n## Use case\n\nLet's see how [Karl Weierstrass](https://en.wikipedia.org/wiki/Karl_Weierstrass) could teach [Sofya Kovalevskaya](https://en.wikipedia.org/wiki/Sofya_Kovalevskaya) if they had this bot.\n\nFirst of all, Karl should start the bot and create the classroom.\n\n![1](https://raw.githubusercontent.com/Macket/paidagogos_bot/master/img/readme/1.png)\n\nThen he invites Sofya.\n\n![2](https://raw.githubusercontent.com/Macket/paidagogos_bot/master/img/readme/2.png)\n\nAnd Sofya joins his classroom.\n\n![3](https://raw.githubusercontent.com/Macket/paidagogos_bot/master/img/readme/3.png)\n\nSo Karl can see her in the students list now.\n\n![4](https://raw.githubusercontent.com/Macket/paidagogos_bot/master/img/readme/4.png)\n\nTo create the new task for Sofya, Karl goes to **Tasks**, taps **New task** and sends the name of the task.\n\n![5](https://raw.githubusercontent.com/Macket/paidagogos_bot/master/img/readme/5.png)\n\nThen he sends the task itself.\n\n![6](https://raw.githubusercontent.com/Macket/paidagogos_bot/master/img/readme/6.png)\n\nAnd assigns it.\n\n![7](https://raw.githubusercontent.com/Macket/paidagogos_bot/master/img/readme/7.png)\n\nLet's return to Sofya and see that she got notified about the new task.\n\n![8](https://raw.githubusercontent.com/Macket/paidagogos_bot/master/img/readme/8.png)\n\nShe can view it.\n\n![9](https://raw.githubusercontent.com/Macket/paidagogos_bot/master/img/readme/9.png)\n\nSend her solution in any format.\n\n![10](https://raw.githubusercontent.com/Macket/paidagogos_bot/master/img/readme/10.png)\n\nAnd submit for Karl's review.\n\n![11](https://raw.githubusercontent.com/Macket/paidagogos_bot/master/img/readme/11.png)\n\nKarl can see now that he has submissions for review in the appropriate classroom task list.\n\n![12](https://raw.githubusercontent.com/Macket/paidagogos_bot/master/img/readme/12.png)\n\nHe has 1 submission for review and 0 reviewed submissions.\n\n![13](https://raw.githubusercontent.com/Macket/paidagogos_bot/master/img/readme/13.png)\n\nSo Karl starts to review Sofya's solution.\n\n![14](https://raw.githubusercontent.com/Macket/paidagogos_bot/master/img/readme/14.png)\n\nIf Paidagogos Bot is used in conjunction with a [Paidagogos Drawer](https://github.com/Macket/paidagogos_drawer), Karl can tap **Review** and make notes for Sofya in WEB interface.\n\n![demo](https://raw.githubusercontent.com/Macket/paidagogos_drawer/master/videos/readme/demo.gif)\n\nAs review is done Karl has the photo with his notes in the bot.\n\n![15](https://raw.githubusercontent.com/Macket/paidagogos_bot/master/img/readme/15.png)\n\nThen he writes comments for Sofya and rates her.\n\n![16](https://raw.githubusercontent.com/Macket/paidagogos_bot/master/img/readme/16.png)\n\nAfter that Sofya gets notified that her submission is reviewed and can see the result.\n\n![17](https://raw.githubusercontent.com/Macket/paidagogos_bot/master/img/readme/17.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmacket%2Fpaidagogos_bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmacket%2Fpaidagogos_bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmacket%2Fpaidagogos_bot/lists"}