Code Monkey home page Code Monkey logo

bb8's Introduction

BB8

The Learning Stations Bot

Report a Bug ยท Request feature

BB8 was designed to streamline the visitor tracking process for the Learning Stations hosted as part of our techfest Dyuksha '23. By automating the task of recording visitor information at various learning stations, BB8 helped us cut costs (for printing visitor cards, rubber stamps for each station etc.) and also improve the overall efficiency of the process.

How it works

BB8 has two possible user flows as shown in below diagram

ProjectBB8

  • Once the bot starts running, it generates 6-digit randomized alphanumeric codes for each configured station every 5 minutes (this can be changed in the config file). These codes are also converted into scannable QR codes for ease of copying.
  • Mentors can access the visitor codes for their respective stations using their mentor passcode (configurable). They can refresh the code using the Refresh button to display the current valid code to the visitors.
  • To mark a station as visited, visitors need to run the command /visited <VISITOR_CODE> after completing their learning session at a station. This updates their corresponding entry in the database to reflect their visit at that station.
  • Visitors can also check which stations they have visited so far using the /checkprogress command.
  • Once visitors have completed visiting all the stations, the bot automatically generates a cool e-certificate for them and sends it!

Commands

General Commands

  • /start - Register as a Mentor/Learner
  • /visited - Mark a station as visited. Usage: /visited <visitor_code>
  • /checkprogress - See which stations you have visited and which are left. Also displays the name, participant id and email
  • /cleardata - Clear your data from the database in case of any error in the name or email submitted

Admin Only Commands

  • /listcodes - List the current valid visitor codes of all the stations
  • /getinfo - Get the info of a participant. Usage: /getinfo <participant_id>
  • /regencert - Regenerate the certificate for a pariticipant (in case someone has issues with their generated certificate, eg: wants to update their name). Usage: /regencert <participant_id>

How to configure?

  • Modify the config.ini file according to your requirements & preferences
  • Copy .env.sample to a new file .env and replace the placeholder with your bot token. To learn how to generate a new bot token read this. Just remember to turn off the permission to add the bot to groups
  • Create a new airtable base and a table with the following fields
Field Name Field Type
name Single Line Text
primary_key Autonumber
type Single Line Text
tu_id Single Line Text
email Email
visited Single Line Text
visited_num Number
  • Then replace the api_key, base_id and table_name in the config.ini file with your own corresponding values
  • Install all the requirements
$ pip install -r requirements.txt
  • Run the bot
$ python main.py

Screenshots

What's under the hood?

You can find all the required dependencies in the requirements.txt file. However here's an overview of the major libraries/tools we've used to create BB8

Contributing

Do you have any thoughts on improving the bot? Ideas, design changes, code cleaning or even major codebase revamps, any and all such contributions are always welcome. BB8 just keeps getting better with each contribution, no matter how big or small ๐Ÿ’ช. If you'd like to get involved, you can start with the issues listed in our issue tracker or you can create your own issue here.

bb8's People

Contributors

aravinds-arv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  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.