Skip to content
Lior Vaknin edited this page Apr 13, 2018 · 29 revisions

Software Design Specification

Introduction

Abstract

This document will describe in detail the software architecture and design of our project. In this document we will describe the structure of the various classes in our project. This document will provide several views of the system design to provide a richer understanding of the system. We intend to capture the significant architectural and design decisions in our project.

Document goals

  • Showing the internal architecture planned for the application.
  • Divide the project into organized structures for future tasks distribution.
  • Assure the structure correctness.
  • Assure the software design modularity.
  • Order the application structure to simplify the code that would be written.

Main Capabilities

Capability Description (Original Requirement) Non-realization outcome
Main information cards Show information cards pushed by the organization to the students on the home page Loss of the main project purpose*
Calendar information Show the organization future events Loss of a major project purpose*
Calendar synchronization Allow the user to synchronize his personal calendar with the events mentioned in the application Disorder regarding the organization events within the user base
Gallery Show images from the organization Facebook page Loss of a major project purpose*
Information Show general information on the organization and its departments Loss of a major project purpose*
FAQ Provide a frequently asked questioned segment in the application High number of repetitive questions directed at the organization, causing major time loss
Contact page Provide contact information and a built-in contact system Disconnection between the organization and its user base

* Please refer to the project SRS document for information on the project purpose

Design Diagrams

Deployment Diagrams

Deployment Diagram

The diagram shows the basic idea for the application deployment. Please refer to the following notes:

  • The application is heavily relying on successful API integration of multiple components, which is obligating a clean and simple design for smooth interrupt-less functionallity
  • Most arrows appear two-way to show that data is being delivered back and forth through most of the diagram components, excluding the user client which suppose to only receive data
  • Webcal is used for mail synchronization and Facebook API is used for the application gallery
  • Data integration, although mostly minimal, will be handled on the server side

CRC Cards

Admin

Responsibilities Collaborators
Send notification Firebase
Add new data Firebase

Home

Responsibilities Collaborators
Show stories to clinets Firebase
Show single story on demand Story

App

Responsibilities Collaborators
Verify Admin login Firebase
Navigate between pages Home, Gallery, Calendar, Info

Class Diagram


The diagram shows the basic idea for the application. Please refer to the following notes:

  • All pages connected to firebase that holds the data for them.
  • Firebase is also the "connector" between the admin area and the other pages.

State Chart

Data and general design

Persistence

  • The application's data and and items will be stored in a database placed at firebase.
  • When the device is connected the data base synchronizes the local data changes in real time.
  • The files that going to manage that:
    • firebaseCloudFuncs (for admin)
    • fcmProvider (for notifications)
    • dbProvider (for data sync in real-time)

Non-functional Requirements

Security

Initial Test Plan (optional)

Wireframes

Clone this wiki locally