Developing this project and understanding the project description requires a good understanding of security markets. If you do not have financial experience please do not bid on this project. Please indicate what experience you have when bidding on this project.
When bidding for this project please provide a brief overview of the system architecture you envision and the technologies you propose to use for each module.
The application allows a user to create one or more portfolios, each containing one or more positions in various securities (stocks, options, futures, and more). For each position, the user can specify alert rules. The system automatically monitors alert conditions in the background and alerts the user by email if any of the conditions are met.
The system must be able to read security prices from various external sources. In an initial phase this will most likely be Yahoo Finance and EODData, two providers of free or cheap pricing data.
The system must be built using loosely coupled modules, which communicate via messaging queues. The following is a tentative, high level list of modules. Simply speaking, the GUI allows the user to enter and persist alert rules. The Pricing Engine periodically updates the prices of the various securities that are tracked by the system, and feeds this information to the Rule Evaluation Engine. The Rule Evaluation Engine then instructs the Alert Delivery Engine to notify the user when specific rules are satisfied.
• web based (mobile to follow later)
• supports all major browsers
• supports AJAX
• HTML5 / DHTML (preferred)
• Flash (strongly discouraged)
• supports clients on multiple platforms (web, mobile, desktop)
• ASP.NET / Web Services
• AppEngine / Python
• Remoting / Silverlight service
• generic REST/JSON service
• relational database
• NoSQL database (GAE Datastore strongly preferred)
• SQL Server
**Pricing engine 0..N
• retrieves prices and other information specific to the pricing source (Yahoo, EODData, IQFeed, etc.)
• translates security meta data to system internal structure
• multiple pricing engines may run in parallel
• C# / Windows Service
**Rule evaluation engine
• retrieves rules from persistence layer and evaluates them continuously
• sends alerts if rules are satisfied (via Alert delivery engine)
• receives updates to rules as they are made by the user
• C# service
• GAE Backend
**Alert delivery engine
• receives alert requests via message bus
• delivers alerts by email
• C# service
• GAE Backend
• routes messages between other system modules
• open source / free
• standard protocols
• GAE Task Queue