Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 55

COMSATS University Islamabad

Abbottabad Campus

Youtube Playlist Downloader

By

Amer Hameed CUI/FA16-BTN-017/ATD


Raheel Hussain CUI/FA16-BTN-014/ATD
Basil Khan CUI/FA16-BSE-108/ATD

Supervisor
Sir Kashif Nasr

Bachelor of Science in Computer Science (2016-2020)

The candidate confirms that the work submitted is their own and appropriate
credit has been given where reference has been made to the work of others.
COMSATS University, Islamabad
Abbottabad Campus

Yuotube Playlist Downloader

A project presented to
COMSATS Institute of Information Technology, Islamabad

In partial fulfillment
of the requirement for the degree of

Bachelor of Science in Computer Science (2016-2020)

By

Amer Hameed CUI/FA16-BTN-017/ATD


Raheel Hussain CUI/FA16-BTN-014/ATD
Basil Khan CUI/FA16-BSE-108/ATD

2
DECLARATION

We hereby announce that this program has not been copied from any source in whole or as a
part of it. It is further reported that on the basis of our personal efforts, we have created this
program and accompanied report entirely. If any part of this project is proven to be copied
from any source or reproduced from any other source. We're going to stand by the
consequences. No Portion of the work presented has been submitted of any application for
any other degree or qualification of this or any other university or institute of learning.

Amer Hameed Raheel Hussain Basil Khan

--------------------------- --------------------------- ---------------------------

3
CERTIFICATE OF APPROVAL

It is to certify that the final year project of BS (CS) “Youtube Playlist Downloader” was
developed by AMER HAMEED (CUI/FA16-BTN-017), RAHEEL HUSSAIN
(CUI/FA16-BTN-014) and BASIL KHAN (CUI/FA16-BSE-108) under the supervision of
“Sir Kashif Nasr” and that in (their/his/her) opinion; it is fully adequate, in scope and quality
for the degree of Bachelors of Science in Computer Sciences.

---------------------------------------
Supervisor

---------------------------------------
External Examiner

---------------------------------------
Head of Department
(Department of Computer Science)

4
EXECUTIVE SUMMARY
Many downloader are available on Playstore and on different website are available but that
all have one problem they download only one video at one time and there downloading speed
is slow and they have another main problem is that they can’t download youtube playlist so
we developed the downloader with new future which will download the playlist of youtube.
Project proposes Youtube playlist downloader which provides user the flexibility to download single,
multiple, on selection basis or the whole playlist from Youtube, Facebook and Instagram in all
available formats. Download Scheduling can also be done. This results in effective utilization of time
as well as bandwidth.

5
ACKNOWLEDGEMENT

All praise is to Almighty Allah who bestowed upon us a minute portion of His boundless
knowledge by virtue of which we were able to accomplish this challenging task.
We are greatly indebted to our project supervisor “Sir Kashif Nasr” and our Co-Supervisor
“Mr. Mukhtar Zamin”. Without their personal supervision, advice and valuable guidance,
completion of this project would have been doubtful. We are deeply indebted to them for
their encouragement and continual help during this work.
And we are also thankful to our parents and family who have been a constant source of
encouragement for us and brought us the values of honesty & hard work.

Amer Hameed Raheel Hussain Basil Khan

----------------------- -------------------------- -------------------

6
TABLE OF CONTENT

1 Introduction............................................................................................................................9

1.1 Brief...................................................................................................................................9
1.2 Relevance to Course Modules...........................................................................................9
1.3 Project Background...........................................................................................................9
1.4 Literature Review............................................................................................................10
1.5 Analysis from Literature Review (in the context of your project)..................................10
1.6 Methodology and Software Lifecycle for This Project...................................................10
1.6.1 Rationale behind Selected Methodology...................................................................10
2 Proble Defination.................................................................................................................11

2.1 Problem Statement..........................................................................................................11


2.2 Deliverables and Development Requirements................................................................12
3 Requirement Analysis.........................................................................................................13

3.1 Use Cases Diagram(s).....................................................................................................13


3.2 Detailed Use Case...........................................................................................................14
3.3 Functional Requirements.................................................................................................30
3.4 Non-Functional Requirements........................................................................................32
4 Design and Architecture......................................................................................................33

4.1 Data Representation [Diagram + Description]................................................................33


4.2 Process Flow/Representation..........................................................................................34
4.3 Design Models [along with descriptions]........................................................................36
5 Implementation....................................................................................................................37

5.1 Algorithm........................................................................................................................37
5.2 External APIs..................................................................................................................37
5.3 User Interface..................................................................................................................38
6 Testing and Evaluation........................................................................................................43

6.1 Manual Testing................................................................................................................43


6.1.1 System testing............................................................................................................43
6.1.2 Unit Testing...............................................................................................................43
6.1.3 Functional Testing.....................................................................................................44
6.1.4 Integration Testing.....................................................................................................40

7 Conclusion and Future Work.............................................................................................41

7.1 Conclusion.......................................................................................................................53
7.2 Future Work....................................................................................................................53
References.....................................................................................................................................54

7
LIST OF FIGURES

Fig 1.1 Block Diagram...................................................................................................................10


Fig 3.1 Use Case Diagram.............................................................................................................12
Fig 4.1 Data Representation...........................................................................................................33
Fig 4.2 Process Flow Represenation..............................................................................................34
Fig 4.3 Design Model....................................................................................................................35
Fig 5.1 Enter Player Name.............................................................................................................31
Fig 5.2 Create Room......................................................................................................................31
Fig 5.3 Update IP address..............................................................................................................32
Fig 5.4 Join Room..........................................................................................................................32
Fig 5.5 Select Card.........................................................................................................................33
Fig 5.6 Drop Card..........................................................................................................................33
Fig 5.7 Start Chat...........................................................................................................................34
Fig 5.8 Send Message....................................................................................................................34

8
Youtube Playlist Downloader

1 Introduction
Now a days we live in age of information communication and technology (ICT). We can’t
think single moment without Internet.
Project proposes Youtube playlist downloader which provides user the flexibility to
download single, multiple, on selection basis or the whole playlist from Youtube, Facebook
and Instagram in all available formats. Download Scheduling can also be done. This results
in effective utilization of time as well as bandwidth.

1.1 Brief
Project proposes Youtube playlist downloader which provides user the flexibility to
download single, multiple, on selection basis or the whole playlist from Youtube,
Facebook and Instagram in all available formats. Download Scheduling can also be done.
This results in effective utilization of time as well as bandwidth.
We are developing an android based smart phone and desktop application for mobile and desktop
users.

The user will download complete videos playlist from Youtube, Facebook and Instagram through
one click.

The user will download videos to their local storage.


Tools in this project are following:
 Android Studio (Mobile App)
 C# (Desktop App)
 Socket.io
 GitHub

1.2 Relevance to Course Modules


 Advance OOP
 Object Oriented Programming (OOP)
 Desktop App
 Software Engineering (SE-I)
 Software Engineering (SE-II)

1.3 Project Background


The Idea behind this project is come from real problem when we want to download
complete playlist of Youtube Videos at that time we face the problem to download
complete playlist so at that time we decide to develop a Youtube Playlist Downloader.

Department of Computer Science, CUI, Abbottabad 9


Youtube Playlist Downloader

1.4 Literature Review


For this project we review some existing downloader like youtube downloader, IDM
downloader, Facebook downloader.

1.5 Analysis from Literature Review (in the context of your project)
When we review all the relevant downloader we analysed that there download speed is so
less and they can’t download the playlist of youtube videos.

1.6 Methodology and Software Lifecycle for This Project


Software lifecycle for this project is Iterative because our project was so lengthy and its
requirements were not clear.


1.6.1 Rationale behind Selected Methodology
 Generates working software quickly and early during the software life cycle.
 More flexible – less costly to change scope and requirements.
 Easier to test and debug during a smaller iteration.
 Easier to manage risk because risky pieces are identified and handled during its
iteration.
 Each iteration is an easily managed milestone

1.6.1.1 Block Diagram


The block diagram of the “Youtube Playlist Downloader” is show the
development process of the application and show the iterative
methodology of the application which is shown below in the figure 1.1.

Department of Computer Science, CUI, Abbottabad 10


Youtube Playlist Downloader

Figure 1: Block Diagram

Department of Computer Science, CUI, Abbottabad 11


Youtube Playlist Downloader

2 Problem Definition
In the application “Youtube Playlist Downloader” have lots of problem during development
so we face the problem in connection, synchronization, designing and with APIs etc. which
are discussed below in details.

Chapter 1:


2.1 Problem Statement
 How to synchronization between Websites.
It’s challenge for us how to connect our downloader to each website where we
want to download video.
 How to install Visual Studio.
The main problem here is occur how to install Visual Studio and Android Studio
latest version for normal laptop which was so challenging task for us.
 Designing of Interface.
During the design of interfaces we have problem the color combination and
choose some attractive and comfortable color.
 How to set API version.
The other challenge for us is that when we successful setup the environment and
want to start new project than the selection of API version was challenging task
for us and understanding the restriction of API version.
 How to design accurate algorithm.
When we write some algorithm for downloader, we have a lot of problem in the
code to get correct result.
 How to set Desktop Application resolution.
Its challenging task for us how to manage desktop resolution for all PCs and
Laptops.
 Managing of multiple downloading at a time.
It’s the main problem in our algorithm how to manage multiple downloading at a
time.
 Managing connection among the Websites.
Another task for us is that to manage the connection among the downloader and
websites.
 Managing APIs level of android.

Department of Computer Science, CUI, Abbottabad 12


Youtube Playlist Downloader

The other problem is for us is that to manage the API level of android OS.
 Managing the flow of downloader.
The main problem was that how to handle the flow and sequence of youtube
playlist downloader.
2.2 Deliverables and Development Requirements
 Download videos with complete size.
We provided the different file size option for downloading so it depends on user
which size he/she like to download.
 Download history.
We facilitate the user to see the history of downloading.
 Using Local Storage.
We provide that the video will download into localstorage.
 Accurate results and outputs of the downloader.
The downloader is giving us the accurate result at real time.
 Attractive graphic of the application.
We provide good graphics in our downloader which are more attractive and easier
to use and understand.
 Successfully connectivity among the downloader and website on run time.
We provided the successful connection between the website and downloader at
real time.
 Provide 100% accuracy of the downloader.
Our first version of the youtube playlist downloader is giving us 100% accurate
result.

Department of Computer Science, CUI, Abbottabad 13


Youtube Playlist Downloader

3 Requirement Analysis
The following parts of Software Requirements Specification (SRS) report should be
included in this chapter.
3.1 Use Cases Diagram
The Figure 3.1 shows how the primary users interact with the system.

Figure 2: Use cases diagram

Department of Computer Science, CUI, Abbottabad 14


Youtube Playlist Downloader

3.2 Detailed Use Case


Fully dressed use cases for the system are given below which we explain the
complete detail of each use case of the application.

3.2.1 Use Case # 1: Download from Specific Youtube URL


Fully dressed use case of Download from Specific Youtube URL is shown
in the table 3.1.

Table 3.1 Download from Specific Youtube URL

Use Case ID: UC-1


Use Case Download from Specific Youtube URL
Name:
Actors: Primary Actor: User
Description: User can download video from Youtuebe URL.
Trigger: When the user will place the link than user can download the
video.
Preconditions: PRE-1. System should be ideal.
Postconditions: POST-1. User successfully download the video.
Normal Flow: 1. User will paste Yotube video URL.
2. System will ask for choose file size.
3. User will choose file size which they need, and start
download.
Alternative 1.0 System fail/crash
Flows: 1. System display an error message.
Exceptions: 1.0. E1 User wants to move next step without providing
URL.
Business Rules BR-1 YPD must download the video successfully which user
need.
Assumptions: N/A
3.2.2 Use Case # 2: Choose Format Size
Fully dressed use case of Choose Format is shown in the table 3.2.

Table 3.2 Choose Format Size

Use Case ID: UC-2


Use Case Choose Format Size
Name:
Actors: Primary Actor: User

Department of Computer Science, CUI, Abbottabad 15


Youtube Playlist Downloader

Description: User can select video format size to choose correct format
size for download.
Trigger: When the user will paste the link and after that he/she will
choose video size.
Preconditions: PRE-1. System should be ideal.
PRE-2. User must provide the link before.
Postconditions: POST-1. User will successfully choose the format size which
they want.
Normal Flow: 1. User will request for to choose video file size.
2. System will show the menu to select file size.
3. User will choose the correct format size which he
wants.
Alternative 1.0 System fail/crash
Flows: 1. System will display an error message.
Exceptions: 1.0. E1 User will choose the format size correctly which he
wants.
Business Rules BR-1 After providing the correct link than user will choose
the file size.
Assumptions: N/A

3.2.3 Use Case # 3: Start Download


Fully dressed use case of Start Download is shown in the table 3.3.

Table 3.3 Start Download

Use Case ID: UC-3


Use Case Start Download
Name:
Actors: Primary Actor: User
Description: In this use case user can start download video.
Trigger: User will must provide video URL.
Preconditions: PRE-1. System should be ideal.
PRE-2. User must provide video URL.
Postconditions: POST-1. User will successfully download the video.
Normal Flow: 1. User will request for to start video download.
2. System will successfully start downloading.
Alternative 1.0 System fail/crash.
Flows: 1. System will display an error message.
Exceptions: 1.0. E1 User will paste correct URL which video he/she
want to download.

Department of Computer Science, CUI, Abbottabad 16


Youtube Playlist Downloader

Business Rules BR-1 User will successfully start the downloading of video.
Assumptions: N/A

3.2.4 Use Case # 4: Visit Youtube


Fully dressed use case of Visit Youtube is shown in the table 3.4.

Table 3.4 Visit Youtube

Use Case ID: UC-4


Use Case Visit Youtube
Name:
Actors: Primary Actor: User
Description: User can select the Youtube to visit that and search videos.
Trigger: When user successfully reached at user dashboard than
he/she can use this function.
Preconditions: PRE-1. System should be ideal.
Postconditions: POST-1. User will successfully visit the you tube website.
Normal Flow: 1. User will request for to visit Youtube.
2. System will show the Youtube web page.
Alternative 1.0 System fail/crash.
Flows: 1. System will display an error message.
Exceptions: N/A
Business Rules BR-1 User will search videos from youtube.
Assumptions: N/A

3.2.5 Use Case # 5: Login with Google


Fully dressed use case of Login with Google is shown in the table 3.5.

Table 3.5 Login with Google

Use Case ID: UC-5


Use Case Login with Google
Name:
Actors: Primary Actor: User
Description: User will login with Google account to use Youtube for
download.
Trigger: When the use will request for google log in than he/she can
use this function.

Department of Computer Science, CUI, Abbottabad 17


Youtube Playlist Downloader

Preconditions: PRE-1. System should be ideal.


PRE-2. Provide correct data for log In.
Postconditions: POST-1. User will successfully log Into google account.
Normal Flow: 1. User will request for to login with Google account.
2. System will show the login form.
3. User will provide the required information.
4. System will login with Google account successfully.
Alternative 1.0 System fail/crash.
Flows: 1. System will display an error message.
Exceptions: N/A
Business Rules BR-1 User will login with Google account to use Youtube
for downloading.
Assumptions: N/A

3.2.6 Use Case # 6: Download Video


Fully dressed use case of Download Video is shown in the table 3.6.

Table 3.6 Download Video

Use Case ID: UC-6


Use Case Download video
Name:
Actors: Primary Actor: User
Description: User can select the Download Video for start downloading.
Trigger: When use will successfully select the file size after that they
can use this function.
Preconditions: PRE-1. System should be ideal.
PRE-2. User must provide correct input.
Postconditions: POST-1. User successfully moves to next step.
Normal Flow:
1. User will request for Download Video.
2. System will show the next menu of format size.
Alternative 1.0 System fail/crash.
Flows: 1. System will display an error message.
Exceptions: N/A
Business Rules BR-1 User will download single video successfully.

Assumptions: N/A

Department of Computer Science, CUI, Abbottabad 18


Youtube Playlist Downloader

3.2.7 Use Case # 7: Download Playlist


Fully dressed use case of Download Playlist is shown in the table 3.7.

Table 3.7 Download Playlist

Use Case ID: UC-7


Use Case Download Playlist
Name:
Actors: Primary Actor: User
Description: User can select the Download Video for start downloading.
Trigger: When the user provides correct input for next step.
Preconditions: PRE-1. System should be ideal.
Postconditions: POST-1. User will have successfully downloaded the
Playlist.

Normal Flow:
1. User will request for Download Playlist Video.
2. System will show the next menu of format size.
Alternative 1.0 System fail/crash.
Flows: 1. System will display an error message.
Exceptions: N/A
Business Rules BR-1 User will download the complete Youtube playlist.
Assumptions: N/A

3.2.8 Use Case # 8: Visit Facebook


Fully dressed use case of Visit Facebook is shown in the table 3.8 given
below.

Table 3.8 Visit Facebook

Use Case ID: UC-8


Use Case Visit Facebook
Name:
Actors: Primary Actor: User
Description: User can select Facebook to visit it and see videos.
Trigger: When user successfully reached at user dashboard than
he/she can use this function.
Preconditions: PRE-1. System should be ideal.
Postconditions: POST-1. User will successfully visit the you tube website.

Normal Flow:
1. User will request for to visit Facebook.

Department of Computer Science, CUI, Abbottabad 19


Youtube Playlist Downloader

2. System will show the Facebook login page.


Alternative 1.0 System fail/crash.
Flows: 1. System will display an error message.
Exceptions: N/A
Business Rules BR-1 User will visit Facebook to download video.
Assumptions: N/A

3.2.9 Use Case # 9: Login Facebook


Fully dressed use case of Login Facebook is shown in the table 3.9.

Table 3.9 Login Facebook

Use Case ID: UC-9


Use Case Login Facebook
Name:
Actors: Primary Actor: User
Description: User can Login Facebook to visit that and download videos.
Trigger: Request for login Facebook to visit that and download video.
Preconditions: PRE-1. System should be ideal.
PRE-2. The user must request for Login Facebook.
Postconditions: POST-1. User will successfully log in if have correct input
value.
Normal Flow: 1. User will request login to Facebook
2. System will show the Facebook login form.
3. User will provide login information of Facebook.
4. System will login to Facebook successfully.
Alternative 1.0 System fails/crash.
Flows: 1. System will display an error message.
Exceptions: N/A
Business Rules BR-1 User will successfully Log In for Facebook to
download video from Facebook
Assumptions: N/A

3.2.10 Use Case # 10: Visit Instagram


Fully dressed use case of Visit Instagram is shown in the table 3.10.

Table 3.10 Visit Instagram

Use Case ID: UC-10

Department of Computer Science, CUI, Abbottabad 20


Youtube Playlist Downloader

Use Case Visit Instagram


Name:
Actors: Primary Actor: User
Description: User can select Instagram to visit it and see videos.
Trigger: Request for login Instagram to visit that and download video.
Preconditions: PRE-1. System should be ideal.
PRE-2. The user must request for Visit Instagram.
Postconditions: POST-1. User will successfully visit the Instagram.
Normal Flow:
1. User will request for to visit Instagram.
2. System will show the Instagram login page.
Alternative 1.0 System fails/crash.
Flows: 1. System will display an error message.
Exceptions: N/A
Business Rules BR-1 User will visit Facebook to download video.
Assumptions: N/A

3.2.11 Use Case # 11: Login Instagram


Fully dressed use case of Login Instagram is shown in the table 3.11.

Table 3.11 Login Instagram

Use Case ID: UC-11


Use Case Login Instagram
Name:
Actors: Primary Actor: User
Description: User can Login Instagram to visit that and download videos.
Trigger: Request for login Instagram to visit that and download video.
Preconditions: PRE-1. System should be ideal.
PRE-2. The correct input first.
Postconditions: POST-1. User will successfully log in if have correct input
value.
Normal Flow: 1. User will request login to Instagram
2. System will show the Instagram login form.
3. User will provide login information of Instagram.
4. System will login to Instagram successfully.
Alternative 1.0 System fails/crash.
Flows: 1. System will display an error message.
Exceptions: N/A
Business Rules BR-1 User will successfully Log In for Facebook to
download video from Instagram.
Assumptions: N/A

Department of Computer Science, CUI, Abbottabad 21


Youtube Playlist Downloader

3.2.12 Use Case # 12: Manage Setting


Fully dressed use case of Manage Setting is shown in the table 3.12.

Table 3.12 Manage Setting

Use Case ID: UC-12


Use Case Manage Setting
Name:
Actors: Primary Actor: User
Description: User can select the Manage Setting of downloader.
Trigger: When user request for manage setting at that time they will
use this function.
Preconditions: PRE-1. System should be ideal.
PRE-2. User must request for manage setting.
Postconditions: POST-1. User can manage setting how they want.
Normal Flow:
1. User will request for manage setting.
2. System will show the “manage setting menu”.
Alternative 1.0 System fails/crash.
Flows: 1. System will display an error message.
Exceptions: N/A
Business Rules BR-1 User will successfully Manage the Setting.
Assumptions: N/A

3.2.13 Use Case # 13: Manage Max Download Tasks


Fully dressed use case of Manage Max Download Task is shown in the
table 3.13.

Table 3.13 Manage Max Download Tasks

Use Case ID: UC-13


Use Case Manage Max Download Tasks
Name:
Actors: Primary Actor: User
Description: User can select the Manage Max Download Tasks in the
downloader.
Trigger: Request for Manage maximum download tasks.
Preconditions: PRE-1. System should be ideal.
PRE-2. The user must request for manage max download.

Department of Computer Science, CUI, Abbottabad 22


Youtube Playlist Downloader

Postconditions: POST-1. User will successfully manage setting.


Normal Flow:
1. User will request for “Manage Max Download Tasks”.
2. System will show the “Manage Max Download Tasks”.
Alternative 1.0 System fails/crash.
Flows: 1. System will display an error message.
Exceptions: N/A
Business Rules BR-1 User will manage maximum download tasks by their
choice.
Assumptions: N/A

3.2.14 Use Case # 14: Manage Downloads


Fully dressed use case of Manage Downloads is shown in the table 3.14.

Table 3.14 Manage Downloads

Use Case ID: UC-14


Use Case Manage Downloads
Name:
Actors: Primary Actor: User
Description: User can select the Manage Downloads of downloader.
Trigger: Request for Manage Download first.
Preconditions: PRE-1. System should be ideal.
PRE-2. User will must request for Manage Download.
Postconditions: POST-1. User will successfully manage their download.
Normal Flow: 1. User will request for “Manage Downloads”.
2. System will show the “Manage Download menu”.
Alternative 1.0 System fails/crash.
Flows: 1. System will display an error message.
Exceptions: N/A
Business Rules BR-1 User will manage the download in the downloader.
Assumptions: N/A

3.2.15 Use Case # 15: All Downloads


Fully dressed use case of All Downloads is shown in the table 3.15.

Table 3.15 All Downloads

Use Case ID: UC-15


Use Case All Downloads
Name:
Actors: Primary Actor: User

Department of Computer Science, CUI, Abbottabad 23


Youtube Playlist Downloader

Description: User can see all video download list.


Trigger: Request for to see all downloads.
Preconditions: PRE-1. System should be ideal.
Postconditions: POST-1. User will see the all downloads successfully.
Normal Flow: 1. User will request for “All Downloads”.
2. System will show the list of all downloads.
Alternative 1.0 System fails/crash.
Flows: 1. System will display an error message.
Exceptions: N/A
Business Rules BR-1 User will successfully watch all downloads and get
updated.
Assumptions: N/A

3.2.16 Use Case # 16: Running Downloads


Fully dressed use case of Running Downloads is shown in the table 3.16.

Table 3.16 Running Downloads

Use Case ID: UC-16


1. Use Running Downloads
Case
Name:
Actors: Primary Actor: User
Description: User can see all running downloads.
Trigger: Request for to see all running downloads.
Preconditions: PRE-1. System should be ideal.
Postconditions: POST-1. User will see the list of all running downloads
successfully.
Normal Flow:
1) User will request for “Running Downloads”.
2) System will show the list of all running downloads.
Alternative 1.0 System fails/crash.
Flows: 1. System will display an error message.
Exceptions: N/A
Business Rules BR-1 User will see the list of all running downloads videos.
Assumptions: N/A

Department of Computer Science, CUI, Abbottabad 24


Youtube Playlist Downloader

3.2.17 Use Case # 17: Play Video


Fully dressed use case of Play Video is shown in the table 3.17.

Table 3.17 Play video

Use Case ID: UC-17


Use Case Play Video
Name:
Actors: Primary Actor: User
Description: User can play video by clicking on the video icon.
Trigger: First user will see the video in list.
Preconditions: PRE-1. System should be ideal.
PRE-2. The video must be in a downloaded list.
Postconditions: POST-1. User will play the video successfully.
Normal Flow:
1. User will request for play video.
2. System will play video successfully.
Alternative 1.0 System fails/crash.
Flows: 1. System will display an error message.
Exceptions: 1.0 E1 May file size have corrupted.
Business Rules BR-1 User will play the downloaded video.
Assumptions: N/A

3.2.18 Use Case # 18: Stop Download


Fully dressed use case of Stop Download is shown in the table 3.18.

Table 3.18 Stop Download

Use Case ID: UC-18


Use Case Stop Download
Name:
Actors: Primary Actor: User
Description: User can stop the running download.
Trigger: First check the running download.
Preconditions: PRE-1. System should be ideal.
PRE-2. The user must request running downloads.
Postconditions: POST-1. User will stop download successfully.
Normal Flow:
1. User will request for “Stop Download”.

Department of Computer Science, CUI, Abbottabad 25


Youtube Playlist Downloader

2. System will stop the download successfully.


Alternative 1.0 System fails/crash.
Flows: 1. System will display an error message.
Exceptions: 1.0 E1 Maybe no current video is in downloading.
Business Rules BR-1 User will stop the download of video.
Assumptions: N/A

3.2.19 Use Case # 19: Pause Download


Fully dressed use case of Pause Download is shown in the table 3.19.

Table 3.19 Pause Download

Use Case ID: UC-19


Use Case Pause Download
Name:
Actors: Primary Actor: User
Description: User can pause the running downloads.
Trigger: First check the running downloads.
Preconditions: PRE-1. System should be ideal.
PRE-2. The user must request for to running download first.
Postconditions: POST-1. User will pause download successfully.
Normal Flow: 1. User will request for “Pause Download”.
2. System will pause the download successfully.
Alternative 1.0 System fails/crash.
Flows: 1. System will display an error message.
Exceptions: N/A
Business Rules BR-1 User can pause the downloading video.
Assumptions: N/A

3.2.20 Use Case # 20: Resume Downloading


Fully dressed use case of Resume Downloading is shown in the table 3.20.

Table 3.20 Resume Downloading

Use Case ID: UC-20


Use Case Resume Downloading
Name:
Actors: Primary Actor: User

Department of Computer Science, CUI, Abbottabad 26


Youtube Playlist Downloader

Description: User can resume the running download.


Trigger: First check the running downloads.
Preconditions: PRE-1. System should be ideal.
PRE-2. The user must request for to running download first.
Postconditions: POST-1. User will resume the download successfully.
Normal Flow:
1. User will request for “Resume Downloading”.
2. System will resume the download successfully.
Alternative 1.0 System fails/crash.
Flows: 1. System will display an error message.
Exceptions: N/A
Business Rules BR-1 User can resume the downloading of video.
Assumptions: N/A

3.2.21 Use Case # 21: Add to Favorite


Fully dressed use case of Add to Favorite is shown in the table 3.21.

Table 3.21 Add to Favorite

Use Case ID: UC-21


Use Case Add to Favourite
Name:
Actors: Primary Actor: User
Description: User can add the video to Favourite from downloaded list.
Trigger: First check the videos in downloaded list.
Preconditions: PRE-1. System should be ideal.
PRE-2. The user must request for downloaded list.
Postconditions: POST-1. User will add video to favourite successfully.
Normal Flow: 1. User will request for “Add to Favourite”.
2. System will add the video to favourite successfully.
Alternative 1.0 System fails/crash.
Flows: 1. System will display an error message.
Exceptions: N/A
Business Rules BR-1 User can add the video to favourite.
Assumptions: N/A

Department of Computer Science, CUI, Abbottabad 27


Youtube Playlist Downloader

3.2.22 Use Case # 22: Delete Video


Fully dressed use case of Delete Video is shown in the table 3.22.

Table 3.22 Delete Video

Use Case ID: UC-22


Use Case Delete Video
Name:
Actors: Primary Actor: User
Description: User can delete the video from downloaded list.
Trigger: First check the videos in downloaded list.
Preconditions: PRE-1. System should be ideal.
PRE-2. The user must request for downloaded list
Postconditions: POST-1. User will delete video successfully.
Normal Flow:
1. User will request for “Delete Video”.
2. System will delete video successfully.
Alternative 1.0 System fails/crash.
Flows: 1. System will display an error message.
Exceptions: N/A
Business Rules BR-1 User can delete the video from the list.
Assumptions: N/A

3.2.23 Use Case # 23: See Favorite


Fully dressed use case of See Favorite is shown in the table 3.23.

Table 3.23 See Favorite

Use Case ID: UC-23


Use Case See Favourite
Name:
Actors: Primary Actor: User
Description: Users see the list of Favourite videos.
Trigger: Request for login Facebook to visit that and download video.
Preconditions: PRE-1. System should be ideal.
PRE-2. The user must request for to see favourite video.
Postconditions: POST-1. User will see the list of favourite videos
successfully.
Normal Flow:
1. User will request for “See Favourite”.
2. System will show the list of favourite videos.

Department of Computer Science, CUI, Abbottabad 28


Youtube Playlist Downloader

Alternative 1.0 System fails/crash.


Flows: 1. System will display an error message.
Exceptions: N/A
Business Rules BR-1 User can see the list of Favourite videos.
Assumptions: N/A

3.2.24 Use Case # 24: About Downloader


Fully dressed use case of About Downloader is shown in the table 3.24.

Table 3.24 About Downloader

Use Case ID: UC-24


Use Case About Downloader
Name:
Actors: Primary Actor: User
Description: Users can see information about the downloader.
Trigger: User must be on main dashboard.
Preconditions: PRE-1. System should be ideal.
Postconditions: POST-1. User will see the information about downloader
successfully.
Normal Flow:
1. User will request for “About Downloader”.
2. System will show the information about downloader.
Alternative 1.0 System fails/crash.
Flows: 1. System will display an error message.
Exceptions: N/A
Business Rules BR-1 User will see the information of downloader.
Assumptions: N/A

3.2.25 Use Case # 25: Exit


Fully dressed use case of Exit is shown in the table 3.25.

Table 3.25 Exit

Use Case ID: UC-25


Use Case Exit
Name:
Actors: Primary Actor: User

Department of Computer Science, CUI, Abbottabad 29


Youtube Playlist Downloader

Description: User can exit the application by using this usecase.


Trigger: User must be on main dashboard.
Preconditions: PRE-1. System should be ideal.
PRE-2. First user must using the downloader.
Postconditions: POST-1. User will exit downloader successfully.
Normal Flow:
1. User will request for exit the downloader.
2. System will exit the downloader successfully.
Alternative 1.0 System fails/crash.
Flows: 1. System will display an error message.
Exceptions: N/A
Business Rules BR-1 User will exit the downloader.
Assumptions: N/A

3.3 Functional Requirements


In functional requirements we provide the details of all functionality of application
which are discussed given below in details.

3.3.1 Downloading:
Functional requirement of Join Downloading is shown in the table 3.26.

Table 3.26 Downloading

Identifier Requirement ID: 1


Title Downloading
Requirement User can download the video with correct URL.
Source After the correct URL the downloading will start.
Rationale User will download the video which he/she want.
Business This function will perform when user provide the correct
Rule URL.
Dependencie N/A
s
Priority High

Department of Computer Science, CUI, Abbottabad 30


Youtube Playlist Downloader

3.3.2 Stop Downloading:


Functional requirement of Stop Downloading is shown in the table 3.27.

Table 3.27 Stop Downloading

Identifier Requirement ID: 2


Title Stop Downloading
Requirement The video must be downloading than user can stop the
downloading.
Source When user will started the downloading of video than
user will use this function and then downloading will
stop.
Rationale User will stop the downloading of videos successfully.
Business This function will stop the downloading of video
Rule successfully.
Dependencies N/A
Priority Low

3.3.3 Resume Downloading:


Functional requirement of Resume Downloading is shown in the table
3.28.

Table 3.28 Resume Downloading

Identifier Requirement ID: 3


Title Resume Downloading
Requirement Downloading of video must be stopped than user will
use this function.
Source When user will stop the downloading of video than
user will use this function and then downloading will
resume.
Rationale User will resume the downloading successfully.
Business N/A
Rule
Dependencies N/A
Priority High

Department of Computer Science, CUI, Abbottabad 31


Youtube Playlist Downloader

3.4 Non-Functional Requirements


In this section we provide the detail of all non-functional requirements of our
application “Youtube Playlist Downloader”.

3.4.1 Usability Requirements


USE-1: Interface must contain cause and help to avoid making mistakes so
that easy to use for people without specific training.

3.4.2 Performance Requirements


PER-1: Delay time will not be more than 5 seconds.
PER-2: Maximum player turn time is 60 seconds.

3.4.3 Reliability
RE-1: Generate error message when invalid data will be entered and should
recovered less than 3 second.

3.4.4 Security Requirements


SR-1: YPD is host on google play store so mostly google will responsible for
their security.

3.4.5 Security Requirements


SR-1: YPD is host on google play store so mostly google will responsible for
their security.

3.4.6 Legal Requirement


LR-1: System needs to protect users ' personal information and quality
assurance requirements.

3.4.7 Extensibility
EX-1: System should be able to extend adding large amount of new feature.

Department of Computer Science, CUI, Abbottabad 32


Youtube Playlist Downloader

4 Design and Architecture


The Design and Architecture of the application is discussed in this chapter given below.

4.1 Data Representation


In the Figure 4.1 the Data Representation of application is shown in complete detail and
green box is the start indicates the start point and red box indicate the end point.

Department of Computer Science, CUI, Abbottabad 33


Youtube Playlist Downloader

Figure 3: Data Representation

Department of Computer Science, CUI, Abbottabad 34


Youtube Playlist Downloader

4.

4.2 Process Flow/Representation


The Process Flow of the application “Youtube Playlist Downloader” is shown in the
complete detail and description given below. Which show the complete process flow
of the application from start to end where the dark Blue box show the start of the
process and dark green box show the end of process in the given below in the figure
4.2.

Figure 4: Process Flow Representation

Department of Computer Science, CUI, Abbottabad 35


Youtube Playlist Downloader

4.3 Design Models


The Design Model of the application is shown with complete detail and description
given below in the figure 4.3.

Department of Computer Science, CUI, Abbottabad 36


Youtube Playlist Downloader

Figure 5: Design Model

Department of Computer Science, CUI, Abbottabad 37


Youtube Playlist Downloader

5 Implementation
In this chapter we will discuss the complete implantation of the project and you can
easily understand internal and external structure of our project. We try our fully effort to
explain you our project algorithm, interfaces and external APIs which we used in the
project.

3.
5.1 Algorithm
We used the list concept in our project when we need to download complete list of
Youtube. And we used socket.io for real time response which will help us to get real
time response.
We used external APIs of Youtube, Facebook and Instagram to download the videos
from these websites and we used APIs for to establish connection through internet.
And we make two separate algorithms for downloading of video from Youtube one
will download single video and other will download the complete list from youtube.
Further we make a separate algorithm which download the video from Facebook and
Instagram that was very difficult task for us to manage and handle their APIs.

5.2External APIs
Describe the APIs used in the table 5.1.

Table 5.1: Details of APIs used in the project

Name of Description of Purpose of List down the


API API usage function/class name in
which it is used
Socket.i Active the The user will It is implemented in the
o nodes run time. get the real class “WebviewActivity”.
time
downloading
response from
Youtube
Playlist
Downloader
through
socket.io.

Department of Computer Science, CUI, Abbottabad 38


Youtube Playlist Downloader

5.3 User Interface


The user interfaces of the application “Youtube Playlist Downloader” is pasted step
by step with complete description.
5.3.1 Download from Specific Youtube URL:
Interface Enter Player Name of game is given below in figure 5.1.

Figure 6: Download from Specific Youtube URL

5.3.2 Choose Format Size:


Interface Create Room of game is given below in figure 5.2.

Figure 7: Choose Format Size

Department of Computer Science, CUI, Abbottabad 39


Youtube Playlist Downloader

5.3.3 Start Download:


Interface Update IP Address of game is given below in figure 5.3.

Figure 8: Start Downlaod

5.3.4 Visit Youtube:


Interface Join Room of game is given below in figure 5.4.

Figure 9: Visit Youtube

Department of Computer Science, CUI, Abbottabad 40


Youtube Playlist Downloader

5.3.5 Login with Google


Interface Select Card of game is given below in figure 10.

Figure 10: Login with Google

5.3.6 Download Video


Interface Drop Card of game is given below in figure 11.

Figure 11: Download Video

Department of Computer Science, CUI, Abbottabad 41


Youtube Playlist Downloader

5.3.7 Download Playlist


Interface Start Chat of game is given below in figure 12.

Figure 12: Download Playlist

5.3.8 Visit Facebook


Interface Send Message of game is given below in figure 13.

Figure 13: Visit Facebook

5.3.9 Login Facebook


5.3.10 Visit Instagram

Department of Computer Science, CUI, Abbottabad 42


Youtube Playlist Downloader

5.3.11 Login Instagram


5.3.12 Manage Setting
5.3.13 Manage Max Download Task
5.3.14 Manage Downloads
5.3.15 All Downloads
5.3.16 Running Downloads
5.3.17 Play Video
5.3.18 Stop Download
5.3.19 Pause Download
5.3.20 Resume Download
5.3.21 Add to Favorite
5.3.22 Delete Video
5.3.23 See Favorite
5.3.24 About Downloader
5.3.25 Exit

6 Testing and Evaluation


This chapter the testing and evaluation result of the application perform and their result is
wrote down in this chapter with complete detail.

4.

1.
6.1 Manual Testing
The manual testing result is list down with complete description and detail.

1.
6.1.1 System testing
Upon completion, the system must be tested to ensure proper functioning 
and to satisfy the system's specifications. So we checked our application it
match the system specifications.

Department of Computer Science, CUI, Abbottabad 43


Youtube Playlist Downloader

6.1.2 Unit Testing


Test case for this system is followings:

 Unit Testing 1: Download from Specific Youtube URL


Testing Objective: Ensure the Video can download from specific youtube
URL properly shown in table 6.1.

Table 6.1: Download from Specific Youtube URL

No Test case/Test Attribute and Expected result Result


. script value
1. Provide correct URL link Video must Pass
Youtube URL for download
downloading of
video.

 Unit Testing 2: Choose Format Size


Testing Objective: Choose Format Size is working properly shown in table 6.2.

Table 6.2: Choose Format Size

No Test case/Test Attribute and Expected result Result


. script value
1. User can choose Size Value Select File Size Pass
Format Size. Successfully

 Unit Testing 3: Start Download


Testing Objective: Start Download properly working shown in table 6.3.

Table 6.3: Start Download

No Test case/Test Attribute and Expected result Result


. script value
1. User can Request for Successfully Pass
correctly start the Downloading start the
download. downloading.

 Unit Testing 4: Visit Youtube


Testing Objective: Visit the Youtube is working properly shown in table 6.4.

Department of Computer Science, CUI, Abbottabad 44


Youtube Playlist Downloader

Table 6.4: Visit Youtube

No Test case/Test Attribute and Expected result Result


. script value
1. Visit Youtube by Link of Successfully Pass
pressing the Youtube reached at
“Icon of website. Youtube Web
Youtube” Page.

 Unit Testing 5: Login with Google


Testing Objective: Login with Google is working which shown in table 6.5.

Table 6.5: Login with Google

No Test case/Test Attribute and Expected result Result


. script value
1. Login with google Link of google Successfully Pass
by pressing the website. logged in.
google icon.

 Unit Testing 6: Download Video


Testing Objective: Download Video is working properly shown in table 6.6.

Table 6.6: Download Video

No Test case/Test Attribute and Expected Result


. script value result
1. User can Video link Video Pass
download video downloaded
by giving the successfully
correct link of
youtube.

 Unit Testing 7: Download Playlist


Testing Objective: Ensure that the chat will start properly shown in table 6.7.

Table 6.7: Download Playlist

Department of Computer Science, CUI, Abbottabad 45


Youtube Playlist Downloader

No Test case/Test Attribute and Expected Result


. script value result
1. By will download List link Video Pass
the playlist by downloaded
providing the Successfully
correct link.

 Unit Testing 8: Visit Facebook


Testing Objective: Ensure the user can Visit Facebook which shown in table 6.8.

Table 6.8: Visit Facebook

No Test case/Test Attribute and Expected Result


. script value result
1. Visit Facebook Facebook Successfully Pass
by pressing the Website link reached at
Facebook icon. Facebook page.

 Unit Testing 9: Login Facebook


Testing Objective: User can Login Facebook properly shown in table 6.9.
Table 6.9: Login Facebook

No Test case/Test Attribute and Expected result Result


. script value
1. Login Facebook Username and User will be Pass
by providing password logged in
correct successfully
information.

 Unit Testing 10: Visit Instagram


Testing Objective: User can visit Instagram properly which shown in table 6.10.
Table 6.9: Visit Instagram

No Test case/Test Attribute and Expected result Result


. script value
1. Visit the Instagram Successfully Pass
Instagram by Website link reached at
pressing the icon Instagram Page.
of Instagram.

Department of Computer Science, CUI, Abbottabad 46


Youtube Playlist Downloader

 Unit Testing 11: Login Instagram


Testing Objective: Login Instagram is working properly shown in table 6.11.
Table 6.9: Login Instagram

No Test case/Test Attribute and Expected result Result


. script value
1. Login Instagram Username and User will be Pass
by providing password logged in
correct successfully
information.

 Unit Testing 12: Manage Setting


Testing Objective: Ensure that Manage Setting is working properly shown in
table 6.12.
Table 6.12: Manage Setting

No Test case/Test Attribute and Expected result Result


. script value
1. User can request Setting Successfully Pass
for manage request manage the
setting. setting.

 Unit Testing 13: Manage Max Download Tasks


Testing Objective: Ensure that the user can manage max download tasks
properly which shown in table 6.13.
Table 6.13: Manage Max Download Tasks

No Test case/Test Attribute and Expected result Result


. script value
1. User can manage Manage Value User will Pass
maximum successfully
download tasks manage the
by this function. downloads by
their choice.

 Unit Testing 14: Manage Downloads


Testing Objective: Ensure that the user Manage Downloads properly which
shown in table 6.13.

Department of Computer Science, CUI, Abbottabad 47


Youtube Playlist Downloader

Table 6.13: Manage Downloads

No Test case/Test Attribute and Expected result Result


. script value
1. User can Manage Manage Value User Pass
Downloads. successfully
manage the
downloads.

 Unit Testing 15: All Downloads


Testing Objective: User can see All Downloads properly shown in table 6.14.
Table 6.14: All Downloads

No Test case/Test Attribute and Expected result Result


. script value
1. User can see list Request for all List of All Pass
of All downloads Downloads
Downloads.

 Unit Testing 16: Running Downloads


Testing Objective: Ensure that to see Running Downloads working properly
shown in table 6.16.
Table 6.16: Running Downloads

No Test case/Test Attribute and Expected result Result


. script value
1. User can see the Request value To see all Pass
all Running Running
Downloads. Downloads

 Unit Testing 17: Play Video


Testing Objective: Ensure that play video is working properly shown in table
6.17.
Table 6.17: Play Video

No Test case/Test Attribute and Expected result Result


. script value
1. User can play the Request for Video Pass
downloaded play video successfully
video. played

Department of Computer Science, CUI, Abbottabad 48


Youtube Playlist Downloader

 Unit Testing 18: Pause Download


Testing Objective: Ensure that Pause Download is properly working shown in
table 6.18.
Table 6.18: Pause Download

No Test case/Test Attribute and Expected result Result


. script value
1. User can pause Request for Downloading Pass
the running pause successfully
downloads by download paused
using this
function.

 Unit Testing 19: Resume Downloading


Testing Objective: Ensure that Resume Downloading working properly which
shown in table 6.19.
Table 6.19: Resume Downloading

No Test case/Test Attribute and Expected result Result


. script value
1. User can resume Resume Resumed Pass
downloading by downloading downloading
using this request successfully
function.

 Unit Testing 20: Add to Favorite


Testing Objective: Ensure that message can send properly shown in table 6.20.
Table 6.20: Add to Favorite

No Test case/Test Attribute and Expected result Result


. script value
1. User can add Request value Video added to Pass
video int favourite
favourite by click successfully.
on “Heart Icon”
button.

 Unit Testing 21: Delete Video

Department of Computer Science, CUI, Abbottabad 49


Youtube Playlist Downloader

Testing Objective: Ensure that Delete properly shown in table 6.21.


Table 6.21: Delete Video

No Test case/Test Attribute and Expected result Result


. script value
1. User can Delete Request value Video deleted Pass
Video by using successfully
this function.

 Unit Testing 22: See Favorite


Testing Objective: Ensure that user See Favorite properly shown in table 6.22.
Table 6.22: See Favorite

No Test case/Test Attribute and Expected result Result


. script value
1. User can see the Request value User will see a Pass
Favourite videos Favourite value
by using this successfully.
function.

 Unit Testing 23: About Downloader


Testing Objective: Ensure that user can know About Downloader properly
shown in table 6.23.
Table 6.23: About Downloader

No Test case/Test Attribute and Expected result Result


. script value
1. Request for About User will must Pass
About downloader know About
Downloader. value Downloader.

 Unit Testing 24: Exit


Testing Objective: Ensure that Exit function is properly working shown in table
6.24.
Table 6.24: Exit

No Test case/Test Attribute and Expected result Result


. script value

Department of Computer Science, CUI, Abbottabad 50


Youtube Playlist Downloader

1. User can send Exit request Application Pass


exit request by will
pressing Exit successfully
option. exit.

6.1.3 Functional Testing


The functional testing of the application is given below in detail with
complete description.

 Functional Testing 1: Downloading


Testing Objective: When user provide a correct URL than the
downloading will start successfully and downloading function will
working successfully 6.26.

Table 6.26: Downloading

No Test case/Test Attribute and Expected Result


. script value result
1. When correct Input URL Downloading Pass
URL inserted the video
than downloading successfully
will work.

 Functional Testing 2: Pause Downloading


Testing Objective: When the user will request for Stop Downloading which
detail is show in table 6.27.

Table 6.27: Pause Downloading

No Test case/Test Attribute and Expected Result


. script value result
1. User can stop Input request. Successfully Pass
the running stop the
downloads by downloading.
using this
function.

 Functional Testing 3: Resume Downloading

Department of Computer Science, CUI, Abbottabad 51


Youtube Playlist Downloader

Testing Objective: When the user request to Resume Downloading which


shown in table 6.28.

Table 6.28: Resume Downloading

No Test case/Test Attribute and Expected result Result


. script value
1. User can resume Resume Successfully Pass
downloading by Downloading resume the
using this request downloading
function.

6.1.4 Integration Testing


In the table 6.29 the integration testing of application result will show
below.

Table 6.29: Integration Test case

No Test case/Test Attribute and Expected result Result


. script value
1. Downloading Video from
Successfully Pass
URL downloading the videos.
2. Pause Pause request Pause the downloading Pass
Downloading video successfully.
3. Resume Resume request
Resume the Pass
Downloading downloading
successfully.
4. Download List URL Downloading playlist Pass
Playlist successfully.
5. List of All Request for to Successfully watch the Pass
Downloads see All list of all downloads.
Downloads

Department of Computer Science, CUI, Abbottabad 52


Youtube Playlist Downloader

7 Conclusion and Future Work


After long struggle we successfully developed the “Youtube Playlist Downloader” within
given time and get 100% successful result. This is our version 1.0 and in future we
develop its further all version and make its product in industry.

6.
7.1 Conclusion
We have been developed the android and desktop application of “Youtube Playlist
Downloader” for all, in this application we cover the mostly module of the
downloader so we can download the single video and complete playlist of video
download from the Youtube and also we can download video from Facebook and
from Instagram. We got 100% successfully working of version 1.0 of our application.
which is completed and we will launch it on google play store for all users free of
cost.
we developed the downloader with new future which will download the playlist of
youtube.
Project proposes Youtube playlist downloader which provides user the flexibility to
download single, multiple, on selection basis or the whole playlist from Youtube, Facebook
and Instagram in all available formats. Download Scheduling can also be done. This results in
effective utilization of time as well as bandwidth.

Department of Computer Science, CUI, Abbottabad 53


Youtube Playlist Downloader

7.2 Future Work


As we discussed above in the conclusion the version 1.0 we have completed and it is
working successfully how we want so further we will develop it according to user
needs and satisfaction.
After the graduation we launch the application globally in the world so we need some
investment for their launching and first we arrange some money. After the
successfully launching the application then we develop version 1.1 to update the
application further and make much more users. And we need some developer to
maintain the application and further develop the application.

Department of Computer Science, CUI, Abbottabad 54


Youtube Playlist Downloader

References

In this chapter we provide the references where we get the help to build the application. We
provide all references with complete detail. We get help with these references to build successful
application and to meet the criteria of comity.
[1].https://www.tutorialspoint.com/index.htm
[2].https://www.w3schools.com/bootstrap/bootstrap_ver.asp
[3].https://www.youtube.com/
[4].https://www.node.org/
[5].https://www.w3schools.com/nodejs/default.asp
[6].https://www.w3schools.com/graphics/default.asp
[7].https://developers.google.com/android/
[8].https://developer.android.com/guide/topics/ui/layout/recyclerview

[9].https://www.youtube.com/watch?v=IGGT_jfZQrA

[10].https://www.tutorialspoint.com/android/android_shared_preferences.htm

[11].https://www.geeksforgeeks.org/shared-preferences-in-android-with-examples/

[12].https://www.techotopia.com/index.php/Android_Broadcast_Intents_and_Broadcast_Re
ceivers

[13].https://www.concretepage.com/android/android-options-menu-example-using-
getmenuinflater-inflate-oncreateoptionsmenu-and-onoptionsitemselected

Department of Computer Science, CUI, Abbottabad 55

You might also like