Music Streaming Platform Development: A Comprehensive Guide, Lecture notes of Introduction to Computing

Cloud Computing Cloud Computing

Typology: Lecture notes

2022/2023

Uploaded on 08/14/2023

ngo-thi-khanh-chi-btec-hn
ngo-thi-khanh-chi-btec-hn 🇻🇳

8 documents

1 / 64

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
INDIVIDUAL PROJECT FRONT SHEET
Qualification BTEC Level 5 HND Diploma in Computing
Unit number and title Semi Project
Submission date 11/08/2023 Date Received 1st submission
Re-submission Date Date Received 2nd submission
Student Name Pham Xuan Hai Student ID IT0503
Class IT0503 Assessor name Ngo Thi Mai Loan
Student declaration
I certify that the assignment submission is entirely my own work and I fully understand the consequences of plagiarism. I understand that
making a false declaration is a form of malpractice.
Student’s signature hai
Grade
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40

Partial preview of the text

Download Music Streaming Platform Development: A Comprehensive Guide and more Lecture notes Introduction to Computing in PDF only on Docsity!

INDIVIDUAL PROJECT FRONT SHEET

Qualification BTEC Level 5 HND Diploma in Computing Unit number and title Semi Project Submission date 11/08/2023 Date Received 1st submission Re-submission Date Date Received 2nd submission Student Name Pham Xuan Hai Student ID IT Class IT0503 Assessor name Ngo Thi Mai Loan Student declaration I certify that the assignment submission is entirely my own work and I fully understand the consequences of plagiarism. I understand that making a false declaration is a form of malpractice. Student’s signature hai Grade

❒ Summative Feedback: ❒ Resubmission Feedback:

Grade: Assessor Signature: Date: Signature & Date:

  • I. INTRODUCTION------------------------------------------------------------------------------------------------------------------------
  • II. BODY------------------------------------------------------------------------------------------------------------------------------------
      1. USER REQUIREMENTS-----------------------------------------------------------------------------------------------------------------
        1. Project Requirement---------------------------------------------------------------------------------------------------------------
        1. Functional Requirements---------------------------------------------------------------------------------------------------------
        1. Non-Functional Requirements--------------------------------------------------------------------------------------------------
      1. SYSTEM DESIGNS--------------------------------------------------------------------------------------------------------------------
        1. Use-case design--------------------------------------------------------------------------------------------------------------------
        • Use case description:---------------------------------------------------------------------------------------------------------------------------
        1. Entity Relationship Diagram (ERD)------------------------------------------------------------------------------------------
        • EDR Documentation:---------------------------------------------------------------------------------------------------------------------------
        1. Sitemap-----------------------------------------------------------------------------------------------------------------------------
        1. Wireframes-------------------------------------------------------------------------------------------------------------------------
      1. IMPLEMENTATION-------------------------------------------------------------------------------------------------------------------
        1. MVC in Laravel--------------------------------------------------------------------------------------------------------------------
        1. Sample Source Code--------------------------------------------------------------------------------------------------------------
        • 2.1 Project Structure---------------------------------------------------------------------------------------------------------------------------
        • 2.2 Project Elements---------------------------------------------------------------------------------------------------------------------------
        1. Web Screenshot-------------------------------------------------------------------------------------------------------------------
  • III. CONCLUSION------------------------------------------------------------------------------------------------------------------------
  • IV. APPENDIX---------------------------------------------------------------------------------------------------------------------------
      1. TASKS--------------------------------------------------------------------------------------------------------------------------------
      1. GITHUB-------------------------------------------------------------------------------------------------------------------------------
  • FIGURE 1: USE-CASE ADMIN------------------------------------------------------------------------------------------------------------------- Table of Figures
  • FIGURE 2: ENTITY RELATION DIAGRAM------------------------------------------------------------------------------------------------------
  • FIGURE 3: EDR IN PHPMYADMIN--------------------------------------------------------------------------------------------------------------
  • FIGURE 4: SITEMAP OVERVIEW----------------------------------------------------------------------------------------------------------------
  • FIGURE 5: SITEMAP FOR GUEST---------------------------------------------------------------------------------------------------------------
  • FIGURE 6: SITEMAP FOR USER-----------------------------------------------------------------------------------------------------------------
  • FIGURE 7: SITEMAP FOR ADMIN---------------------------------------------------------------------------------------------------------------
  • FIGURE 8: WIREFRAME GENRE MANAGEMENT PAGE-----------------------------------------------------------------------------------------
  • FIGURE 9: WIREFRAME ALBUM MANAGEMENT PAGE----------------------------------------------------------------------------------------
  • FIGURE 10: WIREFRAME SONG & ALBUM MANAGEMENT PAGE-----------------------------------------------------------------------------
  • FIGURE 11: PROJECT STRUCTURE-------------------------------------------------------------------------------------------------------------
  • FIGURE 12: MIGRATION GENRES--------------------------------------------------------------------------------------------------------------
  • FIGURE 13: MODEL GENRE--------------------------------------------------------------------------------------------------------------------
  • FIGURE 14: GENRE CONTROLLER (1)--------------------------------------------------------------------------------------------------------
  • FIGURE 15: GENRE CONTROLLER (2)--------------------------------------------------------------------------------------------------------
  • FIGURE 16: GENRE CONTROLLER (3)--------------------------------------------------------------------------------------------------------
  • FIGURE 17: GENRE CONTROLLER (4)--------------------------------------------------------------------------------------------------------
  • FIGURE 18: ROUTER GENRE-------------------------------------------------------------------------------------------------------------------
  • FIGURE 19: VIEW GENRE----------------------------------------------------------------------------------------------------------------------
  • FIGURE 20: VIEW GENRE (ADD)--------------------------------------------------------------------------------------------------------------
  • FIGURE 21: VIEW GENRE (EDIT)--------------------------------------------------------------------------------------------------------------
  • FIGURE 22: MIGRATION ALBUM--------------------------------------------------------------------------------------------------------------
  • FIGURE 23: MODEL ALBUMS------------------------------------------------------------------------------------------------------------------
  • FIGURE 24: ALBUM CONTROLLER (1)--------------------------------------------------------------------------------------------------------
  • FIGURE 25: ALBUM CONTROLLER (2)--------------------------------------------------------------------------------------------------------
  • FIGURE 26: ALBUM CONTROLLER (3)--------------------------------------------------------------------------------------------------------
  • FIGURE 27: ALBUM CONTROLLER (4)--------------------------------------------------------------------------------------------------------
  • FIGURE 28: ROUTER ALBUM------------------------------------------------------------------------------------------------------------------
  • FIGURE 29: VIEW ALBUM---------------------------------------------------------------------------------------------------------------------
  • FIGURE 30: VIEW ALBUM (ADD)--------------------------------------------------------------------------------------------------------------
  • FIGURE 31: VIEW ALBUM (EDIT)-------------------------------------------------------------------------------------------------------------
  • FIGURE 32: MODEL ALBUMSONG-------------------------------------------------------------------------------------------------------------
  • FIGURE 33: SONGALBUM CONTROLLER (1)-------------------------------------------------------------------------------------------------
  • FIGURE 34: SONGALBUM CONTROLLER (2)-------------------------------------------------------------------------------------------------
  • FIGURE 35: SONGALBUM CONTROLLER (3)-------------------------------------------------------------------------------------------------
  • FIGURE 36: ROITER ALBUMSONG-------------------------------------------------------------------------------------------------------------
  • FIGURE 37: VIEW SONGALBUM---------------------------------------------------------------------------------------------------------------
  • FIGURE 38: VIEW SONGALBUM (EDIT)-------------------------------------------------------------------------------------------------------
  • FIGURE 39: GENRE MANAGEMENT PAGE-----------------------------------------------------------------------------------------------------
  • FIGURE 40: GENRE MANAGEMENT PAGE (ADD)---------------------------------------------------------------------------------------------
  • FIGURE 41: GENRE MANAGEMENT PAGE (EDIT)---------------------------------------------------------------------------------------------
  • FIGURE 42: ALBUM MANAGEMENT PAGE----------------------------------------------------------------------------------------------------
  • FIGURE 43: ALBUM MANAGEMENT PAGE (ADD)--------------------------------------------------------------------------------------------
  • FIGURE 44: ALBUM MANAGEMENT PAGE (EDIT)--------------------------------------------------------------------------------------------
  • FIGURE 45: SONG & ALBUM MANAGEMENT PAGE-------------------------------------------------------------------------------------------
  • FIGURE 46: SONG & ALBUM MANAGEMENT PAGE (ADD)-----------------------------------------------------------------------------------
  • FIGURE 47: GITHUB COMMIT CODE (1)------------------------------------------------------------------------------------------------------
  • FIGURE 48: GITHUB COMMIT CODE (2)------------------------------------------------------------------------------------------------------

I. Introduction

In this assignment, I am pleased to present a comprehensive report on our team's music streaming website project built using Laravel. This project aimed to cater to the growing demand for music listening and sharing within the music-loving community. Throughout this report, I will delve into the various aspects of the music streaming website's development and highlight the specific tasks I undertook as a member of the team. From designing and implementing the database architecture to handling user management and security features, I actively contributed to creating a seamless and enjoyable music experience for our users. Additionally, I will also discuss the challenges we encountered during the project's lifecycle and the effective strategies we employed to overcome them. The collaborative efforts and dedication of our team played a pivotal role in ensuring the success and high-quality of the final product. This assignment aims to provide a comprehensive overview of our music streaming website project, shedding light on both the technical aspects and the teamwork that made it possible. By sharing my contributions and experiences, I hope to inspire and inform readers about the process of building a successful web application using Laravel.

 The website should offer recommendations and personalized suggestions based on user preferences and listening history. Playlist Management:  Users should be able to create, modify, and manage their playlists.  The website should support adding songs from the catalog to user playlists and arranging the songs in a desired order. Admin Dashboard:  An administrative dashboard should be available for authorized administrators to manage user accounts, music catalog, genres, artists, and albums.  The admin dashboard should include functionalities for adding, editing, and deleting content as well as managing user permissions. Security and Privacy:  The website should implement appropriate security measures to protect user data and prevent unauthorized access.  Privacy settings should allow users to control the visibility of their profile and listening activity. Performance and Scalability:  The website should be optimized for performance to ensure fast loading times and smooth user experience.  It should be designed to handle a growing user base and accommodate increased traffic and data storage requirements.

2) Functional Requirements

User Registration and Authentication:  The system should allow users to register for an account with a unique email and password.

 The system should verify user credentials during the login process and provide access only to authenticated users. User Profile:  The system should provide users with the ability to create and manage their profiles.  Users should be able to update their profile information and upload a profile picture.  The system should display user profiles with the relevant information. Music Catalog:  The system should offer a comprehensive music catalog with songs organized by genres.  Users should be able to search for specific songs, albums, or artists within the catalog.  The system should display detailed information about songs, including artist name, album cover, and duration. Playlist Management:  Users should be able to create, edit, and delete their own playlists.  The system should allow users to add or remove songs from their playlists.  Users should have the ability to reorder songs within a playlist. Music Playback:  The system should enable users to play, pause, and skip songs.  Users should have control over the volume and the option to adjust it.  The system should support shuffling and repeating songs. Song Recommendations:  The system should provide personalized song recommendations based on users' listening history and preferences.  Users should be able to discover new music based on popular songs or artists.

2. System Designs

1) Use-case design

Figure 1 : Use-case admin

Use case description:

Use Case ID: UC01 View album management page Name View album management page Code UC Description This use case outlines the process of accessing and viewing the album

management page within the system. The access to this page is restricted to administrators. Actor Admin Trigger The Admin user initiates the request to access the album management page. Pre-condition The user is logged into their account. The user possesses administrative privileges. Post condition The Admin user successfully gains access to the album management page and becomes capable of executing album management tasks as required. Actor System The Admin user signals the start of the view album management page process by selecting the "Album Management" option or navigating to the designated URL for album management. The System undertakes authentication and authorization checks to verify that the Admin user is duly authenticated and holds the necessary administrative privileges. Upon successful verification, the System grants entry to the album management page, thereby allowing the Admin user to view and undertake album management duties. The System presents the album management page, encompassing components such as album listings, search functionality, filtering options, and a variety of tools tailored for album management activities. The Admin user can perform an array of album management tasks, including creating new album entries, modifying album details, or removing album records.

page, thereby enabling the Admin user to view and undertake genre management responsibilities. The System presents the genre management page, which includes elements such as genre listings, search functionality, filtering options, and a range of tools designed for genre management tasks. The Admin user is able to perform various genre management actions, including creating new genre categories, editing genre details, or removing genre classifications. Upon receiving inputs from the Admin user, the System updates genre-related information and carries out necessary actions in accordance with the Admin user's instructions.

2) Entity Relationship Diagram (ERD)

Figure 2 : Entity Relation Diagram

Created_at Timestamp Yes Updated_at Timestamp Yes b) Album_artist Field Name Data Type Properties Null Album_id Int(10) UNSIGND No Artist_id Int(10) UNSIGND No Created_at Timestamp Yes Updated_at Timestamp Yes c) Album_song Field Name Data Type Properties Null Id Bigint(20) UNSIGND No Album_id Int(10) UNSIGND No Artist_id Int(10) UNSIGND No Created_at Timestamp Yes Updated_at Timestamp Yes d) Artists Field Name Data Type Properties Null Artist_id Int(10) UNSIGND No Name Varchar(191) No Descriptions Text No Avatar Varchar(191) Yes

Created_at Timestamp Yes Updated_at Timestamp Yes e) Followers Field Name Data Type Properties Null User_id Int(10) UNSIGND No Artist_id Int(10) UNSIGND No Created_at Timestamp Yes Updated_at Timestamp Yes f) Genres Field Name Data Type Properties Null Genre_id Int(10) UNSIGND No Name Varchar(191) No Descriptions Text No Created_at Timestamp Yes Updated_at Timestamp Yes g) Likes Field Name Data Type Properties Null Id Bigint(20) UNSIGND No User_id Int(10) UNSIGND No Song_id Int(10) UNSIGND No Created_at Timestamp Yes

Field Name Data Type Properties Null Song_id Int(10) UNSIGND No Artist_id Int(10) UNSIGND No Created_at Timestamp Yes Updated_at Timestamp Yes k) Song_playlist Field Name Data Type Properties Null Song_id Int(10) UNSIGND No Playlist_id Int(10) UNSIGND No Created_at Timestamp Yes Updated_at Timestamp Yes l) Subcriptions Field Name Data Type Properties Null Plan_id Int(10) UNSIGND No Plan_name Varchar(191) No Price Deciamal(8,2) No Duration Int(11) No Start_date date Yes End_date Date Yes Status Varchar(191) No Created_at Timestamp Yes Updated_at Timestamp Yes

m) Tracks Field Name Data Type Properties Null Track_id Int(10) UNSIGND No Album_id Int(10) UNSIGND No Name Varchar(191) No Thumbnail Varchar(191) No Created_at Timestamp Yes Updated_at Timestamp Yes n) Users Field Name Data Type Properties Null User_id Int(10) UNSIGND No Plan_id Int(10) UNSIGND No name Varchar(191) Yes email Varchar(191) No username Varchar(191) No email_verified_at Timestamp Yes password Varchar(191) No user_type Varchar(191) No avatar Varchar(191) Yes Remember_token Varchar(100) Yes Created_at Timestamp Yes Updated_at Timestamp Yes