Study Space

Analysis Document
Version 1.5 - 07/03/2017

Introduction

Study Space is a web-based application that allows students in any university to post and find study group locations. By doing so, students are able to help each other achieve their academic goals as well as make new acquaintances.

Object Classification

Entity Objects

Beacon: A study location with details of the location created by a RegisteredUser for other Users and RegisteredUsers to join.
BeaconList: A list of Beacons.
ChatDB: A way for all GuestUsers and RegisteredUsers to communicate through text.
GuestUser: A Human who does not own an account and is using the application.
Profile: A RegisteredUser’s profile they can edit.
RegisteredUser: A GuestUser that created an account with username and password.
UserDB: A database to store RegisteredUsers credentials.

Boundary Objects

BeaconChatWindow: A Chat including all GuestUsers and RegisteredUsers in that Beacon.
BeaconConfirmationWindow: A window confirming the credentials of a Beacon.
BeaconControlWindow: A window with all options to control the Beacon.
BeaconCreationWindow: Where a RegisteredUser can create a Beacon by entering location and course code then can control that Beacon.
BeaconFailedJoinWindow: A window shown when joining Beacon has failed.
BeaconJoinedWindow: A window notifying a GuestUser or RegisteredUser that they joined a Beacon.
ChatBar: A bar containing all Chat instances to that GuestUser or RegisteredUser.
ChatWindow: A window of which a GuestUser or RegisteredUser sends and receives messages.
HomeWindow: The main window view of all operations to GuestUsers and RegisteredUsers.
LoginWindow: A window where GuestUsers can enter their credentials to login to their RegisteredUser account.
ProfileWindow Displays a RegisteredUsers Profile.
SearchWindow A window where GuestUsers and RegisteredUsers apply filters to BeaconList.

Control Objects

ApplySearchFilters: Applies filters to BeaconList.
BackToSearch: Redirects GuestUser or RegisteredUser back to SearchWindow after a failed search.
CreateBeacon: Creates the beacon.
CloseBeacon: Allows RegisteredUser controlling the Beacon to close the Beacon.
CancelChanges: Cancels changes made to a RegisteredUsers ProfileWindow.
DisplayResults: Displays results of a search.
EditProfile: Applies changes to a RegisteredUsers Profile.
ExtendBeacon: Allows RegisteredUser controlling the Beacon to extend the time of their Beacon.
EnterInfo: Writes RegisteredUser entered info to the Beacon.
FailedCreation: Notifies the RegisteredUser controlling the Beacon of failed Beacon creation.
InviteUser: Invites another GuestUser or RegisteredUser to Chat.
JoinBeacon: Joins a GuestUser or RegisteredUser to a Beacon.
JoinChat: Controller to join a GuestUser or RegisteredUser to a Chat.
LeaveBeacon: Removes a GuestUser or RegisteredUser from a Beacon they are in.
Login: Logs in a GuestUser to their RegisteredUser account.
Logout: Logs out a RegisteredUser from their account.
LeaveChat: Controller to GuestUser or RegisteredUser leaves Chat.
NotifyUser: Notifies GuestUser or RegisteredUser if an invitation to a Beacon.
SaveChanges: Saves changes made to a RegisteredUser ProfileWindow.
SendMsg: Controls sending a message to a Chat.
RelocateBeacon: Allows RegisteredUser controlling the Beacon to relocate their Beacon.
RegisterBeacon: Registers Beacon to BeaconList.
ValidateBeacon: Validates Beacon creation.
ValidateUser: Validates a RegisteredUsers credentials upon login.

Diagrams

Use Case Diagram

State Diagram

Class Diagram

Class Diagram Description

This class diagram outlines each class to be used within the web application. A brief description of each class is given below:

Beacon: Each Beacon is associated with 0 or more Beacon(s), while each Beacon is associated with 1 or more RegisteredUser(s). The Beacon class stores the location, start and end time of the Beacon, as well as other information pertaining to that particular Beacon’s RegisteredUser and Course.

Course: Each GuestUser or RegisteredUser may be associated with 0 or more Course(s). The Course class stores user-generated information pertaining to each course the User identifies as enrolled in.

Chat: The Chat class operates as an abstract class which implements two child classes – BeaconChat and PrivateChat. Each Chat is associated with 0 or more Message(s). The BeaconChat class allows for communication between members of a Beacon. This class requires a separate ID generation process from that implemented by PrivateChat given the fact that PrivateChat is only between two people.

Message: The Message class is associated with 1 and only 1 Chat. Each Message is package access and may only be accessed from within itself or through the Chat class. Each Message will be associated with a User, a text string, as well as a timestamp. This timestamp is not included in the Message constructor and will be identified at runtime by the CPU.

User: The User class is the parent class of the GuestUser and the RegisteredUser. While both GuestUser and RegisteredUser inherit methods from the parent User class, only a Registered User may create a Beacon. The RegisteredUser class also stores that user’s Gravitar (Globally Recognized Avatar), which associates a picture with each RegisteredUser.

Robustness Diagrams








Sequence Diagrams










Versions

Version 1.0 - 06/18/2017

Created the documents content Converted to the document into HTML Thanks to SQA by

Version 1.1 - 06/18/2017

Diagrams Embedded as PNG, fixes and improvements

Version 1.2 - 06/28/2017

Implemented dynamic header and subheader numbering

Version 1.3 - 06/29/2017

Edited spelling mistakes, wording errors, and spacing issues, added class diagram description, edited sequence and state diagrams. Thanks to SQA by

Version 1.4 - 06/30/2017

Edited some more spelling errors and other inconsistencies Thanks to SQA by

Version 1.5 - 07/03/2017

Updated all diagrams from original analysis document

Authored By