Telegram, Discord and Slack Conversation Archiver

Project Overview:

The aim of the project is to archive all conversations in groups that the bot is a part of, in Telegram, Slack and Discord, as well as fetching and recording the conversation history of the groups.

The bot runs as a service in the background of a computer and checks for any new changes in the groups and records any new messages sent, as well as who sent the messages, when the messages were sent and in which group were these messages sent.

The data is accessed through an interface, which the client is responsible for.


Designing the Project:

The first stage of the project was to design the bot. The overall structure of the project and the run time lifecycle of the bot was designed, as well as how the components of the bot will work together to accomplish the task of the project.

Here are some screenshots of some designs of the bot:

An overview of the whole system
An overview of how the bot stores and processes messages
Overview of how the database manager will work

Prototyping the Project:

Once the design phase of the project was completed, a prototype of the bot was developed. Since the bot had one function, the prototype did nothing but archive any messages typed into it into a database.

Here are some screenshots of the prototype in action:

Setting a new user and group in the prototype
Sending messages in the prototype
The result in the database

Building the Project:

After the prototype was built, development of the bot had begun. There were three milestones of the project that had to be developed for the client, each milestone being for Discord, Telegram and Slack.

During development, extensive testing and extensive debugging was done on each module of the bot. Code that was debugged and passed the testing phase were put into the production code of the project.

Here are some snippets of code of the building phase:

A snippet of code that starts the modules of the bot
A snippet of code that sends formatted messages to the archiver
The bot running as a service on an Ubuntu system

Testing the Project:

For each milestone that was completed, the bot was tested in the chat groups on Slack, Discord and Telegram. The bot had to record all conversations in all groups that the bot was in. During the testing phase, several bugs that were not caught during the development phase were found and eliminated. However, since the bot only had one function, testing was not done extensively.

Here are some screenshots of the testing phase:

Sending messages in a test group on Slack
Checking the result in our database
Testing the interface to send configurations to the bot

The Final Result:

Unfortunately, the client disappeared before the third milestone of the project was completed and all attempts to contact the client has failed. Thus there is no testimonial for this project as of now.