classDiagram
Controller -- User
class User{
- idDafl : int
- usernameDafl : string
- nameDafl : string
- passwDafl : string
- usernameAPI : string
- passwAPI : string
- likedUser : Set<User>
- conversations : Map<User, Conversation>
+like(liked : User)
+chat(recipient : User, content : String)
}
class Conversation{
- messages : List<Message>
- firstUser : User
- secondUser : User
+addMessage(User sender,String content)
}
class Message{
- sender : User
- content : string
}
class ApiManager{
}
class Loader{
+load() * : User
}
class Saver{
+save(userToSave : User) *
}
class Controller{
+load() : User
+save(userToSave : User)
}
class DataBaseLoader{
+load() : User
}
class DataBaseSaver{
+save(userToSave : User)
}
class StubLoader{
+load() : User
}
class StubSaver{
+save(userToSave : User)
}
class DataBaseConnexion{
+initConnexion()
}
User "firstUser" -- "secondUser" Conversation
Conversation -- User
Conversation o-- Message
Controller -- Loader
Controller -- Saver
Controller -- ApiManager
DataBaseLoader -- DataBaseConnexion
DataBaseSaver -- DataBaseConnexion
Loader <|-- DataBaseLoader
Saver <|-- DataBaseSaver
Loader <|-- StubLoader
Saver <|-- StubSaver
User :
Classe modélisant un utilisateur de l'application.
Attributs :
idDafl : ID unique permettant d'identifier un utilisateur
usernameDafl : Pseudo d'un utilisateur lui permettant de s'authentifier
nameDafl : Prénom d'un utilisateur, visible par les autres utilisateurs dans l'application
passwDafl : Mot de passe de l'utilisateur lui permettant de s'authentifier
usernameAPI : Pseudo Spotify de l'utilisateur lui permettant de s'authentifier à son compte Spotify
passwAPI : Mot de passe Spotify de l'utilisateur lui permettant de s'authentifier à son compte Spotify
likedUser : Stocke les utilisateurs que cet utilisateur a liké
conversations : Stocke les conversations de l'utilisateur
Méthodes :
like(User liked) : Fonction appelé lorsqu'un utilisateur like un autre. Ajoute l'utilisateur liké dans le set likedUser.
chat(User recipient, String content) : Fonction qui ajoute un message dans la bonne conversation de l'utilisateur
Conversation :
Classe modélisant une conversation entre deux utilisateurs.
Attributs :
messages : Liste contenant tout les messages de la conversation entre les deux users
firstUser : Un des utilisateur concerné par la discussion
seconduser : Autre utilisateur concerné par la discussion
Méthodes :
addMessage(User sender,String content) : Fonction qui ajoute un message dans la conversation
Message :
Classe modélisant un message présent dans une discussion.
Attributs :
sender : utilisateur qui a envoyé le message
content : contenu du message
DataBaseManager :
Classe Manager qui gère l'accès à la base de données. Le Manager fait appel à des sous classes qui gèrent une partie spécifique d'accès à la base de données.
Attributs :
cache : Fichier contenant les logs de l'utilisateur afin qui'il n'ai pas besoin de se reconnecter à chaque fois qu'il démarre l'application.
id : L'identifiant unique de l'utilisateur
password : Le mot de passe de l'utilisateur
pers : Sous Manager de DataBaseManager qui gère la base de données
Méthodes :
readAccountCacheFile() : Cherche les logs d'un utilisateur dans un fichier cache et retourne l'utilisateur à qui correspond les logs
IPersistenceManager :
Classe IPersistenceManager : Interface permettant d'implémenter plusieurs façons d'accéder à la base de données.
Méthodes :
search(String id, String password) : Cherche si un utilisateur est dans la base de données. Effectue sa recherche avec l'id et le password d'un utilisateur.
save() : Enregistre les données d'un utilisateur dans la base de données.
load(String id, String password) : Charge les données de l'utilisateur en les cherchant dans la base de données avec son id et son password.
StubPersistence :
Classe implémentant les fonctions de IPersistenceManager. Simule une fausse base de données (liste d'utilisateurs) stockant des utilisateurs.
Attributs :
userDataBase : Stocke les utilisateurs
Méthodes :
createUser(String userName, String name, String password) : Instancie un utilisateur avec ses données (name, username, password) et le retourne
addUserInDatabase(User UsrToAdd) : Ajoute un utilisateur dans la liste d'utilisateur
load(String id, String password) : Crée des utilisateurs dont un utilisateur courant avec un id et un password donné en paramètre et les ajoute dans la liste
bool search(String id, String password) : Cherche un utilisateur dans la liste et retourne vrai si il existe