My Feature
For my capstone project, I developed a dynamic music streaming platform akin to Spotify, catering to users who enjoy gaming while listening to their favorite tunes, all within a unified interface. My endeavor involved crafting two essential tables within a single SQLite database. The first table meticulously stores user data, encompassing vital information such as usernames, IDs, securely encrypted login credentials, and date of birth for enhanced security and personalization. The second table is dedicated to song information, meticulously cataloging details like track names, artists, audio specifications, and album artwork, ensuring a comprehensive musical experience.
Delving into the backend development, I meticulously engineered the song database from the ground up, laying the foundation and meticulously initializing it for seamless functionality. Leveraging my coding prowess, I orchestrated the backend infrastructure, ensuring robust connectivity and efficiency. This involved meticulously crafting endpoints to facilitate smooth communication between the frontend and backend components.
Transitioning to the frontend realm, I meticulously architected a visually appealing interface, meticulously designing a sleek table layout to showcase an extensive library of songs. Each element, from the vibrant album covers to the intuitive play button, was meticulously crafted to enhance user engagement and satisfaction. Not content with mere aesthetics, I ensured that each component was seamlessly integrated with the backend, guaranteeing a fluid user experience.
One standout achievement was the implementation of a fully functional play button, seamlessly interfacing with the backend to effortlessly retrieve the URI links of audio files. This not only demonstrates my adeptness at frontend development but also underscores my proficiency in establishing robust connections between disparate components of the application.
In essence, my capstone project represents a harmonious fusion of backend and frontend expertise, culminating in a polished music streaming platform that promises to elevate the user experience to new heights.
What Is Spotify
Spotify is a popular digital music streaming service that offers users access to millions of songs, podcasts, and videos from artists and content creators around the world. Launched in 2008, Spotify has become one of the leading platforms for music consumption globally.Overall, Spotify has revolutionized the way people access and enjoy music, offering a convenient and immersive listening experience accessible to millions of users worldwide.
Collections
Requirements |
My Feature |
From VSCode using SQLite3 Editor, show your unique collection/table in database, display rows and columns in the table of the SQLite database. |
This database contains the data for each song, which is my feature. |
From VSCode model, show your unique code that was created to initialize table and create test data. |
This is the code initializing the table in my model file. It creates the relationship between the back + frontend. |
Lists and Dictionaries
Requirements |
My Feature |
In VSCode using Debugger, show a list as extracted from database as Python objects. |
I debug my collection feature with a breakpoint in the endpoint code. It calls the class and hits the breakpoint. Then I step throught the function as the data gets sent to the frontend. |
In VSCode use Debugger and list, show two distinct example examples of dictionaries, show Keys/Values using debugger. |
This show the dictionary of all the songs, with atributes such as artist and album cover. |
APIs and JSON
Requirements |
My Feature |
In VSCode, show Python API code definition for request and response using GET, POST, UPDATE methods. Discuss algorithmic condition used to direct request to appropriate Python method based on request method. |
This is my API endpoint code that uses a GET method to obtain the data from my backend. The class defines another resource for retrieving the collection of songs and information from the database. It also includes the query function that filters for a specific song that may be inputted. |
In VSCode, show algorithmic conditions used to validate data on a POST condition. |
This is my API endpoint code for my machine learning project. It recives the song IDs imputed by the user in the frontend, and validates it by checking if the value is null or is the value is not an integer. If that is the case it returns a bad request error. If the song IDs are valid, it imputs them into the prediction model. |
In Postman, show URL request and Body requirements for GET, POST, and UPDATE methods. |
|
In Postman, show the JSON response data for 200 success conditions on GET, POST, and UPDATE methods. |
|
In Postman, show the JSON response for error for 400 when missing body on a POST request. |
|
In Postman, show the JSON response for error for 404 when providing an unknown user ID to a UPDATE request. |
|
Frontend
Requirements |
My Feature |
In Chrome inspect, show response of JSON objects from fetch of GET, POST, and UPDATE methods. |
|
In the Chrome browser, show a demo (GET) of obtaining an Array of JSON objects that are formatted into the browsers screen. |
I will demo opening the froentend. The song data is formated into containers and displayed in a card format with the image displayed. |
In JavaScript code, describe fetch and method that obtained the Array of JSON objects. |
This fetches the variable API endpoint, that will change depending on the song you click on. If the ply button is clicked on, it creates the bar at the bottom that displays the current song name, artist, and album cover. Here is that code |
In JavaScript code, show code that performs iteration and formatting of data into HTML. |
This iterates through the card data from the backend, and creates the container in HTML so it can be displayed with the song image icons. |
In the Chrome browser, show a demo (POST or UPDATE) gathering and sending input and receiving a response that show update. Repeat this demo showing both success and failure. |
I will open a the frontend and play a song with the endpoint code functioning, and open the frontend with the backend turned off to demonstrate a failure. |
In JavaScript code, show and describe code that handles success. Describe how code shows success to the user in the Chrome Browser screen. |
This code runs the songs from the fetch data into a display fards function that appends the songs to their containers, created in the styling. |
In JavaScript code, show and describe code that handles failure. Describe how the code shows failure to the user in the Chrome Browser screen. |
This checks if there is an error in the backend. If there is, it will display the error in the console. |
-
Show algorithms and preparation of data for analysis. This includes cleaning, encoding, and one-hot encoding.
-
Show algorithms and preparation for predictions.
-
Discuss concepts and understanding of Linear Regression algorithms.
Linear Regression is a fundamental statistical method used to analyze and understand the relationship between a dependent variable (such as house prices) and one or more independent variables (like size or number of bedrooms). This method assumes that this relationship can be approximated by a straight line. Imagine plotting data points on a graph where the vertical axis represents the dependent variable and the horizontal axis represents the independent variable(s). Linear Regression aims to find the best-fitting line through these points by adjusting the slope and intercept of the line to minimize the difference between predicted values and actual data points. This technique is widely used in various fields such as economics, finance, and engineering to make predictions or infer relationships between variables.
- Discuss concepts and understanding of Decision Tree analysis algorithms.
Decision Trees are a type of model used in machine learning and data mining for making decisions based on input features. They resemble flowchart-like structures where each internal node represents a question or a test on a specific feature, each branch represents the possible answer or outcome of the test, and each leaf node represents a final decision or classification. Decision Trees are used for both classification and regression tasks and are particularly useful for understanding the underlying patterns in data. They can handle both numerical and categorical data and are capable of capturing complex relationships between variables, making them versatile for various applications such as customer segmentation, fraud detection, and medical diagnosis.