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.
使用clash核心,对服务器进行Netflix解锁批量测试。

注意事项 测速及解锁测试仅供参考,不代表实际使用情况,由于网络情况变化、Netflix封锁及ip更换,测速具有时效性 本项目使用 Python 编写,使用前请完成环境安装 首次运行前请安装pip及相关依赖,也可使用 pip install -r requirements.txt 命令自行安装 Net

11 Dec 07, 2022
A notebook explaining the principle of adversarial attacks and their defences

TL;DR: A notebook explaining the principle of adversarial attacks and their defences Abstract: Deep neural networks models have been wildly successful

1 Jan 22, 2022
Converts a base copy of Pokemon BDSP's masterdatas into a more readable and editable Pokemon Showdown Format.

Showdown-BDSP-Converter Converts a base copy of Pokemon BDSP's masterdatas into a more readable and editable Pokemon Showdown Format. Download the lat

Alden Mo 2 Jan 02, 2022
My solutions for the 2021's Advent of Code

Advent of Code 2021 My solutions for Advent of Code 2021. This year I am practicing Python 🐍 and also trying to develop my own language, Chocolate 🍫

Jakob Erzar 2 Dec 15, 2021
Python project that aims to discover CDP neighbors and map their Layer-2 topology within a shareable medium like Visio or Draw.io.

Python project that aims to discover CDP neighbors and map their Layer-2 topology within a shareable medium like Visio or Draw.io.

3 Feb 11, 2022
Automated moth pictures for biodiversity research

Automated moth pictures for biodiversity research

Ludwig Kürzinger 1 Dec 16, 2021
The first Python 1v1.lol triggerbot working with colors !

1v1.lol TriggerBot Afin d'utiliser mon triggerbot, vous devez activer le plein écran sur 1v1.lol sur votre naviguateur (quelque-soit ce dernier). Vous

Venax 5 Jul 25, 2022
Set up a sidechain for the XRPL quickly and easily

Sidechain Launch Kit Introduction This directory contains python scripts to tests and explore side chains. This document walks through the steps to se

Xpring Engineering 15 Dec 08, 2022
A set of tools for ripping music from Konami mobile games

Konami Mobile Ripping Toolset A set of tools for ripping music from Konami mobile games Contents nigger.py for niggering konami's website, ripping all

5 Oct 20, 2022
Backtest framework based on DAGs

MultitaskQueue It's a simple framework based on three composed concepts: Task: A task is the smaller unit of execution or simple a node in the DAG, ev

4 Dec 09, 2021
Tesla App Update Differences Extractor

Tesla App Update Differences Extractor Python program that finds the differences between two versions of the Tesla App. When Tesla updates the app a l

Adrian 5 Apr 11, 2022
B-Pkg is a simple tool in python for installing all basic package in termux

Basic-Pkg 👉🏻 Basic-Pkg 👈🏻 B-Pkg is a simple tool in python for installing all basic package in termux This is my first tool, I hope you will like

Macgaiver 3 Oct 21, 2021
Online-update est un programme python permettant de mettre a jour des dossier et de fichier depuis une adresse web.

Démarrage rapide Online-update est un programme python permettant de mettre a jour des dossier et de fichier depuis une adresse web. Mode préconfiguré

pf4 2 Nov 26, 2021
《practical python programming》的中文翻译

欢迎光临 大约 25 年前,当我第一次学习 Python 时,发现 Python 竟然可以被高效地应用到各种混乱的工作项目上,我立即被震惊了。15 年前,我自己也将这种乐趣教授给别人。教学的结果就是本课程——一门实用的学习 Python的课程。

编程人 125 Dec 17, 2022
Clock in automatically in SCU.

auto_clock_in Clock in automatically in SCU. Features send logs to Telegram bot How to use? pip install -r requirements.txt () edit user_list, token_A

2 Dec 13, 2021
1cak - An Indonesian web that provide lot of fun.

An unofficial API of 1cak.com 1cak - An Indonesian web that provide lot of fun. Endpoint Lol - 10 Recent stored posts on database Example: https://on

Dicky Mulia Fiqri 5 Sep 27, 2022
A Red Team tool for exfiltrating sensitive data from Jira tickets.

Jir-thief This Module will connect to Jira's API using an access token, export to a word .doc, and download the Jira issues that the target has access

Antonio Piazza 82 Dec 12, 2022
A collection of modern themes for Tkinter TTK

ttkbootstrap A collection of modern flat themes inspired by Bootstrap. Also includes TTK Creator which allows you to easily create and use your own th

Israel Dryer 827 Jan 04, 2023
MIB2 STD ZR Firmware Upgrade

Upgrade MIB2 STD ZR Firmware (without Navigation) About This repository contains some scripts and documentation how to upgrade the MIB2 firmware to a

Fabian 18 Dec 29, 2022
A minimalist starknet amm adapted from StarkWare's amm.

viscus • A minimalist starknet amm adapted from StarkWare's amm. Directory Structure contracts

Alucard 4 Dec 27, 2021