Senior Project - Calendar
Senior Project - Calendar
By Jason Chin
June 2, 2017
Contents
1 Introduction 1
4 Architecture Design 17
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.2 Problem Description . . . . . . . . . . . . . . . . . . . . . . . 17
4.3 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.3.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.3.2 Components . . . . . . . . . . . . . . . . . . . . . . . . 17
4.4 Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.4.1 Database Entity Diagram . . . . . . . . . . . . . . . . 20
5 Reflection 22
.1 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
.2 Issues List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1 Introduction
This report consists of three software development documents. These docu-
ments include: Vision and Scope, Software Requirements Specification, and
Software Architecture Design. The application that will be discussed in the
following sections is not only meant to be a standalone application, but also
an application that can be plugged into a larger project management applica-
tion. With this being said, the portion of the project management application
that is the focus of the following documents and the final product application
is a calendar task tracking application.
The creation of each document is intended to further better the vision of
the final product. In the software industry, the Vision and Scope document is
meant to ensure that the stakeholders and engineers share a common under-
standing of the goal they want to reach.[4] The Software Requirements Spec-
ification (SRS) defines what features an application will provide and some of
the purposes for its creation.[6] Finally, the Architecture Design Document
describes how separate components of the system work together.[7]
In general, this calendar application is meant to help individuals with
busy schedules. Those who must balance their time between working on
multiple simultaneous projects would categorize key users. In the application,
users will be able to participate in multiple projects at any one time. When
a user is in a project, they will be able to create tasks, add tasks, be assigned
to tasks, and add other users to the project. A key feature in this application
is that each user is provided a personal project. In their personal project,
any task assigned to the user from any project, will be synced to this project
calendar. This will allow the user to easily view the tasks they need to
complete given the start and end dates.
1
2 Vision and Scope
2.1 Business Requirements
2.1.1 Background
Projects are present in every industry. As projects can be broken into several
tasks, it can be difficult to keep track of them all without some tools to help
keep track of them for us. A planner is one of these tools; they help remind an
individual of both their personal and project tasks, however physical planners
are limited. They only provide a certain amount of space to detail the tasks
for any given day. An application that provides a digital calendar/planner
eliminates the limitation of physical space in a physical planner.
SC-1 Customers will want to use this application over other project manage-
ment and calendar applications for the convenience it offers
2
2.1.5 Business Risks
The primary risk is that the market for project management applications is
already full of solutions. Therefore, creating a viably successful and compet-
itive solution will be difficult.
3
5. Ability to view a personal calendar.
4
2.4.3 Operating Environment
The application will be aimed as a web application, and should be able to
run on any device connected to the internet.
5
3 Software Requirements Specification
3.1 Introduction
This SRS serves as a description of the software application to be built for
release 1.0 of the Calendar Application. The following provides functional
requirements in the form of use cases, system features, external interfaces,
and nonfunctional requirements. This document will be used to verify the
correctness of the application upon completion of version 1.0.
6
3.3 Project Scope
The purpose of this project is to place all tasks for an individual’s multiple
projects in one location. Additionally, the application should allow users
to easily collaborate on projects by allowing each member of the project to
view all the tasks for the project, no matter who it’s assigned to. For more
information please refer to the Vision and Scope Document[1].
3.4 References
The following document(s) should be used as an aid to this SRS document:
7
centralized around user accounts which will be managed and authenticated
through the use of a third-party system. This project and its development
must be managed with an Agile approach.
3. Users will be able to use the application on both mobile and desktop
devices equally well.
8
3.7 Use Cases
All of the following use cases assume the user has signed into the application
as a precondition.
9
1.2 User adds other users to the project
1. Branch after step 3 of normal flow.
2. The user enters the username of other users.
3. Return to step 4 of normal flow.
Exceptions: None
Priority: High
Frequency of Use: Very Common
10
1. Branch after step 2 of normal flow.
2. The user clicks the cancel button.
3. Return to step 6 of normal flow.
1.2 User does not provide a task title or assigned user.
1. Branch after step 2 of normal flow.
2. The user clicks the create button.
3. A warning displays that the user must provide a
task title and assigned user.
4. Return to step 3 of normal flow.
Exceptions: None
Priority: High
Frequency of Use: Very Common
11
1. The user has a project calendar open.
2. The user creates a new task for the project as-
signed to themselves.
3. The user switches to their personal calendar by
clicking their personal project button.
4. The user’s screen changes to their personal cal-
endar and the newly created task is visible.
Alternative Flows: None
Exceptions: None
Priority: High
Frequency of Use: Very Common
12
3.7.5 Use Case 5: Switch Between Projects
The user can switch from viewing one project calendar to another.
13
FR-1.6 A user shall be able to cancel creation of a project.
FR-1.7 A user shall be able to switch from one project to
another.
3.8.2 Tasks
Description and Priority
The priority for this system feature is high.
Functional Requirements
3.8.3 Calendar
Description and Priority
A calendar is the visual representation of a project. Tasks added to a project
will be displayed on the project calendar. As the primary interface of the
application, the priority of this system feature is high.
Functional Requirements
14
FR-3.3 A user shall be able to view a day with tasks related
to it from the project calendar.
FR-4 A user shall have all tasks assigned to them synced to
their personal calendar.
15
3.10.3 Security Requirements
1. The server must support user authentication.
16
4 Architecture Design
4.1 Introduction
This document graphically breaks down the software architecture for the
calendar planner web application. Included is a deployment diagram,
dialog map, and database entity relationship diagram. For more context
on nonfunctional and functional requirements, refer to the SRS and Vision
Scope sections.
4.3 Solution
4.3.1 Overview
The calendar application will consist of a web application available via web
browser. Authentication and a realtime database will be managed through
Firebase’s services. The client will interact with Firebase servers to manage
the creation of projects and user interactions with them. All data will be
stored in Firebase’s database server.[2]
4.3.2 Components
Deployment Diagram
The Deployment Diagram consists of the client browser and the web
services provided by Firebase. The application interacts with the data
hosted in Firebase. Users of the application are authenticated using the
Firebase’s Auth Web API.
17
The Firebase Auth service provides the core application with a means
of verifying Users and protecting User information through the use of
unique, secure authorization tokens. All communication between the Auth
servers and the core application is done in compliance with SSL protocol.
18
Dialog Map
The dialog map above shows the sequence of screens the user can traverse
through in the planner application. Upon first use of the application, the
user is directed to the login screen, where they will be prompted to login
via their Google account. After creating an account, the user is sent to a
screen where they view their personal project in the current month. From
here the user can perform a number of actions; they can switch projects,
view the previous month, next month, and create new tasks or add new users.
19
4.4 Design
4.4.1 Database Entity Diagram
Firebase’s Realtime Database uses JSON object trees to store and orga-
nize data. For the application, the database will be organized in two main
trees. One tree will be the User tree, the other will be the Project tree.
1. User
20
2. Project
3. Task
21
5 Reflection
This project served as both an excellent exercise to test my software develop-
ment knowledge as well as an excellent learning experience. Web application
development is a handy skill set to have as society moves more toward digital
technology resources. Companies need websites and web applications can be
easily reached on any device connected to the internet.
Since this was my first experience with web development technology, there
was a fairly large learning curve. My decision to use HTML5, CSS, and
javascript to develop the application was largely from my understanding that
these were the technologies generally used in web development. However,
these were also technologies I already wanted to learn, which made this a
more subjective than objective decision.
During the first six weeks of the project, I took a Waterfall-like approach.
I developed the Vision and Scope, SRS, and Architecture Design documents.
I also spent three of the six weeks experimenting with the technologies I would
use, such as what development environment to use and how to develop an
application using Firebase. This time period allowed me to gain a strong
understanding of how I wanted to develop the application. However when it
came to the actual coding, development did not go as smoothly as I expected.
When I was coding, there were usually short periods of time with large
amounts of productivity accompanied by longer periods of time when I would
be stuck debugging a seemingly simple error. These periods of debugging
took place mainly at the beginning of development. As my knowledge of
javascript grew, debugging certain issues became relatively easy compared
to the previous weeks.
I implemented the application incrementally in a more Agile fashion, by
determining the order of significance for features. This also included the
UI design of the application, where I left the UI design of the application
until all the features were successfully implemented. This would have been
a bad decision if I had ran out of time before implementing all of the fea-
tures, because the UI would then have consisted of the default appearance
for displaying HTML files. Luckily, all the features were not overwhelmingly
difficult to implement. I particularly enjoyed applying the CSS after imple-
menting functionality. Unlike creating UI for other application platforms,
CSS was easier and felt more customizable.
Overall, I enjoyed developing this application. Although the first few
weeks were filled with more documentation writing, I believe this was a good
22
decision because it allowed me to gain a strong understanding of how the
application would work and should be developed.
.1 Glossary
Term Definition
Project A project is defined as a collection of tasks related to
a common topic.
Task A task represents a work item in a user’s schedule.
.2 Issues List
No known issues.
23
References
[1] Asana. Asana, 2017.
[5] Anant Narayanan. Where does firebase fit in your app, 2015.
24