Page MenuHomePhabricator

Develop a mechanism to send Wikimedia-specific Zulip welcome messages to newcomers
Closed, ResolvedPublic

Description

Proposal: We could have a personal bot for Wikimedia-Zulip that sends customized messages to new users who sign-up and/or who ask for information on getting started.


Background

New contributors find their way to Wikimedia's Zulip group chat quite frequently. It is also used for GSoC, Outreachy and GSoD discussions. One of the first things they usually ask is information on contributing and getting started. The answer to this seems to be fairly consistent, i.e. pointing them to https://www.mediawiki.org/wiki/How_to_contribute, https://www.mediawiki.org/wiki/New_Developers, https://www.mediawiki.org/wiki/Good_first_bugs, etc.

I believe a mechanism to automate this process would be helpful because:

  • It sometimes takes multiple hours/days for experienced users to reply to newcomers' queries
  • Having a welcome message from the org when we sign-up is just a nice thing to have

Current state of affairs

Currently, Zulip does not support a feature that would allow us to customize the Welcome messages directly.
I looked it up and found a 2017 Code-In task (https://codein.withgoogle.com/archive/2017/organization/5080845647872000/task/5498541149519872/) related to this.
Going through their codebase,

Proposed Features

  • Welcome new members and share with them kick-start resources related to Wikimedia Outreach projects.
  • Provide help around FAQs (for example by using the following syntax: +search-faqs: <then question>), so we don't wait for a human (waste of time) and also avoid repeating answers.
  • Direct channel members to the relevant members and/or relevant streams/topics.
  • Bridge communication between a Zulip Stream, say 'Technical Support' and the IRC channel #wikimedia-tech.

(Feel free to propose more features in the comments section or in your GSoC proposals, we can then discuss their feasibility. :) )

Microtasks:

  1. Improve some Toolforge documentation pages: T245685, T245454
  2. Tasks labelled good first task and/or patch-welcome

Mentors: PM - @Pavithraes, SMs - [ @Medhabansal & @D3r1ck01 ]
Required skills: Python3 (+any Python framework - Flask, Django), JavaScript (+any JS framework - NodeJS), Linux Administration (Toolforge related), Technical Writing.


Abstract

goodbot is a help-chatbot intended for helping out new applicants of Wikimedia Outreach programs. The bot is designed to be accurate, modular, intelligent and most importantly, simple. The primary functioning of a help(chat)bot is to assist people and goodbot does that via simple, succinct help messages to lead its users to the right place, whether that be the GSoC 2020 instructions or Outreachy Round 21 project ideas, goodbot intends to do its job perfectly, all the time - and all of that is achieved with the help of the Zulip real-time API.

Zulip's real-time API is intended as a catch-all method to allow functioning of external integrations without using higher-level APIs, this will allow our bot to remain active all the time, listening in on each message and enabling it to activate anytime at our cue (such as "help me", or even "search what is the best way to write an abstract") instead of being limited to Zulip-provided webhooks and configuration limitations such as supervisord and zulip-botserver.

goodbot is always-on and ready to assist you and all it needs is an opportunity.

Currently being tasked in T247879: [Proposal][Final] goodbot: a simple, friendly bot for Wikimedia Zulipchat
If you have any feedback, please do tell us here: T252020: goodbot: Gather community opinion and research on required features

Related Objects

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

@Shivanshu1086 Thanks for your interest! We haven't finalized the mentors for this project, so I'd suggest you continue working on other open tasks. :) See: good first task , Good first bugs and New Developers. If you have any questions, reach out to us on the Zulip Stream for GSoC 2020. =D

Hello @srishakatux @Pavithraes

I have seen this problem so many times, experienced users repeatedly replying to new members with the same message which contains the links mentioned in the description. And as it can take some time so the new members have to wait in that case.

Making this task automatic will save lots of time. It will solve the problem for both experienced and new users.

I am looking forward to contribute into this. I have built a twitter-bot some time ago.

@lalit97 Welcome! Thanks for your interest in this project. We haven't finalized it yet, so I'd recommend you continue working on other open tasks. Please refer to the links mentioned above. :)

@lalit97 Thanks for your continued interest in contributing to Wikimedia projects :) In addition to what @Pavithraes said, we will start looking for mentors for this task after the mentoring organization results are out.

@Pavithraes Thank you for the suggestions :)

@srishakatux My pleasure as always, okay great :)

srishakatux added a subscriber: Medhabansal.

@D3r1ck01: @Medhabansal has shown interest in being a mentor for this project.. she has been an intern before and contributor to WikiEdu project.. over to you too to coordinate :)

@D3r1ck01: @Medhabansal has shown interest in being a mentor for this project.. she has been an intern before and contributor to WikiEdu project.. over to you too to coordinate :)

Thanks for connecting us @srishakatux.

Hi! I'd like to contribute to this project in the future. How should I go about this? Should I contact the mentors??

@D3r1ck01 @Medhabansal Hello, My name is Sparsh Kumar Jha, I am an undergraduate from IIT Kharagpur, India. I would love to work on this project in upcoming GSoC 2020. Can you guys assist me to get started with this project?

Can you guys assist me to get started with this project?

Hi and welcome! Do you have a specific question? (Also note that there might not only be "guys" here. :)

Hello I am Randika, final year CSE undergraduate at university of Moratuwa, Sri Lanka. I find this project interesting as I have some experience with chat bot development.
I have a question regarding the project,

  • The goal of the project is to develop a mechanism just to send welcome messages and other beginner guide messages or develop a more sophisticated conversational agent?

Hello, I am Tirth Jain studying in BITS Pilani, India. I have a few ideas for the implementation of this idea:

  • We can make a chat bot using the Zulip API and Python and Django.
  • The chatbot can be set up to send a welcome message whenever a new user joins a given channel.
  • The chatbot can be used for solving other queries too, for this we can take a simple keyword based approach or a more complicated NLP based approach.

I have previous experience in making chat bots, I made one for myself on Slack. Im hoping that most of the concepts will be similar in Zulip. Here's my Github link. If possible, can I start working on this project? I think it'll be nice to make some progress before the application period starts so that I will be able to get an idea of the whole project beforehand.

Hello, I am Shubham Kumar, 2nd year undergraduate student of BIT Mesra, India. I have worked with java, javascript, php, node and C/C++.
I am new to open-source, and would love to work on this project.
Github Link

I have worked with Google's Dialogflow before and I think it can be used to understand conversations and act accordingly.

Hi everyone, I am Rohan Gupta, a CSE undergraduate student at Shri Mata Vaishno Devi University currently in the 4th semester. This idea seems interesting to me as i have some experience with chat bot development. I have worked with the chatterbot library, python zulip api and mocking external apis in python. I also have a lot of experience in REST apis, making web apps with django and writing automated tests for software programs.

I would love to contribute to this project for GSoC 2020.

Here's the link to my GitHub profile.

@D3r1ck01 @Medhabansal: @Pavithraes is interested in joining your team as a mentor, yay :) As she is the one who proposed this idea and uses Zulip chat a lot for supporting Wikimedia contributors, I think she can add a lot to your project as a mentor and help shape it further as and when it is being developed/designed (connecting you all by email).

Hi, @D3r1ck01 @Medhabansal I'm Wandji Collins from the University of Buea studying Telecom Engineering my 3year and will love to work on this project. Doing some research on the project and from the Project idea page with required skills being JavaScript and PHP. I have some knowledge in the PHP working with Laravel framework and with JavaScript Working with React.

Look forward to working with you all.

Hi [@Shivanshu1086, @lalit97, @Amanpait, @Lostboy529, @Randikaj, @Hedonhermdev, @Scheleon, @Rohan-cod & @Wandji_Collins], thanks for showing interest in Wikimedia and on this project. For the mean time, begin working on your proposal and microtasks will be added here shortly for you to work on. Please if you do have any questions, ask in the Wikimedia Zulip respective stream(s) and we'll address them or even here on Phabricator. Thanks!

Hi @D3r1ck01, do we have to make a web app or a bot for the first microtask?

Hi @D3r1ck01, do we have to make a web app or a bot for the first microtask?

Thanks for your question! It's supposed to be a simple Hello World app in JS / Python and host it on TF. Thanks!

Thank you for the information @D3r1ck01.

Hi @D3r1ck01, yesterday I requested for the membership on toolforge to be able to create tools. I have made the "Hello World" app and will host it as soon as I receive the access to make tools. I just wanted to ask if I should start planning the proposal or make a prototype for the required bot.

I just wanted to ask if I should start planning the proposal or make a prototype for the required bot.

Begin writing your proposal. Thanks! :)

Hi @D3r1ck01, I was planning my proposal and had some doubts related to it. I can implement the three features required for the bot that are provided in the task description. I have even figured out a way to send custom welcome messages no new users. I just wanted to ask that can I propose more features or I have to write about features that are proposed in the task description. One more thing I want to ask is, is there a particular format for the proposal or we can make it in our own way.

@Rohan-cod You are free to propose more features. :) For the proposal template and examples of good proposals, refer to points 8 and 9 of the GSoC Application process guidelines. All the best!

Thank you for the help @Pavithraes. I will surely refer the guidelines and propose some really good features too :).

The microtask around deploying a 'Hello World' tool on Toolforge has been withdrawn. Currently, Toolforge doesn't allow developers to delete tools, so this microtask can create a bunch of duplicate tools and increase complications for the Cloud Services team. More microtasks will be added in a few days. Until then, applicants can continue working on their proposals, and look into the microtask in the description or work on some good-first-bugs. :)

If you need any help or have questions, please feel free to reach out to us here or on Zulipchat. Looking forward to your proposals!

Thanks for letting us know @Pavithraes. I wasn't able to make a tool even after they approved my membership request. This was the reason for that.:)

The microtask around deploying a 'Hello World' tool on Toolforge has been withdrawn.

Okay, though I have created a 'Hello World' application, currently on Github at wiki-zulip-bot.

Toolforge doesn't allow developers to delete tools, so this microtask can create a bunch of duplicate tools and increase complications for the Cloud Services team.

Oh! maybe we can use pythonanywhere as an alternate for now.

Hello Everyone Shashank this side sorry for coming here late can someone here guide me how to start contributing to wikimedia as I want to participate in GSOC 2020 and would like to participate in this organization can someone here guide how should I start with this organization

Hi and welcome @Shashankjain1234! Please see https://www.mediawiki.org/wiki/Google_Summer_of_Code/2020 for general information. (Also, please use proper punctuation for sentences, as it makes it easier for everyone else to read your comments.) Thanks. :)

Hi everyone , I am Sanyam, Electrical and Electronics Engineering Sophomore at BITS, Pilani. I am interesed in working on this idea as a GSoC summer project. I am used to working with python-based backneds and handling APIs. Earlier I have created a messenger bot at my university to reply to basic queries (contacts, course details, food menus, etc.). I have gone through the API documentation at zulip, found it easy to grasp and of great help in the execution of the project.
I have already worked on some patches at hashtags.
Looking forward to contributing to a tool which will assist the upcoming contributors. Thanks :)
github : https://github.com/sanyam-git

Hi everyone , I am Sanyam, Electrical and Electronics Engineering Sophomore at BITS, Pilani. I am interesed in working on this idea as a GSoC summer project.

You're welcome to Wikimedia @Sanyam.wikime! You can begin writing your proposal for this project idea and sharing your draft with us (the mentors) so we can review your approach.

If you do have any questions, please ask here or on IRC if need be. Thanks :)

We've proposed a new feature around bridging communication between a Zulip Stream and an IRC channel. This is to connect our Zulip community to all the Wikimedia folks who are more active on IRC. :)
Applicants can refer to a similar tool we currently use - Bridgebot, to bridge communication between the Wikimedia Hackathon telegram group and #wmhack IRC channel. Feel free to include it in your proposals. ^_^

@D3r1ck01 What should be more preferable for the bot backend Flask/Django ? I lean a bit towards flask as it is light and seems more suitable fulfilling over requirements in this case. (the zulip botserver is also built over flask).

@D3r1ck01 What should be more preferable for the bot backend Flask/Django ? I lean a bit towards flask as it is light and seems more suitable fulfilling over requirements in this case. (the zulip botserver is also built over flask).

Flask is best suited for the reason you've given already, yes!

Hi, my name is Hassan Shahzad. I am a junior year student in NUST, Islamabad.
I have an interest in Google Summer Of Code 2020. I have made various projects in Python and currently working on more projects.
I am new to GSOC, so apologizes on my part if it is such a basic question, the question I wanted to ask is that, what are micro tasks, like do we have to do all of them in addition to creating a chat bot and do they need to be done in parallel to chat bot creation or it is a prerequisite for selection?
This is my GitHub account : https://github.com/HassanShahzad7

@Hassanshahzadkhan Welcome! Generally, microtasks are some small tasks you can work on during the application period, to understand the project, tools and contribution process. The tasks you work on can be included in your GSoC proposal to give it more "weight". They aren't mandatory for this GSoC idea because we'd be building the project from the ground up, but they are "nice-to-haves". :)

@Pavithraes @srishakatux Should I claim this and make some updates to the basic structure (add the abstract from the proposal and include a link to my subtask for e.g.)?

Is everything in this project task planned for Google-Summer-of-Code (2020) completed? If yes, please consider closing this task as resolved. If bits and pieces are remaining, you could consider creating a new task and moving them there.