{"id":17372139,"url":"https://github.com/juliuste/chore-score-bot","last_synced_at":"2025-04-08T03:34:49.976Z","repository":{"id":39988883,"uuid":"223044579","full_name":"juliuste/chore-score-bot","owner":"juliuste","description":"Telegram bot for randomly assigning chores to your flatmates.","archived":false,"fork":false,"pushed_at":"2023-10-08T03:33:43.000Z","size":4203,"stargazers_count":4,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-10-17T06:02:39.456Z","etag":null,"topics":["deployment","telegram-bot"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/juliuste.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}},"created_at":"2019-11-20T23:10:13.000Z","updated_at":"2022-05-20T14:49:15.000Z","dependencies_parsed_at":"2022-09-13T19:30:56.445Z","dependency_job_id":null,"html_url":"https://github.com/juliuste/chore-score-bot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juliuste%2Fchore-score-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juliuste%2Fchore-score-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juliuste%2Fchore-score-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juliuste%2Fchore-score-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/juliuste","download_url":"https://codeload.github.com/juliuste/chore-score-bot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223300833,"owners_count":17122700,"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":["deployment","telegram-bot"],"created_at":"2024-10-16T01:27:05.835Z","updated_at":"2024-11-06T07:32:58.787Z","avatar_url":"https://github.com/juliuste.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# chore-score-bot\n\nHas the dishwasher in your apartment been in dire need of unloading for days and none of your roommates (including you) feel like doing it? Does the garbage can attract more flies than the bowl of vinegar your parents advised you to put next to it? Do you feel like some people are doing more than others? There's a bot for that! Simply add the [chore-score-bot](https://t.me/ChoreScore_Bot) to your apartment's telegram group, track when people do chores and use the `/next` command to let the bot randomly assign a chore to someone who has done the least chores! [chore-score-bot](https://t.me/ChoreScore_Bot) also sports a vacation mode so that people enjoying their well-earned holidays aren't randomly yelled at to empty the trash can.\n\nThis is the backend for the \u003chttps://t.me/ChoreScore_Bot\u003e.\n\n[![License](https://img.shields.io/github/license/juliuste/chore-score-bot.svg?style=flat)](license)\n\n## Usage of the Bot\n\nAfter adding the bot to your group, use `/add \u003cuser\u003e` a couple of times to make the bot track scores for them. (The `\u003cuser\u003e` in no way has to correspond to any actual people in the group—Telegram bots aren't even allowed to see a list of group members.) When you've made a mistake, or someone moves out, use `/remove \u003cuser\u003e` to stop tracking them.\n\nWhenever someone does a chore, they or someone else should write `/give \u003cuser\u003e` to record a point for that user. If they do something worth more than one point, you can do `/give \u003cuser\u003e \u003camount\u003e`; the amount might be negative to subtract points.\n\nIf a chore needs doing, call `/next \u003cdescription of the chore\u003e` and the bot will pick a person with the lowest score randomly and also already give them a point—the bot assumes that people do the chore at some point. If the chore is worth more than one point, you can do `/next \u003camount\u003e \u003cdescription of the chore\u003e` (If the first part after `/next` looks like a number, the bot will interpret it as an amount.) If everyone is on vacation (see below), the bot tells you.\n\nThe `\u003camount\u003e`s might be any sequence of digits, possibly preceded by a sign.\n\nThe arguments to all commands must be separated by whitespace.\n\nWhen someone is on vacation or can otherwise not fairly be expected to do chores right now, type `/vacation \u003cuser\u003e`. They will not be assigned chores for the time being and receive a fair share of all points other people receive, so that they will stay at the same amount of points relative to the group's average. When they return from vacation, simply type `/vacation \u003cuser\u003e` again.\n\nTo see a table of everybody's scores and who is on vacation right now, use the `/scores` command. (Being on vacation is indicated in the table by a fun little emoji at the end of the line.)\n\n| Command                        | Effect                                |\n| ------------------------------ | ------------------------------------- |\n| `/add \u003cuser\u003e`                  | Start tracking score for _user_.      |\n| `/remove \u003cuser\u003e`               | Stop tracking score for _user_.       |\n| `/next \u003camount\u003e \u003cdescription\u003e` | Assign the described chore to a random person with the lowest score, giving them _amount_ points for it. _amount_ might be left out, it defaults to 1. |\n| `/give \u003cuser\u003e \u003camount\u003e`        | Modifies _user_'s score by _amount_. _amount_ defaults to 1 if left out. |\n| `/vacation \u003cuser\u003e`             | Toggle _user_'s vacation status.      |\n| `/scores`                      | Show a list of scores.                |\n\n## Usage of the Backend\n\n(If you want to set up your own copy of this bot for some reason.)\n\n1. Clone and install the repo:\n```\ngit clone https://github.com/juliuste/chore-score-bot.git\ncd chore-score-bot\nnpm install --production\n```\n2. Obtain a telegram token for your bot by contacting the `@BotFather` telegram account, and expose it as an environment variable named `TELEGRAM_TOKEN`.\n3. Set up a MongoDB instance, expose an appropriate [MongoDB connection URI](https://www.mongodb.com/docs/manual/reference/connection-string/) as an environment variable named `MONGODB_URI`.\n4. Store the name of the database the bot should use as the environment variable `MONGODB_DATABASE`. (Within that database, the bot will create a collection named `users` where it stores all its information.)\n5. Run `npm start`.\n\n## Contributing\n\nFor development and testing, you should of course drop the `--production` flag during installation. See the `package.json` for relevant npm scripts.\n\nIf you found a bug or want to propose a feature, feel free to visit [the issues page](https://github.com/juliuste/chore-score-bot/issues).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuliuste%2Fchore-score-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuliuste%2Fchore-score-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuliuste%2Fchore-score-bot/lists"}