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.
A frontend to ease the use of pulseaudio's routing capabilities, mimicking voicemeeter's workflow

Pulsemeeter A frontend to ease the use of pulseaudio's routing capabilities, mimicking voicemeeter's workflow Features Create virtual inputs and outpu

Gabriel Carneiro 164 Jan 04, 2023
A tool to assist in code raiding in rust

Kodelock a tool to assist in code raiding in rust This tool is designed to be used on a second monitor. This tools will allow you to see a easily read

3 Oct 27, 2022
Fried Chicken Programming Language

Fried-Chicken Fried Chicken Programming Language How To Run Once downloaded and opened, choose any file for code. Any file extensions work. Just make

Attachment Studios 9 Jul 11, 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
Repo to store back end infrastructure for Message in a Bottle

Message in a Bottle Backend API RESTful API for Message in a Bottle frontend application consumption. About The Project • Tools Used • Local Set Up •

4 Dec 05, 2021
An open source recipe book from the awesome staff of Clinical Genomics

meatballs An open source recipe book from the awesome staff of Clinical Genomics.

Clinical Genomics 2 Dec 07, 2021
Find functions without canary check (or similar)

Ghidra Check Protector Which non-trivial functions don't reference the stack canary checker (or other, user-defined function)? Place your cursor to th

buherator 3 Jan 17, 2022
A blazing fast mass certificate generator script for the community ⚡

A simple mass certificate generator script for the community ⚡ Source Code · Docs · Raw Script Docs All you need Certificate Design a simple template

Tushar Nankani 24 Jan 03, 2023
GMHI: Gut Microbiome Health Index

GMHI: Gut Microbiome Health Index Description Gut Microbiome Health Index (GMHI)

Daniel Chang 2 Jun 30, 2022
This repo presents you the official code of "VISTA: Boosting 3D Object Detection via Dual Cross-VIew SpaTial Attention"

VISTA VISTA: Boosting 3D Object Detection via Dual Cross-VIew SpaTial Attention Shengheng Deng, Zhihao Liang, Lin Sun and Kui Jia* (*) Corresponding a

104 Dec 29, 2022
Identifies the faulty wafer before it can be used for the fabrication of integrated circuits and, in photovoltaics, to manufacture solar cells.

Identifies the faulty wafer before it can be used for the fabrication of integrated circuits and, in photovoltaics, to manufacture solar cells. The project retrains itself after every prediction, mak

Arun Singh Babal 2 Jul 01, 2022
A tool to flash .ofp files in bootloader mode without needing MSM Tool, an alternative to official realme tool

Oppo/Realme Flash .OFP File on Bootloader A tool to flash .ofp files in bootloader mode without needing MSM Tool, an alternative to official realme to

Italo Almeida 70 Jan 02, 2023
A simple streamlit webapp with multiple functionality

A simple streamlit webapp with multiple functionality

Omkar Pramod Hankare 2 Nov 24, 2021
Snack Rice - A Rice University servery finder, customized for your needs!

Snack Rice - A Rice University servery finder, customized for your needs!

Aidan Gerber 3 Sep 25, 2022
🦋 hundun is a python library for the exploration of chaos.

hundun hundun is a python library for the exploration of chaos. Please note that this library is in beta phase. Example Import the package's equation

kosh 7 Nov 07, 2022
A command-line utility that creates projects from cookiecutters (project templates), e.g. Python package projects, VueJS projects.

Cookiecutter A command-line utility that creates projects from cookiecutters (project templates), e.g. creating a Python package project from a Python

18.6k Jan 02, 2023
📽 Streamlit application powered by a PyScaffold project setup

streamlit-demo Streamlit application powered by a PyScaffold project setup. Work in progress: The idea of this repo is to demonstrate how to package a

PyScaffold 2 Oct 10, 2022
TMTC Commander Core

This commander application was first developed by KSat for the SOURCE project to test the on-board software but has evolved into a more generic tool for satellite developers to perform TMTC (Telemetr

robamu 8 Dec 14, 2022
A comprensive software collection for nmea manipulation

nmeatoolkit A comprensive software collection for nmea manipulation; it includes a library and a collections of command line tools. Library pipes: con

Davide Gessa 1 Sep 14, 2022
HOWTO: Downgrade from nYNAB to YNAB4

HOWTO: Downgrade from nYNAB to YNAB4 This page explains how to move from nYNAB to YNAB4 while retaining as much information as possible. See Appendix

Tobias Kunze 10 Dec 29, 2022