Skip to content
 
 

Latest commit

 

History

124 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sapienza Students Bot

Sapienza Students Bot is the public Telegram bot used by Sapienza Students Network to make student-run groups for degree programmes, courses, and individual subjects easier to discover.

The bot is available on Telegram as @SapienzaStudentsBot.

About the project

@SapienzaStudentsBot was originally created by the former Sapienza Students organization and is now maintained by Sapienza Students Network, coordinated by @Matypist.

Students can use its guided menus to browse categories and subcategories, find groups relevant to their studies, and join them without having to search through scattered invite links. Group administrators can add the bot to the groups they manage and, after granting the required permissions, request that a group be indexed in the most appropriate category.

Bot administrators can also create localized custom links, reuse them across multiple categories, and display them either in group lists or as category buttons.

This repository contains the code and instance-specific customizations used by Sapienza Students Bot. It is a fork of Telegram Groups Indexer Bot, the reusable core project on which the service is based.

Relationship with Telegram Groups Indexer Bot

General documentation is intentionally maintained in the upstream Telegram Groups Indexer Bot repository rather than duplicated here. Refer to its README for:

  • Features and supported commands
  • Requirements and platform-specific installation instructions
  • PostgreSQL and environment-variable configuration
  • Group permissions and the indexing workflow
  • Internationalization and repository structure
  • Deployment, troubleshooting, security, and contribution guidelines

Instructions in the upstream README describe the core project. This fork may use different dependency versions, instance-specific menus, links, categories, policies, or deployment settings, so review this repository's source code, Pipfile, and Pipfile.lock before deploying or updating it.

Development updates for the core project are also published in the TGroupsIndexerBot Telegram channel.

Sapienza Students Bot-specific information

The public instance is configured for Sapienza students and is managed by Sapienza Students Network. In particular, the fork provides instance-specific branding, links, support destinations, and interface behavior while retaining the indexing system supplied by Telegram Groups Indexer Bot.

For the live service:

  • Open @SapienzaStudentsBot to browse the indexed groups
  • Contact @SapienzaStudentsNetwork for assistance with the Sapienza instance
  • Report code-related problems through this repository when they are specific to Sapienza Students Bot
  • Report reusable core problems to Telegram Groups Indexer Bot when they also affect the upstream project

Why Python was chosen

The first version created by Sapienza Students was written in Go, and its source code is still available in the original GitLab repository.

When management of the bot moved to Matypist and Sapienza Students Network, the project was rewritten in Python. Python is taught in Sapienza's Computer Science degree programme, including in the first-year Fondamenti di Programmazione course, and is also common in other computing-related programmes. Choosing a language already familiar to many students was intended to make the codebase more approachable and encourage voluntary contributions from the students who use the bot.

Running this fork

Use the installation and configuration guide in the Telegram Groups Indexer Bot README as the general reference, but install the dependencies locked in this repository and check the local source for any fork-specific differences.

At minimum, the application expects the same principal runtime configuration used by the core project:

  • TOKEN
  • DATABASE_URL
  • OWNER_CHAT_ID
  • CONTACT_USERNAME
  • EXCEPTION_LOG_CHAT_ID, when exception logging to Telegram is enabled
  • ADMIN_ACTIONS_LOG_CHAT_ID, when administrative-action logging to Telegram is enabled

Create a separate Telegram bot and PostgreSQL database for development or self-hosting, and never commit tokens, database credentials, private chat IDs, or .env files.

Contributing

Contributions are welcome. Before opening an issue or pull request, first determine whether the change is:

  • Specific to the Sapienza Students Bot instance, in which case it belongs in this repository
  • Reusable by other installations of Telegram Groups Indexer Bot, in which case it should preferably be proposed to the upstream project

When changing user-facing text, keep the English and Italian locale files aligned. Test changes using a separate Telegram bot and a disposable PostgreSQL database rather than the public instance.

About

Telegram bot in Python for indexing and navigating groups managed by students of Sapienza University of Rome

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages