This is the final project of our Advanced Programming course in Shahid Beheshti University. It's a clone of the famous music-streaming application Spotify designed using Java programming language.
From here, you can acces the project documentation as well.
Here is a list of concepts which where used through out the project:
- Using OOP concepts
- Database design
- Multithreading concepts
- Socket Programming
- Data encryption
- Designing graphical user interface with JavaFX
- Java
- SQLITE
- JavaFX
- Netbeans / IntelliJ as an IDE
- Ant / Gradle as a build system for the projec
The project has 3 main parts:
SpotifyClient
SpotifyServer
Sockets
SpotifyClient
This is the package that is considered to be the interface/app layer of the project. It's repsonsible for getting input from a client, sending it through a socket to the server and waiting for a proper response.SpotifyServer
The server is responsible for reading the requests from each clinet, either respoend directly or acces the database usingDBManager
class methods and then, responding back to the client. It's worth noting that the server is multithreaded, which means it can handle dealing with multiple reqeusets as well. Also a server log a printed to the terminal to show what the server is doint at the moment.Sockets
It's worth noting that all the data passed between each client and the server is done through the use of sockets. In fact, each request from the client is sent to the socket, then server receives it and responds properly through the same socket for each client.
The main tool for designing graphical user interface for this project is JavaFX.
This is the link to the slides used for project presentation.
From branch netbeans
, clone the the 2 derectories SpotifyServer
and SpotifyClient
to your local machine, then (using netbeans), first run the SpotifyServer
first, you shall see a Listening ...
massage, then open SpotifyClient
and run it, you shall see a window pop-up, a login page. Now you are good to go =) .
- Course instructor: Dr.Saeed Reza Kheradpisheh
- Project mentor: Mobin Nesari
- Project judge: Arsham Gholamzadeh
- Design:Shayan Shahrabi Farahani, Rana Rokni, Farid Karimi
Spring of 2023 (Version 1.0)