Telegram bot for Monero-Jobs group
A Monero Jobs Bot for Telegram
TL;DR
In my opinion, the Monero Jobs group on Telegram needs a bot to properly organize and manage (display, search, tag) entries so that users can concentrate on the content instead of going thru piles of offers and requests that are unstructured and mixed with discussions and other content. It would also make it easier for the moderators to manage the group.
I'm experienced with building Telegram bots and would program that bot in Python in about four weeks for 12 XMR.
Why is a Jobs Bot needed?
Since i searched for work that would be payed in XMR and since I'm a heavy Telegram user, i discovered the Monero Jobs & Proposals group that indexes work offers and work requests as well as proposals and is managed by community members that mostly also manage the Monero XMR group.
That group was exactly what I've searched for but i was kind of amazed to see that work offers and requests are managed solely by tagging. It means that the current system of listing entries is relying on the good will and understanding of the user that posts the entry.
Altho a pinned message is present in that group, we all know what happens on a daily basis: User doesn't read the pinned message, doesn't know how to properly post a request, posts a request without properly tagging it, admins have to intervene, potential request ends up in a discussion that involves a few users.
Admins are doing a great job in that TG group but i feel like the process of posting offers, requests and proposals could be structured better and the workload for admins could be significantly lowered if that group would have a bot that guides the user thru a workflow that ends in the creation of the desired entry.
The Monero community deserves a better solution then what is currently present.
How could it be done better?
Telegram bots are really cool! It's possible to get in a private chat with a bot and interact with him. Depending on what the use case is, the bot can for example guide the user thru a workflow and ask questions that the user has to answer.
Something like "What would you like to do?" and then there would be three buttons that the user could press: "Request Work", "Offer Work" and "Create Proposal" (actually also "My Entries" if the user already created entries). Depending on what the user chooses, another question like "Enter a title" could come up etc.
Entered data would be saved in a database after the workflow is finished and a notification will be posted to the Monero Jobs TG group. I can also imagine to integrate possibilities to opt-in for getting notified about new entries in one of the areas etc.
This behavior would have the following advantages:
- User has a visual interface that guides him thru a workflow
- User can always go back and correct his last data entry (most users don't know that you can edit your own Telegram posts)
- User provides exactly the data that is needed
- User input can be verified. Max length for title & content, price has to be a numeric value, tags have to be provided, etc.
- The process of entering the needed data for the entry doesn't pollute the TG group itself
- Bot can notify members of the group (by posting in the group) that a new entry is present and show for example the title or other details. On a button click, interested users could display and read the full content in a structured way (always the same layout)
- Rating system for users if desired (altho that could possible be gamed. Not sure if it's really a good idea - has to be discussed)
- The bot would be added to the Monero Jobs group and interested users could search entries by some specific criteria like:
- Offer or Request with highest / lowest price
- Newest or oldest entries
- Users with highest rating and their entries
- Tags
- Category (soft skills, programming, administration, knowledge, ...)
What could be the data that has to be entered for a entry:
- User
- Timespan
- Price
- Title
- Description
- Tags
- Category
- Attachements (optionally)
- ???
The details would need to be discussed with the TG group moderators and the community. I'm willing to develop everything they what if it stays in the outlined boundaries.
Why should it be me?
I really like programming bots for Telegram. I think it's fun and I've done a few already. I really enjoy it and since i totally love Monero, i think I'm a good match for this task :-)
I'm in love with Python and thus i would also implement this bot in Python. Specifically based on the awesome python-telegram-bot module.
Projects I've realized until now (all Python based)
- Tansanit - CLI wallet for Bismuth (BIS) cryptocurrency
- OpenCryptoBot - Telegram bot for cryptocurrency info (currently my most advanced software architecture)
- Telegram-TradeOgre-Bot - Encrypted Telegram bot for the TradeOgre exchange
- StelliteBot - Simple Telegram bot to manage a TG group
- TradeOgrePy - API wrapper for the TradeOgre exchange
- Telegram-Kraken-Bot - Interface for Kraken exchange. My first bot. Everything in one file and no OOP
(Currently I'm building a Telegram tipping bot for Bismuth cryptocurrency)
Links
- GitHub
- My Telegram handle '@endogen'
- StackOverflow Monero Profile - I'm #8 (closed) in the year rank toplist right now
Features and Costs
Features
- Source code will be open source
- Bot will only save as much data as is needed to provide the service. User can choose to delete all saved data related to his account
- Admin interface to add new admins and administer the bot in general
- Restarting it, shutting it down, some stats like how many entries there are, etc.
- I will support the bot with bugfixes in the future if needed and desired
- I'm open to extend the bot with new functionality in the future (multisig escrow, ...)
- Data will be saved in a database (SQLite file based) so that it can be easily moved and also displayed on a website. The interface to the database would be abstract enough so that it could be easily switched to another database.
- Every available command will be a dynamically loaded plugin that can be disabled / enabled / independently updated. Commands could be:
/search
/request
/offer
/proposal
/admin
- Apart from the mentioned commands, there would be an UI to manage own account, create new entries and list own entries
- Ridiculously easy update of plugins (every command will be a plugin) by drag and dropping the changed implementation (Python file) into a chat with the bot. That would of course only work for admins and no restart of the bot would be needed.
- Mature logging functionality with an additional command for the bot that would allow it to download (as a file download over Telegram) the latest logfile. Specific modules could easily be included / excluded from logging.
Costs
I would really be happy to work on this bot and it should be finished in about four weeks (around 2 or 3 hours of work per day) and i would require 12 XMR to do it. This proposal is valid until 1. December 2019. The one and only milestone is finishing the bot. After i finished it, i get payed IF the community decides that i fulfilled the goal. If not, i get nothing.
If such a bot is desired by the community and if i will be chosen to realize it and if it proves itself, then I'd also like to extend it in the future and possibly add escrow services that would involve the admins and a 2-of-3 multisig wallet and other features. But let's start simple.
Merge request reports
Activity
Hey everyone,
This is something @Endogen discussed with the Monero Jobs telegram chat group (https://t.me/MoneroJobs). We found out that users don't read pinned messages and he proposed us a way to make this work.
We suggested to share this proposal to the community and hear what the community would like to say about it. Posting jobs and work through the chat room is quite easy but messages get lost while people don't make the right hashtag search so his proposal sounds a good way to help members around the chat rooms.
Thank you @Endogen for your effort to make this happen.
Hey guys,
Event though I haven't comented on this proposal yet, I consider is something truly needed by the community.
I will share here why I consider this bot is necesary.
Currently Monero has a pretty low use as a currency, mostly being used for speculation purposes and on the dark markets while just few idealists who understand the ideology behind monero try to push it for more legit uses.
Now I consider the bot will help increase the velocity of Monero as money throught the use of it for the payment of the workers, thus increase the adoption and the Monero awarness (through jobs paid in Monero).
Right now the Monero Jobs grup has a few available listings, some users found work through the group, however the curent hashtag based system is not very efficient and user friendly.
I consider the bot would help automate and improve a lot the flow of posting and finding Monero paid jobs and help the users find a job or a worker acording to their needs.
Even though the proposal is for just a Telegram bot, I'm confident it can be expanded to other platforms (Matrix, iRC...)
Why I consider @Endogen is the right person to do it. First of all he is the one with the initiative for the bot. Secondly I have noticed he is very helpful with the new comers and people who encounter difficulties in the Telegram Monero chat group and has shown dedication to the Monero project.
Looking forward to having a Monero jobs bot as soon as possible.
I really like the idea! Making it easy for creators to find work payed for in XMR increases the sweat equity of the entire ecosystem.
Thinking about the proposal an idea came to mind: It would be cool if a creator could subscribe to categories. Ex. I am a graphic designer and subscribe to the category. Then the bot notifies me when a new offering with that categories is posted. Advantage is that I don't have to manually check each day for offers.
I also like the idea of a rating system, since it increases trust in a particular member. It would be good to have it for the contractor as well as the contractee. However, the possibility of gaming the system is something to be weary of. I don't know how to fix this apart from having the mods look over every job and very the work being done. Would be cumbersome, but maybe worthwhile?
Thanks for the comment!
Notifications
I briefly touched the topic in the proposal already. I can totally imagine having a subscription mechanismRating
I'm not sure if it is a good idea. I'd like to have it but i don't see a way to guarantee a fair rating process. Currently no idea how to do that without significant work from moderators. I don't really like the idea that mods have to verify something. Users should just interact between each other and mostly without any interaction from mods.But i can imagine something like a label for users --> "Trusted" that mods could add to users if they are long time members or something like that. Maybe that's an alternative. And if it is, then that could be done also purely with Telegram. See this screenshot and look at the right side of each message. You will see a label that the admin of that group (maybe also mods?) can set individually for each user:
EDIT: I've verified the label for the users and think that it's only possible because they are all admins in the group. So that will not work for us. If we want that then mods need to have the ability to set it and the bot has to save it (thanks for the hint John).
Edited by Endogen
I've changed the amount of XMR that is necessary to make this a reality from 6 XMR to 12 XMR since i'm really busy at the moment and want to work on other things that are more profitable. I will happily reduce the amount again after i have less work.
Since the proposal was valid until 1. December 2019 in it's older form, i feel like it's ok to change the amount.
Since this could lead to different opinions about the proposal, here is the reaction state before i changed the amount
Edited by Endogen@Endogen are you still interested in doing this?
I m interested in helping out, @Endogen