{"id":16261403,"url":"https://github.com/ineshbose/boyd_bot_messenger","last_synced_at":"2025-03-16T13:30:54.764Z","repository":{"id":46052182,"uuid":"244728296","full_name":"ineshbose/boyd_bot_messenger","owner":"ineshbose","description":"Boyd Bot (Flask Version)","archived":false,"fork":false,"pushed_at":"2024-04-26T00:48:43.000Z","size":4921,"stargazers_count":6,"open_issues_count":16,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-27T09:34:06.836Z","etag":null,"topics":["bot","chatbot","dialogflow","facebook-messenger","flask","glasgow","timetable","university"],"latest_commit_sha":null,"homepage":"https://inesh.xyz/boyd_bot_messenger","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ineshbose.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-03-03T19:53:24.000Z","updated_at":"2022-11-23T17:37:08.000Z","dependencies_parsed_at":"2024-10-10T16:41:30.024Z","dependency_job_id":"1d6dcc44-61ba-4ac6-8264-ac004eb52b47","html_url":"https://github.com/ineshbose/boyd_bot_messenger","commit_stats":null,"previous_names":[],"tags_count":11,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ineshbose%2Fboyd_bot_messenger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ineshbose%2Fboyd_bot_messenger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ineshbose%2Fboyd_bot_messenger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ineshbose%2Fboyd_bot_messenger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ineshbose","download_url":"https://codeload.github.com/ineshbose/boyd_bot_messenger/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243815576,"owners_count":20352194,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["bot","chatbot","dialogflow","facebook-messenger","flask","glasgow","timetable","university"],"created_at":"2024-10-10T16:41:22.899Z","updated_at":"2025-03-16T13:30:53.331Z","avatar_url":"https://github.com/ineshbose.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ![Logo](https://raw.githubusercontent.com/ineshbose/boyd_bot_messenger/master/docs/images/readme.png)\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"#\" target=\"_blank\"\u003e\u003cimg alt=\"GitHub deployments\" src=\"https://img.shields.io/github/deployments/ineshbose/boyd_bot_messenger/boydbot?style=flat-square\"\u003e\u003c/a\u003e\n\u003ca href=\"https://app.codacy.com/manual/ineshbose/boyd_bot_messenger\" target=\"_blank\"\u003e\u003cimg alt=\"Codacy grade\" src=\"https://img.shields.io/codacy/grade/a0e3d46567f54d5790b43445759eb749?style=flat-square\"\u003e\u003c/a\u003e\n\u003ca href=\"https://codeclimate.com/github/ineshbose/boyd_bot_messenger\" target=\"_blank\"\u003e\u003cimg alt=\"Code Climate maintainability\" src=\"https://img.shields.io/codeclimate/maintainability/ineshbose/boyd_bot_messenger?style=flat-square\"\u003e\u003c/a\u003e\n\u003ca href=\"https://boyd-bot-messenger.readthedocs.io/en/latest/\" target=\"_blank\"\u003e\u003cimg alt=\"Read the Docs\" src=\"https://img.shields.io/readthedocs/boyd-bot-messenger?style=flat-square\"\u003e\u003c/a\u003e\n\u003ca href=\"https://libraries.io/github/ineshbose/boyd_bot_messenger\" target=\"_blank\"\u003e\u003cimg alt=\"Libraries.io dependency status for GitHub repo\" src=\"https://img.shields.io/librariesio/github/ineshbose/boyd_bot_messenger?style=flat-square\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/ineshbose/boyd_bot_messenger/releases\" target=\"_blank\"\u003e\u003cimg alt=\"GitHub tag (latest by date)\" src=\"https://img.shields.io/github/v/tag/ineshbose/boyd_bot_messenger?label=version\u0026style=flat-square\"\u003e\u003c/a\u003e\n\u003cbr\u003e\n\u003ca href=\"https://github.com/ineshbose/boyd_bot_messenger/blob/master/LICENSE\"\u003e\u003cimg alt=\"License\" src=\"https://img.shields.io/github/license/ineshbose/boyd_bot_messenger?style=flat-square\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/PyCQA/bandit\" target=\"_blank\"\u003e\u003cimg alt=\"Security: bandit\" src=\"https://img.shields.io/badge/security-bandit-yellow.svg?style=flat-square\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/psf/black\" target=\"_blank\"\u003e\u003cimg alt=\"Code style: black\" src=\"https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square\"\u003e\u003c/a\u003e\n\u003ca href=\"https://gitter.im/ineshbose/boyd_bot_messenger\" target=\"_blank\"\u003e\u003cimg alt=\"Gitter\" src=\"https://img.shields.io/gitter/room/ineshbose/boyd_bot_messenger?color=blueviolet\u0026style=flat-square\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/ineshbose/boyd_bot_messenger\"\u003e\u003cimg alt=\"Powered by Boyd Bot\" src=\"https://img.shields.io/badge/powered%20by-Boyd%20Bot-5c6cff?style=flat-square\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://www.facebook.com/uofgbot\" target=\"_blank\"\u003e\u003cimg alt=\"Facebook\" src=\"https://img.shields.io/badge/-Facebook-22488C?style=flat-square\u0026logo=facebook\u0026logoColor=white\u0026labelColor=22488C\"\u003e\u003c/a\u003e\n\u003ca href=\"https://m.me/uofgbot\" target=\"_blank\"\u003e\u003cimg alt=\"Messenger\" src=\"https://img.shields.io/badge/-Messenger-3CB0FF?style=flat-square\u0026logo=messenger\u0026logoColor=white\u0026labelColor=3CB0FF\"\u003e\u003c/a\u003e\n\u003ca href=\"https://www.behance.net/gallery/93421281/Glasgow-University-Timetable-Bot\" target=\"_blank\"\u003e\u003cimg alt=\"Behance\" src=\"https://img.shields.io/badge/-Behance-195CFF?style=flat-square\u0026logo=behance\u0026logoColor=white\u0026labelColor=195CFF\"\u003e\u003c/a\u003e\n\u003ca href=\"https://bot.dialogflow.com/boydbot\" target=\"_blank\"\u003e\u003cimg alt=\"Messenger\" src=\"https://img.shields.io/badge/-Dialogflow-FF9800?style=flat-square\u0026logo=dialogflow\u0026logoColor=white\u0026labelColor=FF9800\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\nThis repository is for the Flask version of the Boyd Bot - a chatbot helping university students with their timetable. \u003cbr /\u003e\n\n\n\n## 🔧 Setup\n\n### Cloning\n\nThe first step is to clone the repository in your preferred directory using\n\n```sh\n$ git clone https://github.com/ineshbose/boyd_bot_messenger\n$ cd boyd_bot_messenger\n```\n\nThis requires [Git](https://git-scm.com/) installed; you can also download a [ZIP](https://github.com/ineshbose/boyd_bot_messenger/archive/master.zip) instead.\n\n\n### Packages\n\nAll requirements have been listed in `requirements.txt`, they can be installed in your preferred environment using\n\n```sh\n$ pip install -r requirements.txt\n```\n\n\n### Environment Variables\n\nAccess tokens, keys, etc. have been hidden from the repository for obvious reasons. These are used as environment variables.\n\n```python\nimport os\n\nxyz = os.environ.get(\"XYZ_KEY\")\n```\n\nYou **must** replace these with your own. You can either just replace `os.environ.get()` with the value (**this is discouraged**), or use\n\n```sh\n$ set XYZ_KEY=\"random_key_value\"\n```\n\n\n\n## 🏛️ Want to use this for your university? [Fork it!](https://github.com/ineshbose/boyd_bot_messenger/fork)\n\nIt's lovely to know that you're considering to use this for your university. This project aims to act a base for many other chatbots. You can also [use this repository as a template](https://github.com/ineshbose/boyd_bot_messenger/generate). A good idea is to start development with the [terminal / CLI version](https://github.com/ineshbose/boyd_bot_terminal). The following are considerations / instructions that you should know about if you aren't aware:\n\n### Services\n\nThis version uses some external services that should be easily replaceable.\n\n* [Facebook Messenger](https://www.facebook.com/messenger): The idea for this project is to present the timetable without having to install another application. A large number of university students use Facebook and its messaging service - Messenger. Users are identified using their unique IDs generated by Facebook specific to the app.\n* [Dialogflow](https://dialogflow.com/): also known as API AI. This enables webhook, integration with Facebook Messenger (and also other messaging services if needed), intents and small talk.\n* [mongoDB](https://www.mongodb.com/): This is to store user details to acquire their timetable while being fast and convenient.\n\n### Instructions\n\nThe code is documented using _docstrings_ and on [Read the Docs](https://boyd-bot-messenger.readthedocs.io/en/latest/); make sure you go through it. Since this repository acts like a template, there is not much to change. Much of it is mentioned, for example\n\n```python\ntmzn = pytz.timezone(\"Europe/London\")   # Timezone\ncal_url = \"link/to/timetable.ics\"       # University ICS link\n```\n\n\nTemplates should also be tailored to your need. Go through the files in [templates](https://github.com/ineshbose/boyd_bot_messenger/blob/master/boyd_bot/templates) and [static](https://github.com/ineshbose/boyd_bot_messenger/blob/master/boyd_bot/static).\n\n### Deployment\n\nBe sure to do your research on where and how to deploy your code! Make sure that access tokens, keys, etc. are changed, and, along with the code \u0026 database, are **secure**.\n\n\n## 🙌 Contributions \u0026 Thanks\n\nContributions are more than welcome in any form, they are all allowed under the [MIT License](https://github.com/ineshbose/boyd_bot_messenger/blob/master/LICENSE)! 😄\n\nThere may be some planned updates or issues for this project. They're listed in the [issues section](https://github.com/ineshbose/boyd_bot_messenger/issues) with a helpful description (hopefully). Feel free to help out in order to solve these.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fineshbose%2Fboyd_bot_messenger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fineshbose%2Fboyd_bot_messenger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fineshbose%2Fboyd_bot_messenger/lists"}