StockWatch - Poster

advertisement
StockWatch
Developers:
Nimrod Hagay
Hagai Barkan
Supervisors: Assaf Solomovitch
Viktor Kulikov
June 2009
Overview

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.
Project Goals

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.
Main features








Multiple Users System
Real Time Quotes
Rich presentation layer
Google Portfolios API
User Portfolios
Stocks Grading
Various News Feeds
Admin Management
Technologies









ASP.NET 3.5
ASP.NET 3.5 AJAX extension.
Microsoft SQL.
C# (.NET framework 3.5).
Google spreadsheets API (C#).
JavaScript
YUI – Yahoo User Interface
Google Visualizations
Google Ajax Feed API
3-Layers Design
AJAX
ASP.NET
Google visualizations
YUI
Google Spreadsheets API
SqlDataSource
Yahoo web service
Layer 0 - Data sources
Yahoo finance
Yahoo Web Service
Stock page
Google finance
Google
Spreadsheets
Google Portfolios
API
Portfolios page
American
Bulls
StockParser
StockWatch DB
Database – Layer 0
Google spreadsheet – Layer 0
Auto updates data
 Easy API for querying and updating data

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.
Layer 2 – Business logic – the whole picture
1
LogHandler
+DoHandleError() : void
+LogError() : void
+WriteToDefaultLog() : void
PasswordRecovery (Page)
#Page_Load() : void
ProblemPage (Page)
#Page_Load() : void
QueryPage (Page)
#Page_Load() : void
#StocksGridView_SelectedIndexChanged() : void
1
0..*
#createAccountBtn_Click() : void
SignIn (Page)
1
#Page_Load() : void
-SubmitBtn_Click() : void
1
PortfoliosPage (Page)
#Page_Load() : void
1
AutoComplete (WebService)
+EvaluateStockRate() : string
+UrlToXml() : void
+GetComplitionList() : String[]
Default (Page)
1
#Page_Load() : void
-LoadSpecialStocks() : void
-AddSpecialTable() : void
#SignInBtn_Click() : void
FeedBack (Page)
GooglePortfoliosExtension
Globals
GooglePortfolioControl (WebControl)
#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
1
+AddNewTransaction() : bool
+RemoveTransactions() : bool
+GetWorksheetUrl() : string
+GetUserPortfolios() : String[]
+AddPortfolio() : bool
+DeletePortfolio() : bool
+RenamePortfolio() : bool
1
+Application_Start() : void
+Application_End() : void
+Application_Error() : void
+Session_Start() : void
+Session_End() : void
#CommitSql_Click() : void
#clearFilter_Click() : void
#UserSqlGoBtn_Click() : void
#UserSqlClrBtn_Click() : void
#FilesDownloadProgressBar_RunTask() : void
#DBUpdateProgressBar_RunTask() : void
+GradeProgressBar_RunTask() : void
+UpdateDataSet() : void
«uses»
Global
Register (Page)
«interface»
IGooglePortfoliosExtension
+AddNewTransaction() : bool
+RemoveTransactions() : bool
+GetWorksheetUrl() : string
+GetUserPortfolios() : String[]
+AddPortfolio() : bool
+DeletePortfolio() : bool
+RenamePortfolio() : bool
ManagementPage
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
+FixName() : string
+Stock()
1
YahooQuoteWebService (WebService)
«uses»
+GetQuoteWithIDS() : String[]
«uses»
1
StockControl (WebControl)
#SetInfo() : void
1
MasterPage (Page)
1
#Page_Load() : void
-searchBtn_Click() : void
1
StockPage (Page)
#Page_Load() : void
-PrepareStock() : bool
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.
Layer 2 – Business logic – News feeds

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 – 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.
Layer 3 – Presentation layer – AJAX
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 – Google Visualization
Dynamic News Feeds
Google Table
Download