Case Study Web Based Investment Management System
www.brainvire.com | Š 2013 Brainvire Infotech Pvt. Ltd
Page 1 of 1
Client Requirement PCG is a financial services application. This application manages various investment themes and investors can choose themes to invest in, allocate funds and move their money across different themes as desired. The application will present an overview public page that requires both prospective and paying clients to register/login for more information. There are mainly 2 different types of users for the platform: 1. Perspective client 2. Paying client Any visitor to portal can register themselves to gain access to login restricted information. After visitor got register, the admin staff reviews information and allow/grant access to the secured area. Only limited information can be accessed by the Perspective client. When any perspective client signs contract and mutual agreement with PCG, the PCG Admin then converts the perspective client into a paying client. The paying client can view their portfolio performance, buy/sell any theme, do fund transfer from one theme to another etc. PCG is expected to operate automatically for all the transaction related operation. There are 3rd party APIs which provides the real time data with respect to theme, client and overall performance statistics which are highlighted on the portal for clients to review and track. System will pull raw information like individual trades in the portfolio and performance statistics for each piece of the portfolio. However, to the user it will present % day-to-day/monthly/quarterly increase or decrease from previous for each piece of the portfolios. In general, this is a financial services app which consists of sensitive user information including account number, passwords and other individual identification data. Standard encryption (for example - iterated encrypted hash function) needs to be applied to such fields in the database for user protection.
Challenges -
Incorporating web usability principles while developing numerous features designed for enhancing the users’ experience. Security of user’s transactional data is the key challenge of the platform. Platform supports multiple investment trends along with real time performance indicator over historical period as well. Rapid application development was main target behind building this application. Utilizing community available bundles and customize/override according to the requirement was most challenging part of the development cycle. Customization of FOS user bundle for supporting multiple roles along with managing separate dashboard area was key part of main system technical architect. Client investment and theme portfolios statistics sync with the 3rd party backend system was technically challenging for core part of the platform. Ensuring more complex relation between data and their consistency. Each entity or information is being used in various places in conjunction with other information. Showing most relevant information at various places by clear way of presentation is the main challenge as almost all information are similar to the different entities.
www.brainvire.com | Š 2013 Brainvire Infotech Pvt. Ltd
Page 2 of 2
Technologies Operating System & Server Management
Development Tools & Environments
Red Hat Linux OS, Multi-Server Architecture with Staging & Production Environment through Version Controlling releases, Server Optimization, Security & SSL Implementation, Scheduler for Back-ups, Alert Monitoring System Integration, Server Performance Tuning at regular intervals, Software Firewall Configuration & Maintenance PHP5+, Symfony Framework, Microsoft Visio, NetBeans IDE, Java Script, HTML5, CSS3, SVN etc. MYSQL Database Server, DB Clustering, DB Optimization, Master Slave Replication, Query Optimization, Scheduler for Backups
Database
Team Size Project Leader
1
Developers
2
Designers
-
Quality Assurance Testers
1
Planning The following four-tier development approach was adopted to equip the site with numerous features and functionality mentioned before: • The Database layer containing MySQL Server Database, Tables, triggers and so on. •
The Data Access layer managed by Doctrine 2.x which containing the Data Access DLL
responsible for accessing data from database. • The Business Logic layer consisting of all business logic procedures for modules. • The User Interface Layer which forms the Graphical User Interface of the website. This part/aspect of platform is built using Symfony’s View layer.
www.brainvire.com | © 2013 Brainvire Infotech Pvt. Ltd
Page 3 of 3
Development Highlights The design approach was built around Symfony 2.3 and MySQL SERVER 5 due to the affiliate nature of the website. Symfony 2.3 is used in order to follow rapid application development and do not repeat yourself (DRY), Keep it simple stupid (KISS) principle. Symfony 2.x have many community contributed bundles available which helps to make development really faster, efficient and more reliable for platform building. Symfony 2.x has been used in order to keep platform more secure, stable and easy to maintain. In order to most effectively access the database in an object-oriented context, an interface translating the object logic to the relational logic was used to communicate with the relational databases in an object-oriented manner. Doctrine 2.0 is used for database interaction layer. An intermediary abstraction layer was created for accessing data from the database. Triggers, store procedure and custom MySQL functions were used for complex calculation of data from multiple tables and were utilized in heavy conditional syntax to ensure smooth performance of the website. The UI layer was kept free of any business logic with images, applications and data being called from their respective servers. Web usability guidelines provided and supported by Twitter Bootstrap bundle/package were strictly followed during development and the interface was made easily navigable through judicious use of AJAX, CSS3 and HTML5 controls.
www.brainvire.com | Š 2013 Brainvire Infotech Pvt. Ltd
Page 4 of 4