Giter VIP home page Giter VIP logo

ab-talbi / e-learning-app-rmi Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 0.0 370 KB

Projet de classe du module Programmation Concurrentielle et Réseau, une application E-Learning avec des classes virtuelles, dans chaque classe l'utilisateur peut envoyer des messages et des fichiers et dessiner dans un tableau partagé...

License: MIT License

Java 100.00%
filesharing java javafx downloadfile virtual-classrooms whiteboard java-rmi rmi

e-learning-app-rmi's Introduction

Projet de E-Learning avec java RMI et javaFx

Le projet se décompose en trois parties

Partie Serveur

Dans cette partie de serveur, il y a deux interfaces Remote, une pour les utilisateurs, et une autre pour les méthodes de l'administrateur, et une class Serveur qui implemente les deux interfaces.
La class Serveur a comme attribut une liste de session, cette derniere est utilisée pour enregistrer les utilisateurs connectés avec ses interfaces.

Pour la base de donnees :

nom : rmi-e-learning-db

 DB_URL = "jdbc:mysql://localhost:3310/rmi-e-learning-db";

Ici le port c'est 3310, si vous voulez le changer vous pouvez trouver cette ligne dans la classe Serveur du package serveur, ligne 20.

Il y a deux tables, une table pour les classes, et une pour les utilisateurs
Voilà des utilisateurs :

nom d'utilisateur mot de passe
admin admin
prof1 prof1
ahmed ahmed
ayoub ayoub

Partie Administrateur

Dans cette partie, le package admin, a sa propre interface graphique, apres login, l'admin a le droit de créer une classe et lui associe un professeur, il peut aussi créer un utilisateur (Etudiant, Admin, ou un Professeur).
Pour l'étudiant il faut lui associe une classe par défaut durant sa création.
image
image

Partie Utilisateur

Cette partie utilisateur est pour les professeurs et les étudiants, et ils sont séparés par le role, le professeur a des droits que l'étudiant n'a pas.
Exemple : le professeur peut interdir les étudiants de dessiner dans le tableau blanc, et il peut aussi partager des fichiers dans la zone de partage.
Les étudiants/professeurs peuvent envoyer des messages et des fichiers dans les discussions, soit du groupe ou privée.

Dans ce package on trouve une interface qui contients des méthodes Remote, ils sont utilisée par Le Serveur. UtilisateurChatController implemente cette interface.

Lancer un utilisateur et se connecter :

image

Maintenant nous somme dans la classe1
Il ya 4 zone :

  • Zone pour afficher les utilisateurs connectés, et lutilisateur peut sélectionner un autre utilisateur de la liste pour l'envoyer un message privé.
  • Zone pour les discussions, soit du groupe ou privé, on peut envoyer soit un message ou un fichier dans la discussion on a choisi.
  • Zone pour partage des fichiers, seulement le prof a le droit de diposer un fichier dans cette zone, et le autres utilisateurs (étudiants) peuvent les télechargers
  • Zone pour le tableau blanc, ici tous le monde peut dessiner, mais toujours le prof a le droit d'interdir les étudiant à dessiner ou à supprimer les dessins.



Espace du prof1 dans la classe "classe1" image

Espace du ahmed dans la meme classe "classe1" image

Ici, les utilisateurs connectés, sont seulement prof1, et létudiant ahmed.
Pour la discussion (c'est une discussion de groupe, puisque l'utilidateur ahmed ou prof n'est pas sélectionné).
Pour le tableau blanc, le prof a dessiner 'bon' en noir et ahmed a dissiné 'jour' en bleu.
Pour la zone de partagé, le prof a partagé deux fichiers, EmploisDuTempsIRISI 2022-2023 S4.pdf et IMG_1025.png, et l'étudiant peut clicker droit sur le fichier et puie clicker sur télecharger, et choisir le chemin pour enregistrer le fichier.


Maintenant pour les discussions privés, on sélectionne l'utilisateur avec "CTRL + click", et la meme chose pour le déselectionner.


Ahmed a envoyer au prof1 un message 'voila mon devoir monsieur' et puie il a envoyé un fichier 'SendAssetForm.vue' image

Maintenant prof1 a recoit le message avec le ficher, et peut télecharger le fichier. image

Réalisé par : TALBI AYOUB

e-learning-app-rmi's People

Contributors

ab-talbi avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.