CSE 4316: SENIOR DESIGN I - DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING THE UNIVERSITY OF TEXAS AT ARLINGTON PROJECT CHARTER - CDN

Page created by Erik Meyer
 
CONTINUE READING
CSE 4316: SENIOR DESIGN I - DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING THE UNIVERSITY OF TEXAS AT ARLINGTON PROJECT CHARTER - CDN
DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING
    THE UNIVERSITY OF TEXAS AT ARLINGTON

                               PROJECT CHARTER
                           CSE 4316: SENIOR DESIGN I
                                  FALL 2019

                           Figure 1: Icon made by Freepik from www.flaticon.com

                                       TEAM MEERKAT
                                         MEERKAT

Team Meerkat - Fall 2019                                                          page 1 of 13
TERESA NGUYEN
                           SAURAV SUBEDI
                             HY NGUYEN
                             QUAN DOAN
                             NIKA DAVIS

Team Meerkat - Fall 2019                   page 2 of 13
REVISION HISTORY

 Revision      Date         Author(s)    Description
 0.1           10.04.2019   TN           document creation
 0.1           03.30.2020   QD, TN, HN   document revision
 1.0           05.01.2020   TN           final revision

Team Meerkat - Fall 2019                                     page 3 of 13
CONTENTS

1 Vision                                                                                                                                                                      7

2 Mission                                                                                                                                                                     7

3 Success Criteria                                                                                                                                                            7

4 Background                                                                                                                                                                  8

5 Related Work                                                                                                                                                                8

6 System Overview                                                                                                                                                             8

7 Roles & Responsibilities                                                                                                                                                   8

8 Cost Proposal                                                                                                                                                               9
  8.1 Preliminary Budget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                                9
  8.2 Current & Pending Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                                   9

9 Facilities & Equipment                                                                                                                                                     9

10 Assumptions                                                                                                                                                                9

11 Constraints                                                                                                                                                                9

12 Risks                                                                                                                                                                      9

13 Documentation & Reporting                                                                                                                                                 10
   13.1 Major Documentation Deliverables . . . . .          .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    .   .   .   10
        13.1.1 Project Charter . . . . . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    .   .   .   10
        13.1.2 System Requirements Specification .          .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    .   .   .   10
        13.1.3 Architectural Design Specification .         .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    .   .   .   10
        13.1.4 Detailed Design Specification . . . .        .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    .   .   .   10
   13.2 Recurring Sprint Items . . . . . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    .   .   .   10
        13.2.1 Product Backlog . . . . . . . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    .   .   .   10
        13.2.2 Sprint Planning . . . . . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    .   .   .   10
        13.2.3 Sprint Goal . . . . . . . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    .   .   .   11
        13.2.4 Sprint Backlog . . . . . . . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    .   .   .   11
        13.2.5 Task Breakdown . . . . . . . . . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    .   .   .   11
        13.2.6 Sprint Burn Down Charts . . . . . . .        .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    .   .   .   11
        13.2.7 Sprint Retrospective . . . . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    .   .   .   11
        13.2.8 Individual Status Reports . . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    .   .   .   11
        13.2.9 Engineering Notebooks . . . . . . . .        .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    .   .   .   11
   13.3 Closeout Materials . . . . . . . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    .   .   .   11
        13.3.1 System Prototype . . . . . . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    .   .   .   12
        13.3.2 Project Poster . . . . . . . . . . . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    .   .   .   12
        13.3.3 Web Page . . . . . . . . . . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    .   .   .   12
        13.3.4 Demo Video . . . . . . . . . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    .   .   .   12
        13.3.5 Source Code . . . . . . . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    .   .   .   12

Team Meerkat - Fall 2019                                                                                                                                        page 4 of 13
13.3.6 Source Code Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .          12
         13.3.7 Installation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   12
         13.3.8 User Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      12

Team Meerkat - Fall 2019                                                                                    page 5 of 13
LIST   OF   FIGURES
   1     Icon made by Freepik from www.flaticon.com . . . . . . . . . . . . . . . . . . . . . . . . . . .        1
   2     Example sprint burn down chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   11

Team Meerkat - Fall 2019                                                                               page 6 of 13
1    VISION
Our vision is to allow friends, family, and even strangers to easily connect and share entertainment no
matter where they are.

2    MISSION
Our mission is to provide a platform that will allow people to share entertainment virtually in real-time.
The platform will be completely web-based to make it convenient for everyone to use.

3    SUCCESS CRITERIA
Upon completion of the prototype system, we expect the following success indicators to be observed:

    • The ability to connect up to 2 users at once in a single room

    • The ability for users to watch the videos with less than a 5000 ms delay among all users in the
      room

    • The ability for users to communicate in the room chat with less than a 3000 ms delivery time
      upon sending a message

   Within 6 months after the prototype delivery date, we expect the following success indicators to be
observed:

    • The ability to connect up to 10 users at once in any number of rooms

    • The ability for users to watch the videos with less than 1000 ms delay among all users in the room

    • The ability for users to communicate in the room chat with less than a 1000 ms delivery time
      upon sending a message

Team Meerkat - Fall 2019                                                                       page 7 of 13
4    BACKGROUND
The aim of our application is to improve the experience of sharing public entertainment services. Due to
the inconveniences of planning in-person gatherings and complicated features of other services already
on the market, we believe our platform will provide the best alternative for allowing people to share
their watching experiences effortlessly and painlessly.

5    RELATED WORK
One solution currently on the market is Kast [1] - a real-time video sharing app with screen capture,
voice, text, and video chat technology. Although similar to our project, we believe that Meerkat will be
more appealing to customers due to the fact that our platform is purely web-based; users won’t have to
download and install an external application.

6    SYSTEM OVERVIEW
For our project, we plan on implementing a fullstack web application, with the frontend being built
with React.js and the backend being built with the Spring framework. The backend server will com-
municate with a database that stores user and chat information. The frontend client (which the users
interface with) will communicate with the backend server through API endpoints to retrieve data from
the database, and will also communicate with a media server that will be externally hosted on the cloud
to help route video streams. The diagram below highlights the major components of the system and
how they will interact with each other.

7    ROLES & RESPONSIBILITIES
The stakeholders of the project are the team members, future customers, and the project manager. Each
team member will have the following responsibilities:
    • Quan Doan: Team lead

    • Teresa Nguyen: Backend Lead

    • Nika Davis: Risk Manager

    • Saurav Subedi: Sprint Manager

    • Hy Nguyen: Frontend Lead

Team Meerkat - Fall 2019                                                                     page 8 of 13
8     COST PROPOSAL
8.1    PRELIMINARY BUDGET

8.2    CURRENT & PENDING SUPPORT
Our project is funded $800 by the CSE department at the University of Texas, Arlington.

9     FACILITIES & EQUIPMENT
Due to the lack of hardware requirements in our project, we do not require any lab space, makerspaces,
or testing grounds. We also will not need any physical equipment for the project. Our application
involves handling video streams among multiple peers, so we plan on using an external source to meet
our needs for a media server to help handle peer connections. Currently we are interested in using
media server tools offered on the AWS Marketplace.

10     ASSUMPTIONS
The following list contains critical assumptions related to the implementation and testing of the project.

     • Several open-source APIs will be available to use to implement in this project

     • Users will have proper connectivity to host/watch a stream

     • Users will have sufficient hardware to host/watch a stream

     • Users will have only one account active per device

     • Microsoft Azure, Google Gloud Platform, and Heroku servers will be available to use during testing
       and usage of the application

11     CONSTRAINTS
The following list contains key constraints related to the implementation and testing of the project.

     • An initial prototype of the product must be completed by February 3, 2020

     • Final prototype demonstration must be completed by May 1st, 2020

     • Host stream must remain private to avoid copyright infringements

     • Clips and recordings are prohibited to avoid copyright infringements

     • Total development costs must not exceed $800

12     RISKS
The following high-level risk census contains identified project risks with the highest exposure. Mitiga-
tion strategies will be discussed in future planning sessions.

Team Meerkat - Fall 2019                                                                       page 9 of 13
Risk description                                                Probability   Loss (days)   Exposure (days)
  Availability of cloud servers due to technical difficulties     0.01          2             0.02
  Incompatibility of WebRTC with other application technologies   0.10          3             0.3
  MongoDB Database APIs availability                              0.01          3             0.03
  React.js framework support availability                         0.01          5             0.05
  Java Spring framework support availability                      0.01          5             0.05

                            Table 1: Overview of highest exposure project risks

13     DOCUMENTATION & REPORTING
13.1     MAJOR DOCUMENTATION DELIVERABLES
13.1.1    PROJECT CHARTER
The Project Charter will be maintained by all the members and updated whenever any large changes
arise regarding the project risks, equipment, and success criteria. The initial version will be delivered
before the first sprint and the final version will be delivered at the end of the last sprint.
13.1.2    SYSTEM REQUIREMENTS SPECIFICATION
The System Requirements Specification will be maintained by all the members and updated whenever
any large changes arise regarding the system requirements. The initial version will be delivered during
the first sprint and the final version will be delivered at the end of the last sprint.
13.1.3    ARCHITECTURAL DESIGN SPECIFICATION
The Architectural Design Specification will be maintained by all the members and updated whenever
any large changes arise regarding the system design or application architecture. The initial version will
be delivered during the first sprint and the final version will be delivered at the end of the last sprint.
13.1.4    DETAILED DESIGN SPECIFICATION
The Detailed Design Specification will be maintained by all the members and updated whenever any
changes arise regarding details of the application design. The initial version will be delivered during
the first sprint and the final version will be delivered at the end of the last sprint.
13.2     RECURRING SPRINT ITEMS
We plan to manage our project using Trello. Through the course of each sprint, there will be a digital
scrum board that will be maintained by each member as items from the product backlog are completed.
The actual backlog document itself will also be modified based on the team’s ability to complete items
in a timely manner.
13.2.1    PRODUCT BACKLOG
Items will be added to the product backlog based on the the fundamental features dictated by the system
requirements and success criteria first, and then by priority of customer appeal afterwards. The items
will be prioritized by the product owner, with input from the team members. The product backlog and
all project information will be shared among team members and stakeholders using Trello.
13.2.2    SPRINT PLANNING
Sprint planning will take place on a week-to-week basis. The sprints will be two weeks in length, and
we expect to have 12 sprints during the course of our project.

Team Meerkat - Fall 2019                                                                           page 10 of 13
13.2.3    SPRINT GOAL
The sprint goals will be decided as a team at our weekly meetings. Prior to our goal planning, we will
discuss with the customer about which features they want completed in the near future. The goals for
a certain sprint will primarily be decided by our progress in the previous sprint as well as the goals
prioritized by the customer.
13.2.4    SPRINT BACKLOG
Similar to our sprint goals, the sprint backlog will also be produced during our weekly meetings. The
entire team will contribute to selecting items for the sprint backlog that are in line with the customer’s
needs. The sprint backlog will also be maintained using Trello.
13.2.5    TASK BREAKDOWN
Individual tasks will be determined by team lead according to the specific role of that team member,
although team members will be able to voluntarily swap tasks if desired. Time spent on tasks will be
noted in the sprint backlog as well as on the scrum board.
13.2.6    SPRINT BURN DOWN CHARTS
The team lead is responsible for generating the sprint burn down charts. The amount of effort is deter-
mined by the amount of tasks completed and the time spent on those tasks. The chart will display the
estimated amount of effort left as well as the number of tasks completed for each day in the sprint.

                               Figure 2: Example sprint burn down chart

13.2.7    SPRINT RETROSPECTIVE
The sprint retrospective will occur on the same day as our weekly standup after the end of a sprint, and
before our sprint planning. Issues that are brought up by the team members will be noted in the sprint
backlog for the next sprint.
13.2.8    INDIVIDUAL STATUS REPORTS
We will have weekly standup meetings where each team member will report which features of the sprint
they have completed and are currently working on, and the projected time needed for them to finish up
the rest of their assigned requirements from the product backlog. We will also discuss any roadblocks
or issues that need to be addressed.
13.2.9    ENGINEERING NOTEBOOKS
The engineering notebook will be updated at least once by each team member each sprint. The team
lead, frontend and backend leads will be responsible for keeping the team members accountable as well
as serve as witnesses for each page in the notebook.
13.3     CLOSEOUT MATERIALS
Other materials that will be provided at closeout include:

Team Meerkat - Fall 2019                                                                      page 11 of 13
13.3.1    SYSTEM PROTOTYPE
The final system prototype will be a web application that fulfills the preliminary success criteria. Proto-
type acceptance testing will be conducted before moving on to the next stage.
13.3.2    PROJECT POSTER
The application name and logo will be included in the poster. It’s final dimensions will be 36" by 48"
and it will be delivered digitally by May 2020.
13.3.3    WEB PAGE
The project web page will include information advertising the basic features of our project and possibly
a demo video. We will make it accessible to the public at closeout and expect it to be delivered by May
2020.
13.3.4    DEMO VIDEO
The demo video will show the user experience flow for various user stories in order to address all the
requirements. We expect the video to be no more than 10 minutes in length.
13.3.5    SOURCE CODE
The source code for this project will be maintained using Git as the version control system. No binaries
are involved since Meerkat is a web application, thus the project source code will be provided via GitHub.
We are not planning to make the project open-source.
13.3.6    SOURCE CODE DOCUMENTATION
Documentation of the source code will be produced using Docusaurus. On the frontend, documen-
tation will consist of detailed information for each React component, including its usage and the re-
quired/available props. Backend documentation will consist of information about API endpoints. Doc-
umentation about the database structure and the entire application architecture will also be included.
All documentation will be accessible via a website.
13.3.7    INSTALLATION SCRIPTS
We plan on hosting our application through cloud services on Heroku, Microsoft Azure, and Google
Cloud Platform with streamlined deployment services. Deployment instructions for each part of our
application will be provided in a README file.
13.3.8    USER MANUAL
There will not be any printed user manuals for the product. Our web application will provide an intuitive
UI and we will post a tutorial demo video on the CSE blog page to go along with.

Team Meerkat - Fall 2019                                                                       page 12 of 13
REFERENCES
[1] Kast - share your experiences live. https://kast.gg. Accessed: 2019-10-14.

Team Meerkat - Fall 2019                                                         page 13 of 13
You can also read