Tải bản đầy đủ (.pdf) (68 trang)

TALENT TOWN – BOOK TALENTS ONLINE

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (10.17 MB, 68 trang )

DANANG UNIVERSITY
UNIVERSITY OF SCIENCE AND TECHNOLOGY
FACULTY OF INFORMATION TECHNOLOGY

GRADUATION PROJECT THESIS
MAJOR: INFORMATION TECHNOLOGY
SPECIALTY: SOFTWARE ENGINEERING

PROJECT TITLE:

TALENT TOWN – BOOK TALENTS ONLINE

Instructor: DR. TRUONG NGOC CHAU
Student:

NGUYEN VAN PHUNG

Student ID: 102150124
Class:

15T2

Da Nang, 12/2019


INSTRUCTOR’S COMMENTS
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………


……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………



REVIEWER’S COMMENTS
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………

……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………


SUMMARY
Topic title: Talent Town – Book Talents Online
Student name: Nguyen Van Phung
Student ID: 102150124
Class: 15T2
Talent Town is a marketplace where customers and talents are connected to
bring real life gigs with just some click.
Talents on Talent Town can be singers, dancers, DJs, clowns or any person
having ability to provide good performance with their specific skills.
Customers on Talent Town are people who are seeking for talents to perform at
their wedding, birthday party, anniversary or any other kinds of events.
Main features:
- Talents:
+ Membership registration
+ Building profile
+ Add availability, packages
+ Communicate to customers
+ Accept/ Decline/ Cancel gigs
-

Customers:
+ Search for talents
+ Message to talents
+ Book talents for events

+ Keep tracks of the bookings

-

Admin:
+ Manage all users and relevant information
+ Ability to contact to users if needed
+ Keep tracks of users’ activities


DA NANG UNIVERSITY
UNIVERSITY OF SICIENCE AND
TECHNOLOGY
FALCUTY OF INFORMATION
TECHNOLOGY

THE SOCIALIST REPUBLIC OF VIETNAM

Independence - Freedom - Happiness

GRADUATION PROJECT REQUIREMENTS
Student Name: Nguyen Van Phung
Student ID :102150124
Class: 15T2
Faculty: Information Technology
Major: Information Technology
1. Topic title:
Talent Town – Book talents online
2. Project topic : ☐ has signed intellectual property agreement for final result
3. Initial figure and data:

……………………………………..……………………………………………..……...
...…………………………………………………………………………………………
…..………………………………….…..………………………..…………………
Content of the explanations and calculations:
…...……………………………………………………………………………………
…...……………………………………………………………………………………
…...……………………………………………………………………………………
…...……………………………………………………………………………………
Drawings, charts (specify the types and sizes of drawings):
…...……………………………………………………………………………………
…...……………………………………………………………………………………
…...……………………………………………………………………………………
4. Name of instructor:
Truong Ngoc Chau

5. Date of assignment :
6. Date of completion :

Content parts:

……../……./201…..
……../……./201…..
Danang, December 20th, 2019

Head of Division………………….

Instructor


PREFACE

Firstly, I would like to express my gratitude to the teachers in the Faculty of
Information Technology, Da Nang University, University of Science and Technology,
who have industriously taught and imparted valuable knowledge to me in the past
school years.
I would like to express my sincere thanks to Dr. Truong Ngoc Chau who helped
me a lot while I was implementing my project. Thanks to his advice, I had the good
direction in the deployment and implementation of the requirements of the graduation
thesis.
In addition, I would like to thank my mentor, Mr. Duong Quang Hai from
PSCD Co., LTD company for his valuable guidance. He definitely provided me with
the tools that I needed to choose the right direction and successfully complete this
project.
Moreover, although I have tried to complete this thesis as well as possible,
within the capabilities that I could, unavoidably it has some mistakes. So that any
comments are extremely significant to me to make this thesis more complete.
Finally, I wish all teachers in the Faculty of Information Technology the best
health and more success in life. Thank you for your contribution to the young
generations.
Best regards,
Phung

Danang, December 20th 2019

Nguyen Van Phung

i


ASSURRANCE
I guarantee:

1.
The contents of this project are performed by our-self following the guidance of
Dr. Truong Ngoc Chau.
2.
All references, which used in this project thesis, are quoted with author’s name,
project’s name, time and location to publish clearly and faithfully.
3.
All invalid copies, educated statute violation or cheating will be born the full
responsibility by my-self
Student Performed

Nguyen Van Phung

ii


TABLE OF CONTENTS

PREFACE ...................................................................................................................... i
ASSURRANCE.............................................................................................................ii
TABLE OF CONTENTS ........................................................................................... iii
INTRODUCTION ........................................................................................................ 9
Chapter 1: THEORIES AND TECHNOLOGIES .................................................. 10
1.1. The Server side ...............................................................................................10
1.1.1. Node.js ........................................................................................................10
1.1.2. Express.js ....................................................................................................10
1.1.3. MongoDB ...................................................................................................11
1.2. The Client side ................................................................................................12
1.2.1. React.js ........................................................................................................12
1.2.2. Redux ..........................................................................................................12

1.2.3. Ant design ...................................................................................................13
1.3. Realtime client-server communication ...........................................................13
1.3.1. What is Websocket?....................................................................................13
1.3.2. Socket.io .....................................................................................................14
Chapter 2: ANALYSIS AND DESIGN .................................................................... 15
2.1. Requirement analysis ..........................................................................................15
2.1.1. General requirements ...................................................................................15
2.1.2. Main features ...............................................................................................15
2.2. Diagrams ............................................................................................................16
2.2.1 Use case diagram ..........................................................................................16
2.2.2 Use case specifications .................................................................................22
2.2.3 Sequence diagram .........................................................................................29
2.2.4 Activity diagram ..........................................................................................33
2.3. Database design ..................................................................................................37
2.3.1 Description of tables .....................................................................................37
2.3.2 Relational database .......................................................................................46
2.4. Conclusion ..........................................................................................................46
Chapter 3: IMPLEMENTATION AND RESULT EVALUATION ..................... 47
3.1. Development environment .................................................................................47
iii


3.2. Demo system’s main feature ..............................................................................48
3.2.1. Talents ..........................................................................................................48
3.2.2. Customers ....................................................................................................55
3.2.3. General .........................................................................................................58
3.2.4. Admin ..........................................................................................................59
3.3. Experiment result evaluation ..............................................................................61
3.3.1. Advantages ...................................................................................................61
3.3.2. Disadvantages ..............................................................................................61

CONCLUSION ........................................................................................................... 62
1. Achievements ........................................................................................................62
2. Future works ..........................................................................................................62
REFERENCES ........................................................................................................... 63

iv


LIST OF TABLES, FIGURES

Table 2. 1 - UC specification – User login ...................................................................22
Table 2. 2 - UC specification – User logout .................................................................22
Table 2. 3 - UC specification – User add card for payment .........................................23
Table 2. 4 - UC specification – Talent add bank for payout ........................................23
Table 2. 5 - UC specification – Search for talents .......................................................24
Table 2. 6 - UC specification – Customer make a booking .........................................24
Table 2. 7 - UC specification – Customer cancel a booking ........................................25
Table 2. 8 - UC specification – Talent accept a gig .....................................................25
Table 2. 9 - UC specification – Talent decline a gig ....................................................26
Table 2. 10 - UC specification – Talent cancel a gig ...................................................26
Table 2. 11 - UC specification – Admin login .............................................................27
Table 2. 12 - UC specification – Admin logout ...........................................................27
Table 2. 13 - UC specification – Admin activate a user ..............................................28
Table 2. 14 - UC specification – Admin accept talent’s submission ...........................28
Table 2. 15 - Description of table Users........................................................................37
Table 2. 16 - Description of table Entertainers .............................................................38
Table 2. 17 - Description of table Customers................................................................39
Table 2. 18 - Description of table Customers................................................................39
Table 2. 19 - Description of table Conversations ..........................................................39
Table 2. 20 - Description of table Messages .................................................................40

Table 2. 21 - Description of table Cancellation Policies ...............................................40
Table 2. 22 - Description of table Gigs .........................................................................40
Table 2. 23 - Description of table Gig Bills ..................................................................41
Table 2. 24 - Description of table Refer By Codes .......................................................42
Table 2. 25 - Description of table Payment Status ........................................................42
Table 2. 26 - Description of table Plans ........................................................................42
Table 2. 27 - Description of table Plan Benefits ...........................................................43
Table 2. 28 - Description of table Packages ..................................................................43
Table 2. 29 - Description of table Entertainer Types ....................................................43
Table 2. 30 - Description of table Extras ......................................................................44
Table 2. 31 - Description of table Entertainer Calendars ..............................................44
Table 2. 32 - Description of table Notice Responses ....................................................44
v


Table 2. 33 - Description of table Review Entertainer ..................................................45
Table 2. 34 - Description of table Review Customer ....................................................45
Figure 2. 1 - Use case diagram for Customer ................................................................16
Figure 2. 2 - Use case diagram for Customer managing bookings ...............................17
Figure 2. 3 - Use case diagram for Talent .....................................................................18
Figure 2. 4 - Use case diagram for Talent managing gigs.............................................19
Figure 2. 5 - Use case diagram for Admin ....................................................................20
Figure 2. 6 - Use case diagram for Admin managing users ..........................................21
Figure 2. 7 - Sequence diagram - Login ........................................................................29
Figure 2. 8 - Sequence diagram - Register ....................................................................29
Figure 2. 9 - Sequence diagram – Add card ..................................................................30
Figure 2. 10 - Sequence diagram – Customer make a booking.....................................30
Figure 2. 11 - Sequence diagram – Talent accept a gig ................................................31
Figure 2. 12 - Sequence diagram – Send message ........................................................31
Figure 2. 13 - Sequence diagram – Admin activate user ..............................................32

Figure 2. 14 - Sequence diagram – Admin accept talent’s submission.........................32
Figure 2. 15 - Activity diagram - Login ........................................................................33
Figure 2. 16 - Activity diagram - Register ....................................................................33
Figure 2. 17 - Activity diagram – Add card ..................................................................34
Figure 2. 18 - Activity diagram – Customer make a booking .......................................34
Figure 2. 19 - Activity diagram – Talent accept a gig...................................................35
Figure 2. 20 - Activity diagram – Customer make a booking .......................................35
Figure 2. 21 - Activity diagram – Admin activate a user ..............................................36
Figure 2. 22 - Activity diagram – Talent accept talent’s submission ............................36
Figure 2. 23 - Relationship between tables of database ................................................46
Figure 3. 1 - Talent sign up ...........................................................................................48
Figure 3. 2 - Talent log in ..............................................................................................48
Figure 3. 3 - Talent dashboard – Overview ...................................................................49
Figure 3. 4 - Talent dashboard – Biography & Media ..................................................49
Figure 3. 5 - Talent dashboard – Packages & Travel ....................................................50
Figure 3. 6 - Talent dashboard – Booking preferences .................................................50
Figure 3. 7 - Talent dashboard – Calendar ....................................................................51
Figure 3. 8 - Talent dashboard – Calendar ....................................................................51
vi


Figure 3. 9 - Talent dashboard – My gigs .....................................................................52
Figure 3. 10 - Talent dashboard – Category management ............................................52
Figure 3. 11 - Talent dashboard – Messages .................................................................53
Figure 3. 12 - Talent dashboard – Plan .........................................................................53
Figure 3. 13 - Talent dashboard – Settings....................................................................54
Figure 3. 14 - Talent dashboard – Refer a friend ..........................................................54
Figure 3. 15 - Customer sign up ....................................................................................55
Figure 3. 16 - Customer login .......................................................................................55
Figure 3. 17 - Customer dashboard – Overview ...........................................................56

Figure 3. 18 - Customer dashboard – My bookings ......................................................56
Figure 3. 19 - Customer dashboard – Favourites ..........................................................57
Figure 3. 20 - Customer dashboard – My bookings ......................................................57
Figure 3. 21 - Customer dashboard – My bookings ......................................................58
Figure 3. 22 - Gig details ...............................................................................................58
Figure 3. 23 - Admin - Login ........................................................................................59
Figure 3. 24 - Admin - Analytics ..................................................................................59
Figure 3. 25 - Admin – User management ....................................................................60
Figure 3. 26 - Admin gig management .........................................................................60

vii


LIST OF SYMBOL, ACRONYM

Acronym

Explanation

OS

Operating System

API

Application Programming Interface.

MVC

Model - View - Controller


I/O

Input / Outut

viii


INTRODUCTION

CONTEXT
These days, there’re many people having some kinds of talent in entertainment.
They can be artists, freelancer, students or anyone with passion of bringing their
performance to the audiences and also earn for their livings.
Moreover, there are also customers who want to find some talents for their
wedding, birthday party or any other event.
Talent Town appears and becomes a marketplace where customers can find the
good fit for their events.
Talent Town brings talents the ability of setting up their own profiles with
images, videos, packages, available time and range of places to performance.
Customers will be able to see a list of amazing talents in detail and then decide to
choose one with best option about price, location and time.

SCOPES
Talent Town has mainly targeted to talents who is interested in getting more
gigs and customers who want to find talents for their events.

STRUCTURE OF THESIS
Chapter 1. Theories and Technologies: Research theories and technologies
which was used in the project.

Chapter 2. Analysis and Design: Specify requirements and analysis, design use
case and class diagrams.
Chapter 3. Implement and Assessment results: This chapter shows how to
implement and demonstrate screenshots of main features.
Conclusion. Present archived results and future works.


Talent Town – Book Talents Online

Chapter 1: THEORIES AND TECHNOLOGIES

1.1. The Server side
1.1.1. Node.js
As an asynchronous event-driven JavaScript runtime, Node.js is designed to
build scalable network applications. In most applications, many connections can be
handled concurrently. Upon each connection, the callback is fired, but if there is no
work to be done, Node.js will sleep.

In contrast to today's more common concurrency model, in which OS threads
are employed. Thread-based networking is relatively inefficient and very difficult to
use. Furthermore, users of Node.js are free from worries of dead-locking the process,
since there are no locks. Almost no function in Node.js directly performs I/O, so the
process never blocks. Because nothing blocks, scalable systems are very reasonable to
develop in Node.js.
Node.js being designed without threads doesn't mean you can't take advantage
of multiple cores in your environment. Child processes can be spawned by using our
child_process.fork() API, and are designed to be easy to communicate with. Built upon
that same interface is the cluster module, which allows you to share sockets between
processes to enable load balancing over your cores.
1.1.2. Express.js

Express is a minimal, open source and flexible Node.js web app framework
designed to make developing websites, web apps, & API’s much easier.
Student performed: Nguyen Van Phung Instructor: Dr. Truong Ngoc Chau

10


Talent Town – Book Talents Online

Why Express.js?
+ Express helps to respond to requests with route support so that you may write
responses to specific URLs
+ Supports multiple templating engines to simplify generating HTML.
+ The nice thing about it is it’s very simple and it’s open-source
What is the purpose of it with Node.js?
That you don't have to repeat same code over and over again. Node.js is a lowlevel I/O mechanism which has an HTTP module. If you just use an HTTP module, a
lot of work like parsing the payload, cookies, storing sessions (in memory or in Redis),
selecting the right route pattern based on regular expressions will have to be reimplemented. With Express.js, it is just there for you to use.
1.1.3. MongoDB
Like any other database management language, MongoDB is based on a NoSQL
database that is used for storing data in a key-value pair. Its working is based on the
concept of document and collection. It is also an open source, a document-oriented,
cross-platform database system that is written using C++.
Mongo DB can be defined as a document-oriented database system that uses the
concept of NoSQL. It also provides high availability, high performance, along with
automatic scaling. This open source product was developed by the company - 10gen in
October 2007, and the company also maintains it. MongoDB exists under the General
Public License (GPL) as a free database management tool as well as available under
Commercial license as of the manufacturer. MongoDB was also intended to function
with commodity servers. Companies of different sizes all over the world across all

industries are using MongoDB as their database.

Student performed: Nguyen Van Phung Instructor: Dr. Truong Ngoc Chau

11


Talent Town – Book Talents Online

1.2. The Client side
1.2.1. React.js

ReactJS is an open-source JavaScript library which is used for building user
interfaces specifically for single page applications. It’s used for handling view layer
for web and mobile apps. React also allows us to create reusable UI components.
React was first created by Jordan Walke, a software engineer working for Facebook.
React first deployed on Facebook’s newsfeed in 2011 and on Instagram in 2012.
React allows developers to create large web applications which can change
data, without reloading the page. The main purpose of React is to be fast, scalable, and
simple. It works only on user interfaces in application. This corresponds to view in the
MVC template.
React JS is also called simply React or React.js.
1.2.2. Redux

Redux is a predictable state container for JavaScript apps. As the application
grows, it becomes difficult to keep it organized and maintain data flow. Redux solves
this problem by managing application’s state with a single global object called Store.
Redux fundamental principles help in maintaining consistency throughout your
application, which makes debugging and testing easier.


Student performed: Nguyen Van Phung Instructor: Dr. Truong Ngoc Chau

12


Talent Town – Book Talents Online

More importantly, it gives you live code editing combined with a time-travelling
debugger. It is flexible to go with any view layer such as React, Angular, Vue, etc.
1.2.3. Ant design

Ant Design is a React UI library that has a plethora of easy-to-use components
that are useful for building elegant user interfaces.
Created by Chinese conglomerate Alibaba, Ant Design is used by several big
names: Alibaba (of course), Tencent, Baidu, and more. It is now the most popular
React UI library with over 54k stars on Github.

1.3. Realtime client-server communication
1.3.1. What is Websocket?

WebSocket is a protocol for creating a fast two-way channel between a web
browser and a server. WebSocket overcomes limitations with HTTP to allow for low
latency communications between a user and a web service.
As Internet speeds continue to climb, users are beginning to see the Internet as a
source of dynamic, realtime information. Like desktop applications, the web
Student performed: Nguyen Van Phung Instructor: Dr. Truong Ngoc Chau

13



Talent Town – Book Talents Online

traditionally relied on the user to perform an action before the service could process
and provide information. While this works, it creates a static experience and prevents
users from becoming truly engaged in the content.
WebSocket adds flavor to the web by allowing websites to update content
without having to wait for the user. Unlike other techniques which piggyback on the
HTTP protocol, the WebSocket protocol creates a true ongoing connection between
the user and the web service, allowing information to flow easily between both
endpoints.
1.3.2. Socket.io

Socket.IO was created in 2010. It was developed to use open connections to
facilitate realtime communication, still a relatively new phenomenon at the time.
Socket.IO allows bi-directional communication between client and server. Bidirectional communications are enabled when a client has Socket.IO in the browser,
and a server has also integrated the Socket.IO package. While data can be sent in a
number of forms, JSON is the simplest.
Socket.IO enables real-time, bidirectional and event-based communication.
It works on every platform, browser or device, focusing equally on reliability and
speed.

Student performed: Nguyen Van Phung Instructor: Dr. Truong Ngoc Chau

14


Talent Town – Book Talents Online

Chapter 2: ANALYSIS AND DESIGN
This chapter will go into detail the requirements, describing nonfunctional

requirements, design constraints and other factors necessary to provide a complete and
comprehensive description of the requirements for the application. This consists of a
package containing Requirements Specification, Use-Cases of the use-case model, Use
Case Specifications, Sequence Diagram and Activity Diagram. Shows an overview of
what functions the system can satisfy. In addition, it defines the architecture, modules,
and data for a system to satisfy specified requirements. System design is intended to be
the link between the system architecture and the implementation of technological
system elements that compose the physical architecture model of the system. It could
be seen as the application of systems theory to product development.
The System Design process is to provide sufficiently detailed data and
information about the system and it is a system element to enable the implementation
consistent with architectural entities as defined in models and views of the system
architecture. It shows the components of the web application, the structure of data
tables, the relationship the elements that make up the system.
2.1. Requirement analysis
2.1.1. General requirements
For customers, I want my system has enough features to support them for
finding and booking talents easily. They can view talents list, search for a talent fit
their needs and then view details and make bookings.
For talents, I want my system has enough features to support them for creating
attractive profiles and earn more gigs. They can add photos, videos, packages, extra or
travel information. Then can also set available time for customers to choose date time
for bookings
For admin, I want my system has enough features to support him to fully
manage to website and all users
2.1.2. Main features
This system has three main actors:
- Customer
- Talent
- Admin


Student performed: Nguyen Van Phung Instructor: Dr. Truong Ngoc Chau

15



×