Top Banner
StockWatch Developers: Nimrod Hagay Hagai Barkan Supervisors: Assaf Solomovitch Viktor Kulikov June 2009
16

StockWatch Developers: Nimrod Hagay Hagai Barkan Supervisors: Assaf Solomovitch Viktor Kulikov June 2009.

Dec 19, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: StockWatch Developers: Nimrod Hagay Hagai Barkan Supervisors: Assaf Solomovitch Viktor Kulikov June 2009.

StockWatchDevelopers: Nimrod Hagay

Hagai BarkanSupervisors: Assaf Solomovitch

Viktor Kulikov

June 2009

Page 2: StockWatch Developers: Nimrod Hagay Hagai Barkan Supervisors: Assaf Solomovitch Viktor Kulikov June 2009.

StockWatch is a website (ASP .NET) which provides a User centric interface for managing stock portfolios , supply stock technical analysis (based on www.American-bulls.com web site) , Live market data and news.

Overview

Page 3: StockWatch Developers: Nimrod Hagay Hagai Barkan Supervisors: Assaf Solomovitch Viktor Kulikov June 2009.

StockWatch should use advanced technologies such as AJAX , ASP.NET , JavaScript and Online data management APIS.

StockWatch should be User friendly , attractive and quickly responsive.

StockWatch should provide free technical analysis combined with real-time data and news feeds.

StockWatch should relay on stable data sources.

Project Goals

Page 4: StockWatch Developers: Nimrod Hagay Hagai Barkan Supervisors: Assaf Solomovitch Viktor Kulikov June 2009.

Multiple Users System Real Time QuotesRich presentation layerGoogle Portfolios API User Portfolios Stocks Grading Various News Feeds Admin Management

Main features

Page 5: StockWatch Developers: Nimrod Hagay Hagai Barkan Supervisors: Assaf Solomovitch Viktor Kulikov June 2009.

ASP.NET 3.5ASP.NET 3.5 AJAX extension.Microsoft SQL.C# (.NET framework 3.5).Google spreadsheets API (C#).JavaScriptYUI – Yahoo User InterfaceGoogle VisualizationsGoogle Ajax Feed API

Technologies

Page 6: StockWatch Developers: Nimrod Hagay Hagai Barkan Supervisors: Assaf Solomovitch Viktor Kulikov June 2009.

3-Layers Design

AJAX

ASP.NET

Google visualizations

YUI

Google Spreadsheets API

SqlDataSource

Yahoo web service

Page 7: StockWatch Developers: Nimrod Hagay Hagai Barkan Supervisors: Assaf Solomovitch Viktor Kulikov June 2009.

Layer 0 - Data sources

Google finance Google Spreadsheets

American Bulls

StockWatch DBPortfolios pageStock page

Yahoo finance

Yahoo Web Service Google Portfolios API

StockParser

Page 8: StockWatch Developers: Nimrod Hagay Hagai Barkan Supervisors: Assaf Solomovitch Viktor Kulikov June 2009.

Database – Layer 0

Page 9: StockWatch Developers: Nimrod Hagay Hagai Barkan Supervisors: Assaf Solomovitch Viktor Kulikov June 2009.

Google spreadsheet – Layer 0

Auto updates dataEasy API for querying and updating data

Page 10: StockWatch Developers: Nimrod Hagay Hagai Barkan Supervisors: Assaf Solomovitch Viktor Kulikov June 2009.

Layer 1 - DAL

• Google Portfolios API - User portfolios are saved on A Google spreadsheet in order to get real time data. The API Provides an easy interface managing user’s portfolios.

• SqlDataSource – allows us to access and manipulate data in an ASP.NET page without using ADO.NET classes directly.

• Yahoo web service – provides an easy access to Yahoo finance real time data.

Page 11: StockWatch Developers: Nimrod Hagay Hagai Barkan Supervisors: Assaf Solomovitch Viktor Kulikov June 2009.

Layer 2 – Business logic – the whole picture

#CommitSql_Click() : void#clearFilter_Click() : void#UserSqlGoBtn_Click() : void#UserSqlClrBtn_Click() : void#FilesDownloadProgressBar_RunTask() : void#DBUpdateProgressBar_RunTask() : void+GradeProgressBar_RunTask() : void+UpdateDataSet() : void

ManagementPage

+FixName() : string+Stock()

+Close : string+Market : string+Change : string+Status : string+Symbol : string+Name : string+BullsUrl : string+StockGrade : string+IsInPortfolio : bool+IsInGoogleSheet : bool+GradeTimeStamp : DateTime+LivePrice : string+LiveVol : string+LiveMktCap : string+LiveAvgVol : string+LiveHighPrice : string+LiveLowPrice : string+LiveChange : string

Stock

+AddNewTransaction() : bool+RemoveTransactions() : bool+GetWorksheetUrl() : string+GetUserPortfolios() : String[]+AddPortfolio() : bool+DeletePortfolio() : bool+RenamePortfolio() : bool

GooglePortfoliosExtension

+AddNewTransaction() : bool+RemoveTransactions() : bool+GetWorksheetUrl() : string+GetUserPortfolios() : String[]+AddPortfolio() : bool+DeletePortfolio() : bool+RenamePortfolio() : bool

«interface»IGooglePortfoliosExtension

+EvaluateStockRate() : string+UrlToXml() : void

Globals

+DoHandleError() : void+LogError() : void+WriteToDefaultLog() : void

LogHandler

«uses»

#Page_Load() : void-LoadSpecialStocks() : void-AddSpecialTable() : void

Default (Page)

#Page_Load() : void-SubmitBtn_Click() : void

FeedBack (Page)

+Application_Start() : void+Application_End() : void+Application_Error() : void+Session_Start() : void+Session_End() : void

Global

1

1

#Page_Load() : void+ViewTransactionStrip() : bool+ViewManageStrip() : bool+ViewLinkToPortfolio() : bool+ViewNewsPanel() : bool+RequestedPortfolio() : string#okCreateBtn_Click() : void#DeletePortfolioBtn_Click() : void#renameBtn_Click() : void#AddToPortfolioBtn_Click() : void#RemoveTransaction_Click() : void#goToPortfolioPage_Click() : void#updateUserPortfolio() : void

GooglePortfolioControl (WebControl) 1

1

#Page_Load() : void-searchBtn_Click() : void

MasterPage (Page)

#Page_Load() : void

PasswordRecovery (Page)

#Page_Load() : void

PortfoliosPage (Page)

1

1

#Page_Load() : void

ProblemPage (Page)

#Page_Load() : void#StocksGridView_SelectedIndexChanged() : void

QueryPage (Page)

#createAccountBtn_Click() : void

Register (Page)

#SignInBtn_Click() : void

SignIn (Page)

#SetInfo() : void

StockControl (WebControl)

+GetComplitionList() : String[]

AutoComplete (WebService)

+GetQuoteWithIDS() : String[]

YahooQuoteWebService (WebService)

#Page_Load() : void-PrepareStock() : bool

StockPage (Page)

11

«uses»

1

1

1

1

1

0..*

«uses»

Page 12: StockWatch Developers: Nimrod Hagay Hagai Barkan Supervisors: Assaf Solomovitch Viktor Kulikov June 2009.

Layer 2 – Business logic – Users management & security StockWatch uses ASP.NET Built-in Users Management

mechanism.

The mechanism generate memberships data tables in the database.

Built-in User controls offer easy login (Login control) , registration (CreateUserWizard) , Password recovery and Dynamic content according to the user state (LoginView control).

Roles management – StockWatch uses the roles mechanism in order to distinguish between Admin user (management page) and regular user.

Page 13: StockWatch Developers: Nimrod Hagay Hagai Barkan Supervisors: Assaf Solomovitch Viktor Kulikov June 2009.

StockWatch collect news feeds from Yahoo finance , Google finance & Msn money.

News feeds are dynamic according to the presented stock or stocks in current portfolio.

News feeds are being displayed using Google feed Ajax API. (client side).

Layer 2 – Business logic – News feeds

Page 14: StockWatch Developers: Nimrod Hagay Hagai Barkan Supervisors: Assaf Solomovitch Viktor Kulikov June 2009.

Layer 2 – Business logic – American Bulls data parsing

Everyday at 2 am a data parsing process gets data from American Bulls web pages.

The process has 3 stages :◦ Page download◦ Data parsing and saving into data base◦ Grading process:

Grade = (Stock hits / Stock predictions) The information for the stock grade is based on

predictions results history from American bulls.

Page 15: StockWatch Developers: Nimrod Hagay Hagai Barkan Supervisors: Assaf Solomovitch Viktor Kulikov June 2009.

We used Ajax auto complete control for symbol search, this control use Web Service function. The use of Web Service helps the System run smoothly, and enhance the system performance.

Update Panel :

Layer 3 – Presentation layer – AJAX

Page 16: StockWatch Developers: Nimrod Hagay Hagai Barkan Supervisors: Assaf Solomovitch Viktor Kulikov June 2009.

Layer 3 – Presentation layer – Google Visualization

Dynamic News Feeds

Google Table