Skip to content

ShayanShahrabi/Spotify-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Spotify-Project

Introduction

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.

Objectives

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

Pre Requirements

  • Java
  • SQLITE
  • JavaFX
  • Netbeans / IntelliJ as an IDE
  • Ant / Gradle as a build system for the projec

UML Design

SpotifyClient SpotifyServer

Implementation

The project has 3 main parts:

  1. SpotifyClient
  2. SpotifyServer
  3. 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 using DBManager 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.

Creating GUI

The main tool for designing graphical user interface for this project is JavaFX.

Database Structures

Presentation

This is the link to the slides used for project presentation.

How to run the code?

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 =) .

Contributers

date/time

Spring of 2023 (Version 1.0)

Resources