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.
InfiniPy has some neat features - like the endpoint for function

InfiniPy has some neat features - like the endpoint for function

ZeroTwo 7 Nov 20, 2022
SuperCollider library for Python

SuperCollider library for Python This project is a port of core features of SuperCollider's language to Python 3. It is intended to be the same librar

Lucas Samaruga 65 Dec 22, 2022
A simple, fantasy and fast note taking program.

notes A simple, fantasy and fast note taking program Installation This program supposed to run in linux and may have some bugs on windows or any other

Ali Hosseinverdi 1 Apr 06, 2022
Test reproducibility of leiden/umap on different systems

Demonstrate that UMAP and Leiden analysis is not reproducible between different cpu architectures.

Gregor Sturm 2 Oct 16, 2021
Tensorboard plugin 3d with python

tensorboard-plugin-3d Overview In this example, we render a run selector dropdown component. When the user selects a run, it shows a preview of all sc

KitwareMedical 26 Nov 14, 2022
A student information management system in Python

Student-information-management-system 本项目是一个学生信息管理系统,这个项目是用Python语言实现的,也实现了图形化界面的显示,同时也实现了管理员端,学生端两个登陆入口,同时底层使用的是Redis做的数据持久化。 This project is a stude

liuyunfei 7 Nov 15, 2022
a wordle-solver written in python

Wordle Solver Overview This is yet another wordle solver. It is built with the word list of the official wordle website, but it should also work with

Shoubhit Dash 10 Sep 24, 2022
Compile Binary Ninja's HLIL IR to LLVM, for purposes of compiling it back to a binary again.

Compiles BinaryNinja's HLIL to LLVM Approach Sweep binary for global variables, create them Sweep binary for (used?) external functions, declare those

Kyle Martin 31 Nov 10, 2022
Grammar of Scalable Linked Interactive Nucleotide Graphics

Gosling.js Gosling.js is a declarative grammar for interactive (epi)genomics visualization on the Web. ⚠️ Please be aware that the grammar of Gosling.

Gosling 126 Nov 29, 2022
With the initiation of the COVID vaccination drive across India for all individuals above the age of 18, I wrote a python script which alerts the user regarding open slots in the vicinity!

cowin_notifier With the initiation of the COVID vaccination drive across India for all individuals above the age of 18, I wrote a python script which

13 Aug 01, 2021
a package that provides a marketstrategy for whitelisting on golem

filterms a package that provides a marketstrategy for whitelisting on golem watching requestor logs distribute 10 tasks asynchronously is fun. but you

KJM 3 Aug 03, 2022
Nimbus - Open Source Cloud Computing Software - 100% Apache2 licensed

⚠️ The Nimbus infrastructure project is no longer under development. ⚠️ For more information, please read the news announcement. If you are interested

Nimbus 194 Jun 30, 2022
Never miss a deadline again

Hack the Opportunities Never miss a deadline again! Link to the excel sheet Contribution This list is not complete and I alone cannot make it whole. T

Vibali Joshi 391 Dec 28, 2022
Inviare messaggi tramite app IO a partire da dati contenuti in file .csv

parlaConIO Inviare messaggi tramite app IO a partire da dati contenuti in file .csv -- Nessun obbligo, ma in caso di clonazione o uso del programma c

Francesco Del Castillo 6 Aug 22, 2022
A timer for bird lovers, plays a random birdcall while displaying its image and info.

Birdcall Timer A timer for bird lovers. Siriema hatchling by Junior Peres Junior Background My partner needed a customizable timer for sitting and sta

Marcelo Sanches 1 Jul 08, 2022
Learning a Little about Containerlab

Learning a Little about Containerlab Hello all. This is the respository based on this blog post. Getting Started Feel free to use this example. You wi

10 Oct 16, 2022
Scientific Programming: A Crash Course

Scientific Programming: A Crash Course Welcome to the Scientific Programming course. My name is Jon Carr and I am a postdoc in Davide Crepaldi's lab.

Jon Carr 1 Feb 17, 2022
Tethered downgrade 64-bit iDevices vulnerable to checkm8

ra1nstorm Tethered downgrade 64-bit iDevices vulnerable to checkm8 Since the purpose of this tool is to tethered downgrade a device, after restoring p

mini_exploit 65 Nov 08, 2022
A repository containing an introduction to Panel made to be support videos and talks.

👍 Awesome Panel - Introduction to Panel THIS REPO IS WORK IN PROGRESS. PRE-ALPHA Panel is a very powerful framework for exploratory data analysis and

Marc Skov Madsen 51 Nov 17, 2022
A system for assigning and grading notebooks

nbgrader Linux: Windows: Forum: Coverage: Cite: A system for assigning and grading Jupyter notebooks. Documentation can be found on Read the Docs. Hig

Project Jupyter 1.2k Dec 26, 2022