Groupe du projet Python en 2TL2-4

Overview

Présentation

Projet EpheCom

Ce logiciel a été développé dans le cadre scolaire. EpheCom est un logiciel de communications - vocale et écrite - en temps réel. Il a pour but d'améliorer la communication au sein de l'établissement scolaire.

Version de Python : 3.9

Système d'exploitation : Windows, OSX, Linux

Type : Application de bureau

Langue utilisée pour coder : Anglais

Langue utilisée pour documenter : Français

Base de données utlisée : MongoDB Atlas https://www.mongodb.com/fr-fr/cloud/atlas (Vous devrez demander votre certificat d'authentification temporaire à votre professeur)

Documentation Framework : https://kivy.org/doc/stable/api-kivy.html

Source unique des icons : https://remixicon.com/

Convention de nommage : https://www.python.org/dev/peps/pep-0008/

Déroulement

Chaque groupe de projet (4/groupe) se verra assigné un module.

Vous devrez créer un repository github pour votre module. Dans celui-ci devra se trouver :

  • Le code source,
  • La documentation technique,
  • La documentation sur la manière d'installer et utiliser votre module,
  • La documentation demandé par les enseignants.

Lors des deux dernières semaines du quadrimeste, il vous sera demandé d'adapter le projet noyau afin d'y intégrer votre module. Évidemment, si vous vous sentez prêt plus tôt, n'hésitez pas à l'intégrer directement.

Planning

Voici un tableau représentant les étapes et deadlines :

Tâche Description Deadline
Description du MVP Vous devez décrire, en quelques lignes, ce a quoi ressemblera votre module dans une version minimaliste [ S5 ]
Cahier des charges Vous définirez un cahier des charges complet de votre module. [ S6 ]
Implémentation du MVP C'est qu'à cette étape que les premières lignes de code sont implémentées. Nous devons comprendre via un projet minimaliste le but de votre module. Cela doit se faire en ligne de commandes. [ S8 ]
Diagrammes et schémas d'architecture Mise en place du diagramme UML et du schéma d'architecture en fonction de la description de votre module dans votre cahier des charges. Cela implique ce celui-ci soit le plus complet possible. [ S9 ]
Implémentaiton complète Toutes les fonctionnalités décrites dans votre cahier des charges seront implémentées [ S10 - Sx ]
Validation Vous démontrez, via des tests unitaires ou tout autre tests, la fiabilité de votre code. [ S11 ]
Finalisation Le module doit être inclu dans le projet noyau [ S10 - Sx]

Outils

Vous devrez maîtriser et utiliser les outils listés ci-dessous afin de vous organiser au mieux.

Modules

Système de discussion

L'utilisateur doit pouvoir communiquer par écrit avec une ou plusieurs personnes.

- Possibilité de discuter avec un seul membre (conversation privée)
- Possibilité de créer une groupe de discussion.
- Le créateur peut ajouter/supprimer des participants.
- Les messages écrits doivent être traçables.
- Les messages doivent être en temps réel si les deux utilisateurs ou plus sont connectés en même temps.
- Les discussions doivent revenir au dernier état après reconnexion.
- [ Possibilité d'envoyer des documents, images, etc. dans une discussion ]

Système de vidéo-conférence en temps réel

- Possibilité de communiquer oralement et par vidéo avec un ou plusieurs participants.
- Un bouton permet d'enregistrer les communications.
- Un bouton permet de cacher l'entrée vidéo d'un utilisateur.
- [ Partage d'écran ]

Système de boutons interactionnels

- Possibilité de lever la main pendant une vidéo conférence.
- Possibilité de prendre une capture d'écran instantanée enregistrée sur le pc.
- Possibilité d'envoyer des documents, images, etc. dans une discussion à deux ou groupée.

Gestionnaire d'utilisateurs

- Inscription
- Connexion
- Gestion de rôles utilisateurs lié au logiciel (Administrateur | utilisateur | visiteur).
- Gestion de rôles utilisateurs lié aux discussions groupées (Admin d'un groupe, etc.)
- Les droits des utilisateurs peuvent être modifiés par un administrateur.
- Interface d'administration pour les administrateurs du logiciel.

Bot permettant l'accès à diverses nouvelles (Météo, news, etc.)

- Messages automatisés pour un channel grâce à des commandes spécifiques.
- Automatiser les informations en liant le bot à des news qui sont régulièrement affichées dans les groupes concernés.

Bot aidant dans la gestion de EpheCom

- Statut du réseau
- Statistiques sur différents critères comme : Nombre d'utilisateurs, de groupes etc.
- Graphiques représentant l'évolution des inscriptions, quantités d'inscrits, quantité de messages envoyés, etc.
- Ajout/Suppression de rôles.
- Ajout de team, groupes et channels de manière automatisée.
- Ajout automatique dans des groupes grâce à des commandes spécifiques.

Challenges

  • Si je souhaites changer la couleur principale du projet, ou dois-je faire ma modification ?
  • Quid d'un code pas optimal ?

Attention !

Lors de votre implémentation, il vous est demandé de suivre à la lettre les bonnes pratiques de programmation.

C'est-à-dire :

  • Votre code doit être documenté/commenté,
  • Vous suivez la PEP08 !,
  • Vos noms de variables, fonction, classes etc. sont significatifs,
  • Vous travaillerez de manière agile, cela signifie que vous DEVEZ vous diviser les tâches de manière organisée, triées par priorités et grâce aux outils ci-dessus.
🤞 Website-Survival-Detection

- 🤞 Website-Survival-Detection It can help you to detect the survival status of the website in batches and return the status code! - 📜 Instructions

B0kd1 4 Nov 14, 2022
Secret santa is a fun and easy way to get together with your friends and/or family with a gift for them.

Vaccine Validator Tool to validate domestic New Zealand vaccine passes Create a new virtual environment: python3 -m venv ./venv Activate virtual envi

2 Dec 06, 2021
My Solutions to 120 commonly asked data science interview questions.

Data_Science_Interview_Questions Introduction 👋 Here are the answers to 120 Data Science Interview Questions The above answer some is modified based

Milaan Parmar / Милан пармар / _米兰 帕尔马 181 Dec 31, 2022
A repository for all ZenML projects that are specific production use-cases.

ZenFiles Original Image source: https://www.goodfon.com/wallpaper/x-files-sekretnye-materialy.html And naturally, all credits to the awesome X-Files s

ZenML 66 Jan 06, 2023
Static bytecode simulator

SEA Static bytecode simulator for creating dependency/dependant based experimental bytecode format for CPython. Example a = random() if a = 5.0:

Batuhan Taskaya 23 Jun 10, 2022
ripgrep recursively searches directories for a regex pattern while respecting your gitignore

ripgrep (rg) ripgrep is a line-oriented search tool that recursively searches the current directory for a regex pattern. By default, ripgrep will resp

Andrew Gallant 35k Dec 31, 2022
Render reMarkable documents to PDF

rmrl: reMarkable Rendering Library rmrl is a Python library for rendering reMarkable documents to PDF files. It takes the original PDF document and th

Robert Schroll 95 Dec 25, 2022
The Open edX platform, the software that powers edX!

This is the core repository of the Open edX software. It includes the LMS (student-facing, delivering courseware), and Studio (course authoring) compo

edX 6.2k Jan 01, 2023
Find all social media accounts with a username!

Aliens_eye FIND ALL SOCIAL MEDIA ACCOUNTS WITH A USERNAME! OSINT To install: Open terminal and type: git clone https://github.com/BLINKING-IDIOT/Alien

Aaron Thomas 84 Dec 28, 2022
A simple interface to help lazy people like me to shutdown/reboot/sleep their computer remotely.

🦥 Lazy Helper ! A simple interface to help lazy people like me to shut down/reboot/sleep/lock/etc. their computer remotely. - USAGE If you're a lazy

MeHDI Rh 117 Nov 30, 2022
Basic-Killfeed - A simple DayZ Console Killfeed

Basic-Killfeed A simple DayZ Console Killfeed. Setup Install Python Version 3.10

Nick 1 Apr 25, 2022
Automate the boilerplate while initializing your Python project

Rubric Automate the boilerplate while initializing your Python project Preface Rubric is an opinionated project initializer for Python. It assum

Redowan Delowar 23 Dec 16, 2022
PyWorkflow(PyWF) - A Python Binding of C++ Workflow

PyWorkflow(PyWF) - A Python Binding of C++ Workflow 概览 C++ Workflow是一个高性能的异步引擎,本项目着力于实现一个Python版的Workflow,让Python用户也能享受Workflow带来的绝佳体验。

Sogou-inc 108 Dec 01, 2022
Performance data for WASM SIMD instructions.

WASM SIMD Data This repository contains code and data which can be used to generate a JSON file containing information about the WASM SIMD proposal. F

Evan Nemerson 5 Jul 24, 2022
Transform your boring distro into a hacking powerhouse.

Pentizer Transform your boring distro into a hacking powerhouse. Pentizer is a personal project that imports Kali and Parrot repositories in any Debia

Michail Tsimpliarakis 2 Nov 05, 2021
🎴 LearnQuick is a flashcard application that you can study with decks and cards.

🎴 LearnQuick is a flashcard application that you can study with decks and cards. The main function of the application is to show the front sides of the created cards to the user and ask them to guess

Mehmet Güdük 7 Aug 21, 2022
Poetry plugin to bundle projects into various formats

Poetry bundle plugin This package is a plugin that allows the bundling of Poetry projects into various formats. Installation The easiest way to instal

Poetry 54 Jan 02, 2023
APC Power Usage is an application which shows power consuption overtime for UPS units manufactured by APC.

APC Power Usage Introduction APC Power Usage is an application which shows power consuption overtime for UPS units manufactured by APC. Screenshoots G

Stefan Kondinski 3 Oct 08, 2021
Diff Match Patch is a high-performance library in multiple languages that manipulates plain text.

The Diff Match and Patch libraries offer robust algorithms to perform the operations required for synchronizing plain text. Diff: Compare two blocks o

Google 5.9k Dec 30, 2022
Buffer Overflows

BOF Buffer Overflows 1. BOF tips Practice using mona.py Download vulnerable exe from Exploit DB.

Vinh Nguyễn 27 Dec 08, 2022