Published at ·  
Beep

Beep

Beep is a web application that aims to implement the same functionalities as the Discord platform. This project is being developed by the entire DevOps class of 2023-2026 at Polytech Montpellier.
Baptiste Bronsin

Baptiste Bronsin

@baptiste_bronsin

Dorian Grasset

Dorian Grasset

@dorian_grasset

Mathias Durat

Mathias Durat

@duratm

Hugo Ponthieu

Hugo Ponthieu

@hugo_ponthieu

Nathaël Bonnal

Nathaël Bonnal

@nathael_bonnal

Dorian Tetu

Dorian Tetu

@nayrode

Isalyne Llinares--Rames

Isalyne Llinares--Rames

@isalyne_llinares

Giada De Martino

Giada De Martino

@giada_de_martino

Pauline Contat

Pauline Contat

@poptart_coral

Louis Labeyrie

Louis Labeyrie

@razano

Benoit Planche

Benoit Planche

@benoit_planche

Tristan Radulescu

Tristan Radulescu

@courtcircuits

Sarah Theoulle

Sarah Theoulle

@stheoulle

Théo Tchilinguirian

Théo Tchilinguirian

@theotchlx

Thomas Broine

Thomas Broine

@thomas_broine

A Discord Alternative by DevOps Students

The Polytech Montpellier DevOps class of 2023-2026 has a “fil rouge” project named Beep. This project aims to create a web application that replicates the functionalities of the Discord platform.

Discord logo

Overview

Beep is designed to offer a comprehensive communication platform for communities, friends, and professionals. It provides a seamless and integrated user experience with a focus on real-time communication and collaboration.

Functionalities

Like Discord, Beep allows users to:

  • Create and manage servers (both private and public)
  • Send and receive messages in real-time (text and file sharing)
  • Join and participate in voice channels
  • Customize user profiles and server settings

The project leverages modern web technologies to ensure performance, scalability, and a responsive design:

  • Frontend: React, TypeScript, and TailwindCSS
  • Backend: AdonisJS with PostgreSQL

Interface

User Authentication

Beep offers a user-friendly authentication process, including traditional login/signup methods and QR code authentication for enhanced user convenience.

Beep login page

User Dashboard

Once logged in, users are greeted with an intuitive interface:

  • Left Sidebar: Displays the servers the user is part of.
  • Main Area: Shows the messages exchanged in the current channel.
  • Right Sidebar: Lists the channels available in the selected server.
Beep home page

Team Work

The Beep project is developed using an Agile methodology, with the project fragmented into sprint periods. Each sprint focuses on specific features and improvements, ensuring continuous progress and regular updates.

Team Structure

At the beginning of the project, the class was divided into several teams, each responsible for different aspects of the application:

Message TeamFile TeamVoice Team
5 students5 students5 students
Responsible for developing the messaging functionalities, including sending and receiving text messages in real time.Responsible for developing the file sharing functionalities, allowing users to upload and download files in channels.Responsible for developing the voice channel functionalities, enabling users to communicate via voice in real time.

After this short period, the teams were reorganized to focus on the integration of all functionalities into a single cohesive application. We created Gitlab issues to track the progress of each feature and ensure that all teams were aligned with the overall project goals. Each issues had a status:

StatusDescription
To DevelopThe feature needs to be developed by the team.
To AcceptThe issue has been described and needs to be accepted by the team before development begins.
ReadyThe feature is ready to be developed by the team.
In Progress (WIP)The feature is currently being developed by the team.
In ReviewThe feature has been implemented and is awaiting review by the team.
DoneThe feature has been successfully implemented and is ready for deployment.

When a feature is in the ‘In Review’ status, it requires two approvals from team members before it can be marked as ‘Done’ and merged. To facilitate this process, a team member created a Discord bot that assigns reviewers. If a reviewer does not accept the task within five minutes, the bot automatically selects another student to conduct the review.

Architecture

The architecture of Beep is designed to be scalable, maintainable, and robust. Key components include:

  • Containerization: Docker
  • Orchestration: Kubernetes
  • CI/CD Pipeline: GitLab CI
  • Deployments: ArgoCD
  • Monitoring and Logging: Grafana, Prometheus, and Loki

This setup ensures that Beep can handle a large number of users and provide a reliable service with minimal downtime.

Future Enhancements

Our roadmap for Beep includes several exciting features and improvements:

  • Bot Integration: Allowing users to create and integrate bots for various functionalities.
  • Enhanced Security: Implementing advanced security measures to protect user data.
  • Mobile App: Developing a mobile application for on-the-go access.

Conclusion

Beep is more than just a project; it’s a testament to the skills and dedication of the Polytech Montpellier DevOps class of 2023-2026. We are excited to continue developing this platform and look forward to the positive impact it will have on communication and collaboration.