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.
BB8 has two possible user flows as shown in below diagram
- 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!
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>
- 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 |
visited | Single Line Text |
visited_num | Number |
- Then replace the
api_key
,base_id
andtable_name
in theconfig.ini
file with your own corresponding values - Install all the requirements
$ pip install -r requirements.txt
- Run the bot
$ python main.py
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
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.