Version:
1.0
Release Date:
March 26, 2021
Last Updated:
March 26, 2021
Authors:
Campbell Leckie, Yasmine Ali, Leron Bergelson, Brayden Mckay, Anshul Khatri
Editors:
Roy Ceyleon, Michael Okenye, Ruth Schmidt, Perikles Tsikrikis, Mohsin Malik, Syed Ahmed
This document is written following the guidelines of the IEEE Recommended Practice for Software Design Descriptions.
The following provides an overview of the StockEye Design.
This document provides an in-depth description of the overall architecture and system design of the StockEye web application. It outlines the modules, processes, and data dependencies, as well as their detailed design and decomposition.
The goal of this document is to aid developers in the design process and implementation of the StockEye project in order to ensure accuracy and consistency during the development of the StockEye web application.
Term | Definition |
---|---|
API | Application Program Interface |
Concurrent Process | Processes in the software that execute simultaneously and share common data and resources. |
JSON | Javascript Object Notation |
Status Object | JSON data returned by the Twitter Stream API encapsulated within a Tweepy object. |
User | The person, or persons, who operate or interact directly with the application. |
View | A visual element to display to the user; in this software it is normally in the form of a web page. |
A complete list of all documents and other sources of information referenced.
This section describes the decomposition of the system in three different forms:
Package | Responsibilities | Associated Entities |
---|---|---|
User |
|
|
StockWatch |
|
|
Machine Learning Model |
|
|
TweetStream |
|
|
Database |
|
|
Concurrent process to handle Status objects pushed through the Twitter Stream API. Forwards newly created Tweet objects to the Machine Learning Model for evaluation, ensuring up to date sentiment values within the database.
Interface | Identification | Purpose |
---|---|---|
Home View | HomeView | An interface that greets, and informs the user about StockEye’s functionality. |
Login View | UserLoginView | An interface for the user to enter username or email address and password for login. Additionally, a check box a remember me checkbox with a forgot your password link. |
Account Registration View | RegistrationView | To let the user register for an account with a username, password, and email. A confirm Registration button to confirm the registration. Additionally, a login button is presented if an account already exists. |
Profile View | AccountSettingsView | Allows the user to change their user information on their account, such as the email and password they wish to have linked to their account. |
This section provides prototypes and details for the StockEye interface.
Field | Type | Description |
---|---|---|
Log-in Button | Button | Triggers drop-down log-in form. |
Register Button | Button | Directs user to Account Registration page. |
Trending Link | Button | Directs user to Trending page. |
Field | Type | Description |
---|---|---|
User-name | Input Text | A user’s username or email address. |
User-password | Input Text | Password to the user’s account. |
Lost-password | Button | Directs user to a page where they can enter their email address. They are then sent a code which they can use to create a new password. |
Field | Type | Description |
---|---|---|
User-name | Input Text | A user’s username or email address. |
User-password | Input Password Text | Password to the user’s account. |
Confirm-password | Input Password Text | Password entered must be the same as User-password for registration to be successful. |
User-email | Input Text | A user’s email address. |
Confirm-registration | Button | If registration is successful, new user object is created. |
Log-in-button | Button | Directs user to UserLoginView. |
Field | Type | Description |
---|---|---|
User-Email | Input Text | A user’s new email. |
User-Password | Input Text | A user’s new password. |
Change-Email | Button | Updates user email. |
Change-Password | Button | Updates user password. |
Field | Type | Description |
---|---|---|
Select-Watchlist | Drop-down Menu | Displays list of existing user Watchlists. |
Manage-Watchlist | Button | Directs user to the ManageWatchlistView for the selected Watchlist. |
Field | Type | Description |
---|---|---|
Create-Watchlist | Button | Creates a new watchlist. |
Delete-Watchlist | Button | Deletes delected watchlist. |
Select-Watchlist | Toggle Box | Selects the watchlist being clicked on. |
Watchlist-Name | Text | Displays name of the watchlist. |
Field | Type | Description |
---|---|---|
Edit-Watchlist | Button | Directs users to the manage watchlist page. |
Cancel-Watchlist | Button | Cancels any changes made to the watchlist. |
Save-Watchlist | Button | Changes made to the watchlist are saved. |
Select-Stock | Toggle Box | Selects the stock being clicked on. |
SelectAll | Button | Selects all the stocks on the watchlist. |
DeleteSelected | Button | Deletes the stock(s) that are selected. |
AddSymbol | Button | Add a new stock. |
Change-Watchlist | Drop-down Menu | Showing available watchlists for users to move to. |
Stock-Price | Text | Displays the current price of the stock. |
Stock-Change | Text | Displays the percentage the stock price has changed. |
Stock-Symbol | Text | Displays the symbol of the stock. |
Stock-Description | Text | Displays the name of the stock. |
Field | Type | Description |
---|---|---|
Stock-Name | Text | The name of the stock. |
Stock-Sentiment | Text | Sentiment value of the stock. |
Stock-Price | Text | Price of the stock. |
Add-to-Watchlist | Button | Add stock to a selected Watchlist. |
Select-Watchlist | Drop-down Menu | Displays list of existing Watchlists. |
Field | Type | Description |
---|---|---|
Filter-by-Price | Button + Input text | Filters stocks from minimum to maximum price. |
Filter-by-Sentiment | Button + Input Text | Filters stocks by sentiment type (positive, negative, neutral). |
Filter-by-StockName | Button + Input Text | Filters stocks by their name. |
Function | Description |
---|---|
setUsername() |
|
setPassword() |
|
confirmPassword() |
|
setEmail() |
|
addSymbol() |
|
Languages: HTML, CSS, Javascript
Illustrations: Undraw.co
Iconography: Iconify (Figma extension)
Visual Framework: ReactJS
Languages: Python
Hosting: Heroku
Web Application Framework: Django
Web Application Libraries: Tweepy, NLTK (Natural Language Toolkit)
Database: SQLite
The StockEye Design is a living document, changing as the project progresses. While Google Docs is used to track the editing history, the StockEye Design includes references to major changes of the document within itself.
Date | Description of Change(s) | Contributor(s) |
---|---|---|
March 24, 2021 | Initial draft of Design completed |
|
March 25, 2021 | Final draft of Design completed |
|