Giter VIP home page Giter VIP logo

ponchik-rs's Introduction

Ponchik ๐Ÿฉ

A โšก blazing fast โšก slack donut app clone written in Rust ๐Ÿฆ€

Ponchik helps integrate members of your team. Add Ponchik to a channel, and it will randomly pair individuals in the channel to be introduced in DMs.

Docs

Ponchik is deployed as a set of Vercel Functions built on the community-driven Vercel Runtime for Rust. Vercel Function invokations (or a command line interface) can be used to invoke stages of the pairing cycle, including making the introduction, sending checkpoints, and closing.

Pairings and their statuses are recorded in a PostgreSQL database using the sqlx PostgreSQL driver.

The Slack API is used to send Block Kit messages and handle user interaction.

Todos

  • Backend
    • Ensure sqlx and postgres works in the vercel runtime
    • Write pairings to database at intros generation
    • Read active pairings from db and send midpoint checkins
    • update db from user interactions
    • update db at pair close
    • if sqlx and postgresql doesnt work then im either turning this into some middlewware with a js implementation powering the db connection, or writing a rust database library for google sheets
  • Application
    • Add instrumentation (wip)
    • set up jaegar / frontend for logs
    • clean up user interaction handling so that the stupid (edit) symbol doesn't appear. reference
    • Update pairing algo to prevent duplicate pairings
    • Update intro_launch endpoint to accept arguments for group size
    • implement a "nobody responded" interaction handling
    • implement a random group leader picker ("take point on making this meeting happen")
    • start a requested feature list. potentially include block lists, meeting schedule adjuster, multiple midpoint checkins,
  • Front end
    • Create slack-authenticated frontend which displays db contents and can be used to interact with app
  • Misc
    • lint everything, get rid of sheets stuff, probably move MeetingStatus struct to another module

DB Table

group channel id | meeting status | date of intro | names...

meeting_status = {open, scheduled, closed_met, closed_no, closed_scheduled, closed_stale}

ponchik-rs's People

Contributors

dangush avatar dependabot[bot] avatar

Watchers

 avatar

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.