yiddishgun11 / shuffletunes Goto Github PK
View Code? Open in Web Editor NEWInterconnected speakers with Raspberry Pi & WebApp for school project đ”
Interconnected speakers with Raspberry Pi & WebApp for school project đ”
Important
La US a pour but de mettre à disposition un formulaire d'inscription pour tout les utilisateurs non connecté de créer un compte pour qu'il ait accÚs aux fonctionnalités de la webapp qui sont développés dans d'autres US.
Le formulaire d'inscription comporte 3 champs : un pseudo, un mot de passe et une vérification du mot de passe.
Ces champs sont soumis à différentes vérification en front et en back end.
En front end :
- le pseudo doit avoir une longueur comprise entre 5 et 20 caractĂšres et doit autoriser les caractĂšres @
et _
ainsi que les chiffres
- le mot de passe doit comporter au moins un chiffre, une lettre majuscule, une lettre minuscule et un caractÚre spécial (@ > < ! - _ %
ainsi qu'une longueur comprise entre 10 et 20 caractĂšres
- la vĂ©rification du mot de passe consiste Ă s'assurer que les valeurs de ce champs sont les mĂȘme que le champs mot de passe
En back end :
- le pseudo doit avoir une longueur comprise entre 5 et 20 caractĂšres, doit autoriser les caractĂšres @
et _
ainsi que les chiffres et ne doit pas déjà exister dans la base de donnée
- le mot de passe doit comporter au moins un chiffre, une lettre majuscule, une lettre minuscule et un caractÚre spécial (@ > < ! - _ %
ainsi qu'une longueur comprise entre 10 et 20 caractĂšres
- la vĂ©rification du mot de passe consiste Ă s'assurer que les valeurs de ce champs sont les mĂȘme que le champs mot de passe
La police de sécurité a été revue. Plus d'infos ici : #21 (comment)
Si les vĂ©rifications front end ne passent pas, le(s) champs problĂ©matique(s) changent de couleurs et indique ce qui ne va pas. De plus, l'envoi de la requĂȘte via le bouton "Register" est bloquĂ©.
Si les vérifications back end ne passent pas, l'inscription n'a pas lieu et un message d'erreur expliquant le problÚme s'affiche sur la page.
Si tout se passe bien, un message de succÚs apparait et je suis redirigé vers la page de connexion
3
5h
L'enpoint a toujours un utilisateur hardcodĂ©. Cela doit ĂȘtre changĂ© afin de prendre l'utilisateur actuellement connectĂ©.
Important
L'utilisateur pourra lancer un fichier musical afin de pouvoir l'écouter sur les différentes enceintes du systÚme.
Le bouton "play" permettant de lancer la musique se trouvera au bas-centre de l'application web afin d'ĂȘtre le plus visible possible pour l'utilisateur. Le bouton sera reprĂ©sentĂ© par une icone de type "play". Celui-ci cliquĂ© lancera la musique sĂ©lectionnĂ©e et se modifiera en changeant de fonctionnalitĂ© et d'icone de type "pause".
La barre sera visible tout le temps sur la WebApp.
Les utilisateurs concernés seront tous ceux connectés à l'application WebApp.
Un utilisateur se connecte grùce à ses informations d'authentification. Celui-ci connecté arrive sur l'application et peut directement voir la barre de gestion de son. Il pourra ensuite aller sélectionner une musiques dans ses playlists et double-cliqué dessus pour lancer la musique sélectionnée. Le bouton "play" changera d'icone et sera recliquable pour mettre pause à la musique.
7
10h
Il faut des tests pour la US #25 en front et en back
Il est nécessaire qu'un dossier utilisateur soit créer sur le serveur SFTP lors de son inscription sinon celui-ci ne pourra pas upload et lire ses musiques via l'application.
Il nous a été conseillé de rajouter un captcha lors de l'inscription
Le RGPD indique que le consentement d'une personne doit ĂȘtre claire pour une fonctionnalitĂ© donnĂ©e. Il faut donc ajouter une case Ă cocher lors de l'inscription spĂ©cifiant que l'utilisateur Ă lu et accepte notre traitement des donnĂ©es personnelles
Les tests automatique fait par github action ne fonctionne pas. Les tests utilisent le mĂȘme port (5000) en mĂȘme temps, ce qui fait rater les tests qui n'ont pas eu accĂšs Ă ce dis port
Il faudrait faire un check de toute l'application pour s'assurer qu'elle soit un minimum accessible aux personnes ayant un handicape.
Important
Tout utilisateur connecté aura la possibilité d'accéder au panneau de réglages de l'application afin de modifier les paramÚtre qu'il souhaite changer (profil, couleurs, etc.)
A venir
L'utilisateur à accÚs au panneau de réglages grùce à un icone adéquat dans la barre de navigation
L'utilisateur Ă accĂšs au panneau de configuration
Les réglages se présentent sous la forme d'une liste déroulante proposant à l'utilisateur les différents options possibles.
La US respecte le design et la colorimétrie du projet
La US passe les testes de vérifications généraux
La US passe ses testes de vérifications spécifiques
6
8h
Il faut mettre en place des moyens d'actions et d'informations pour les utilisateurs en cas de fuite de données
Un utilisateur non connecté ne devrait pas avoir accÚs au dashboard. Il faut le bloqué.
Prioritaire
L'utilisateur doit pouvoir liker des chansons depuis ses playlists afin qu'elles puissent aller dans une section nommée 'favorits'
L'utilisateur Ă accĂšs Ă la section "favoris" disponible dans la barre de navigation de l'application
L'utilisateur Ă accĂšs Ă la liste de ses musiques
L'utilisateur dispose d'un bouton de forme de coeur lui permettant de liker / disliker la musique de son choix
Lorsque l'utilisateur like une chanson celle-ci se retrouve dans la liste des 'favoris' et le coeur de like est rempli pour signaler que la chanson à belle et bien été likée
Lorsque l'utilisateur dislike une chanson celle-ci ne se trouve plus dans la liste des "favoris" et le coeur des like n'est plus rempli
On ne peut liker qu'une seule chanson Ă la fois
La US respecte le design et la colorimétrie du projet
La US passe les testes de vérifications généraux
La US passe ses testes de vérifications spécifiques
Sur une échelle de 1 à 10, nous avons décidé que cette US représenterait une difficulté de 6.
6h
Il faut donner la possibilité à l'utilisateur de supprimer ses données de l'application quand il le veut.
Erreurs liés aux différentes commandes contenu dans exec.js.
CodeQL a détecté des erreurs de sécurité:
Ce bug apparait depuis la PR #53.
Important
L'utilisateur aura la possibilitĂ© de cliquer sur un bouton situĂ© en haut Ă droite de la fenĂȘtre d'affichage de son profil afin de pouvoir modifier les informations s'y trouvant.
Page de Profil :
4
3h
Il faut des test back end et front end pour la US #21
Important
l'utilisateur aura la possibilité de consulter la liste de ses playlists ou il aura la possibilité d'y rajouter des sons afin de trier ses musiques
1.1 Liste des Playlists
Lorsque l'utilisateur se rend dans l'onglet "playlists" de l'application, celui-ci peux consulter la liste de ses playlists précédemment créées ou sinon se retrouve face à un message lui permettant de savoir qu'il n'a pas encore de playlists
1.2 Listes des playlists + musiques
Lorsque l'utilisateurs clique sur une playlist, celle-ci s'ouvre de façon "dropdown" et la liste des musique associée à la playlist en question s'affiche
1.3 Créer une playlist
L'utilisateur peut, s'il le veut créer une nouvelle playlist et la rajouter à la liste de ses playlists
1.4 Supprimer des musiques dans une playlist
L'utilisateur peut, s'il le souhaite, supprimer des chansons de ses playlists
1.5 Supprimer une playlist
L'utilisateur peut, s'il le souhaite, supprimer une playlist existente qu'il ne souhaite plus utiliser
L'utilisateur Ă accĂšs Ă la section "playlist" disponible dans la barre de navigation de l'application
L'utilisateur Ă accĂšs Ă la liste de ses playlists
L'utilisateur dispose d'un bouton lui permettant de créer une nouvelle playlist
Lorsque l'utilisateur créer une playlist, celle-ci s'affiche bien dans la liste des playlists lors d'un refresh de la page
Lorsque l'utilisateur click sur une playlist, il a accĂšs Ă la liste des musiques de cette playlist
On ne peut créer qu'une playlist à la fois
La US respecte le design et la colorimétrie du projet
La US passe les testes de vérifications généraux
La US passe ses testes de vérifications spécifiques
Sur une échelle de 1 à 10 et comparé aux autres US, nous plaçons celle ci sur un niveau de difficulté de 8 pour le nombre de critÚres associés à celle-ci
On arrive pas Ă accĂ©der au dashboard mĂȘme si on est connectĂ©. Le onEnter de la route vers le dashboard est probablement la cause
WARNING : Cette US ressemble probablement trop à un regroupement de tùches techniques sans pour autant réellement apporter une nouvelle fonctionnalité à l'utilisateur.
Prioriatire
L'US a pour but de mettre en service l'application totalement en local.
Ce support doit ĂȘtre portable, prĂ© configurĂ© et sans action de l'utilisateur nĂ©cessaire afin de le faire fonctionner.
Il doit pouvoir ĂȘtre utilisĂ© dans un endroit isolĂ© de tout rĂ©seau, ou cable possible.
Le module central doit pouvoir communiquer avec les modules FM sans l'application d'un support physique et sans internet.
On utilisera donc un raspberry et il se composera de plusieurs serveurs :
N/A
6
Beaucoup 15h
Important
La US a pour but de mettre à disposition un formulaire de connexion pour tous les utilisateurs non connecté pour qu'il puisse avoir accÚs à la page Dashboard et donc profité des fonctionnalités de l'application.
Le formulaire de connexion comporte 2 champs : un pseudo et un mot de passe.
Si les champs sont vide, rien ne se passe lorsqu'on effectue la requĂȘte.
Si le pseudo ou le mot de passe est incorrecte, un message d'erreur apparait. Ce message doit ĂȘtre gĂ©nĂ©rique et ne doit en aucun cas prĂ©ciser si c'est le pseudo ou le mot de passe qui pose problĂšme.
Si le pseudo et le mot de passe sont correctes, un token d'identification est crée et permet à l'utilisateur d'accéder à la page Dashboard et d'utilisé les fonctionnalités de l'application.
EN COURS
3
5h
Important
L'utilisateur connecté pourra accéder à ces quelques informations personnelles à l'aide de cette fonctionnalité. Celle-ci permettra d'afficher un petit composant en haut à droite de l'écran de l'utilisateur et reprendra l'image et le pseudo de l'utilisateur actuellement connecté. Un bouton sera également présent en haut à droite du composant afin d'accéder à une page reprenant plus de détails du compte et également une option de modification de ces informations.
Ce composant apparaitra en cliquant sur lâicĂŽne "personnage" se trouvant en haut Ă droite de l'Ă©cran. Pour refermĂ© le composant, il faudra recliquer sur l'icĂŽne cliquĂ© prĂ©cĂ©demment pour ouvrir le composant.
Dashboard général :
Cliqué sur l'icÎne mise en évidence pour faire apparaitre le composant :
Apparition du composant :
5
5h00
Prioriatire
La US consiste à donner la capacité à l'utilisateur connecté d'upload sa musique .wav
et .mp3
sur le Raspberry Pi pour qu'elle soit disponible sur l'application et à ses différentes fonctionnalités développée lors d'autre US. Les fichiers musicaux présent sur le device utilisateur seront ainsi disponible sur le serveur FTP du Raspberry Pi.
Avant l'envoi des fichiers musicaux sur le serveur, l'utilisateur connecté a accÚs à une liste des musiques qu'il a soumis au formulaire d'envoi et à la capacité de supprimer une ou plusieurs musiques présents dans la liste.
Des pop-up s'affiche lors de la soumission de musiques dans le formulaire, lors du succÚs ou la réussite de l'upload et lors de l'annulation de l'upload.
La fonctionnalité sera disponible sur la page "Dashboard" en cliquant sur le bouton "Upload new file".
.wav
ou .mp3
, ceux-ci sont rajouter dans la liste les fichiers en attente d'upload et une pop-up signalant cet ajout apparait..wav
ou .mp3
, ceux-ci ne sont pas pris en compte.7
20 h
Divers problÚmes de sécurité ont été détecter via CodeQL, il est primordial de résoudre ces problÚmes et fermer les failles
Tous les problĂšmes : https://github.com/YiddishGun11/ShuffleTunes/security/code-scanning
Il n'y a pas encore de tests front et back pour la US1. Il faut les faire
Il faut qu'on mette un lien vers notre Privacy Policy et qu'on la rédige
A declarative, efficient, and flexible JavaScript library for building user interfaces.
đ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. đđđ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google â€ïž Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.