Music Player

I made this project for my first .NET dev class.

It was a 4 weeks long project.

This is a web music player.
The concept is pretty simple : Anyone can access the app but you need to be authentified to use it.
You can create different playlists that you and only you can access.
Songs can be uploaded by any authentified user, either in audio format or from a Youtube video. They're visible by all users

Main used technologies are ASP.NET in C# with MySql database, Razor and simple web technologies as HTML, CSS and JavaScriptJQuery.
The app was deployed on Azure.

Music Player

J'ai réalisé ce projet pour mon premier cours de développement .NET.

C'était un projet d'un mois.

C'est une application web de streaming musical.
Le concept est plutôt simple : Tout le monde peut accéder à l'application mais il faut s'authentifier pour l'utiliser.
L'utilisateur peut créer plusieurs playlists auxquelles il sera le seul à avoir accès.
Les musiques quant à elles peuvent être uploadées par n'importe quel utilisateur connecté, sous format audio ou depuis une vidéo Youtube. Elles sont communes à tous les utilisateurs.

Les principales technologies utilisées sont ASP.NET en C# avec une base de données MySql, Razor and les technologies web basiques comme HTML, CSS et JavaScriptJQuery.
L'application a été déployée sur Azure.

A brief presentation of main features

Une petite présentation


Application architecture

L'architecture de l'application

-The backend is in ASP.NET/C#.
-The frontend is using Razor and basic web technologies.
-Data is stored in a MySql database but songs are stored in mp3 format on the server.

-LE backend est en ASP.NET/C#.
-Le frontend utilise Razor et les technologies web basiques.
-Les données sont stockées dans une bdd MySql mais les chansons sont stockées sur le serveur sous format mp3.

Login and register

Connexion et inscription

Users can use this form to login/register.

When the user isn't authentified, he can only access this page as all other pages lead to an error message which tells him to authentify.

Of course the application uses many security features as hash, JWT, SCRF Tokens, HTTPS etc...

Les utilisateurs peuvent utiliser ce formulaire pour se connecter ou s'inscrire.

C'est la seule page à laquelle peut avoir accès un utilisateur non connecté puisque toutes les autres pages mèneront à un message lui demandant de se connecter.

Biensûr l'application utilise plusieurs features de sécurité comme le hash, JWT, SCRF Tokens, HTTPS etc...


Here's the error message when a user tries to access an route without being authentified.

Voici le message qu'a un utilisateur non connecté quand il essaie d'accéder à une route interdite.

Music

Musique

All authentified users can access this page, and songs are common to all users.

Tous les utilisateur connectés peuvent avoir accès à cette page et les musiques sont communes à tous les utilisateurs.

They can also upload new songs on this from.

Ils peuvent aussi uploader de nouvelles musiques ici.

They can upload songs using :

Ils peuvent le faire en utilisant :

- Mp3/wav format

- Des fichies Mp3/wav.

- Youtube links : the application converts the video to mp3 format and stores it.

They can name the artist and the song themselfs, but if they don't do, those filds will be automatically generated from the file/video.

- Des liens Youtube : L'application convertit en mp3 et les stocke.

Ils peuvent remplir le nom de la chanson et de l'artiste eux même, mais s'ils ne le font pas l'application les génère depuis le fichier/vidéo.

Playlists

This is where users can create/edit/delete their playlists.

C'est ici que l'utilisateur peut créer/éditer/supprimer ses playlists.

They can click a playlist to open the player :

Il peut accèder au lecteur en cliquant sur une playlist :

In the player, users can :
- Play/Stop music.
- Go directly to a part of the current music.
- Change music
- Adjust volume.
- Change player's color.
To Play/Stop, adjust volume and change music, they can either us the buttons or keyboard shortcuts.
User's preferences (volume, player's color etc..) are saved and used by default when he opens the player.
They can also play a music individually from the songs list.

Dans celui-ci il peut :
- Démarrer/Arrêter la musique.
- Passer directement à un certain instant de la musique.
- Changer la musique
- Ajuster le volume.
- Changer les couleurs du lecteur.
Pour Play/Stop, le volume et le changement de musique, il peut utiliser les boutons ou les raccourcis clavier.
Les préférences de l'utilisateur sont stockées (volume, couleur etc..) et utilisées par défault à chaque fois qu'il utilise le lecteur.
L'utilisateur peut aussi jouer une musique directement depuis la liste des musiques.

Mobile

The application is responsive and adapts to device's screen. So it can also be used on mobile/tablets.

L'application est responsive et s'adapte à l'écran. L'application peut donc aussi être utilisée sur mobile/tablette.

Security

Sécurité

This application uses many security feature as :
-HTTPS
-JWT
-CSRF Tokens
-Rate limit (to prevent DDOS)
-XSS filter
-Password hash (Bcrypt)
-And others...

L'application utilise plusieures features de sécurité comme :
-HTTPS
-JWT
-CSRF Tokens
-Rate limit (contre les attaques DDOS)
-Filtre XSS
-Hash des mots de passe (Bcrypt)
-Et d'autres encore...