Giter Site home page Giter Site logo

pairing-bot's People

Contributors

evie404 avatar lutydlitatova avatar mathew-estafanous avatar matloob avatar parsn1psoup avatar robertxu avatar stillgreenmoss avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

pairing-bot's Issues

Pairing Based on Language?

I'd love to see an addition to pairing bot where you can restrict matches to specific programming languages. I was going to look into making a pull request for this, but unfortunately I don't know any Go.

single-day opt-ins

It would be cool to be able to do the opposite of skip a day - opt in to pairing tomorrow without changing my schedule!

Add integration tests

Pairing Bot does not currently have integration tests. It would be awesome if she got some!

Any recurser, though especially recursers currently in batch, should message me or @parsn1psoup if they'd like to work on this.

Enhancement: Skip by date or next day occurrence

It would be a nice QoL enhancement if one could skip being matched on a particular date or on the next occurrence of a day of the week.

Right now if I normally have availability for a pairing session on a particular day that I realize I won't be available for, I need to either remember to send skip tomorrow the day before, or change my availability in advance, remembering to set it back to my usual availability before the following week.1

Examples:

  • skip 2023-11-06 would skip matching on that particular date
    • Best for setting exceptions to availability days or weeks out
  • skip mon would skip matching on the next available Monday
    • At the time of writing this would achieve the same as above, but more conveniently2

I'm more than willing to start work on this when I have a moment. Just adding this issue for future reference or if someone else wants to have a go at it!

Footnotes

  1. This is all possible through scheduling Zulip messages to the pairing bot, but this isn't common knowledge nor something that I think most people would readily think to do

  2. Assuming no availability on weekends

Send unsubscribe notification PM to people in the middle of their batch

The problem

At the moment, every 6 weeks everyone is unsubscribed from the pairing bot. This ensures that we start with a clean slate at the start of each new batch. Otherwise, we'd need to track which subscribers are finishing their batch, which would be problematic (some people may want to pair even after the end of their batch, some people extend their batches etc.).

However, this is not clearly communicated to all the users. Currently, a message is sent on the first Wednesday of a batch to the #397 Bridge stream on Zulip. There is a lot of other noise in that stream, especially at the start of a batch, so this notification may go unnoticed.

The solution

Automatically send a PM to notify users when they're unsubscribed, for whatever reason? Or send a blanket PM to @currentlyatRC at the start of the batch?

Getting paired with the same people

Issue

I keep getting paired with people I have already been paired with

Possible solutions

  • the Pairing Bot could store some sort of history to give lower weights to already paired combinations so that people have a higher chance of pairing with a new person

talk to the RC API

This will be implemented as part of a larger effort to re-write pairing bot in python.

Create architecture diagram

To make it easier to understand and reason about the architecture and which components talk to which (app, database, Zulip, GCP cronjob).

Increase unit test coverage

Pairing Bot now has tests. It would be awesome if she got some more!

Any recurser, though especially recursers currently in batch, should message me or @parsn1psoup if they'd like to work on this.

Talk to the RC API

We need to get this bot talking to the RC API so that we can automate on and off-boarding at the beginning/end of batch. There's been a little bit of work done on it in this commit, but I heard there might be more coming down the pike??? Pinging @anushriadhia!

Redo the end-user logic a bit

After talking to folks about how they hope to use Pairing Bot, I've brainstormed this new bot-behavior accordingly:

  • subscribe behavior unchanged
  • schedule behavior unchanged, except:
    • schedule no days gives the user no recurring matches, but keeps them in the database
    • schedule monday wednesday, if issued when unsubscribed, subscribe and schedule for those days rather than erroring
    • pair tomorrow to sign up for a one-time match the next day
  • status unchanged
  • unsubscribe unchanged
  • skip tomorrow and unskip tomorrow unchanged

I'm excited to work on this, but probably won't be able to focus on it much so movement may be slow. Feedback welcome!

Consistency in error handling

Right now, there's a couple of places where the code will panic on errors (which shouldn't happen in most cases), some cases where we just log and some cases where a request is aborted.
Make this consistent.
Reach out to @thwidge or me if you're interested in tackling this and have any questions!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.