Home » Case Study » Bullion Trading Portal

Bullion Trading Portal

Categories : All, Case Study, Finance

Client Requirement

This system is being implemented to automate the existing and large manual system of Bullion Trading. As per the client’s requirement, the portal provides features to buy bullion online and to carry out other trading related activities.

As per the client’s requirement, BTP (Bullion Trading Portal) should be synchronized with the existing BTS (Bullion Trading System) with request-response cycle and the data of BTP should be managed in web database. For some modules, the BTP should be synchronized with BTS for validations, authentication and authorizations. BTP should display updated bullion prices which should also be synchronized with MCX server. The MCX server should get updated MCX scripts from the third-party MCX server on daily basis and all the trades carried out by the user should be synchronized with BTS.

The system is accessible by two types of users i.e. External and Internal. The external users are further categorized as Standard and Premium Users. The users will load the modules based on authorization of type of the users. Internal types of users are Admin, Super User and Internal Users. These users are given the authorities to manage the back-office modules.

The external type of users needs to be registered before accessing the BTP modules. The registration process is of two steps for Standard Users and of 12 steps for Premium Users. On completion of the registration process for Premium Users, the users should be able to verify and send the auto-generated PDF form. While logging in as a Premium User it should ask Security Token Code which should be verified with the device provided to the clients. Other common features for all front-end type of users are viewing account information, managing user profiles, accessing periodic charts and accessing research reports. The trading facility is provided only to the Premium Users. The Premium Users should be allowed to have multiple logins as 1 primary user and other sub-users. The Premium Users can belong to different classes as available in BTS.

The Internal Users should be allowed to configure trade limits for different locations and different metals. They should also be allowed to set day wise minimum and maximum trade limit for different classes and metals. The functionalities that are accessible to internal users are setting currency exchange values for INR, setting portal information display, approving the user registration, generating alerts for the external customers,resetting the passwords on customer’s request,maintaining research reports and announcements periodically, enable or disable users etc.

Project Challenges

Team faced the following challenges:
  • Allowing the site to handle millions of users at the same time without slowing down.
  • BTP should always be synchronized with the existing BTS. The connectivity should be maintained between BTP and BTS
  • Developing a sturdy and dependable data simulator in VC# to support the real-time updating of bullion prices.
  • Harmonizing the simultaneous execution of various integrated features and options while maintaining consistency.
  • Load balancing and smooth performance.
  • Ensuring safe and secure transfer of data and JavaScript compatibility for all the browsers.
  • Configuring application to send mails from various modules.


Project Leader 1
Developers 3
Designers 1
Quality Assurance Testers

Technologies Used

Operating System & Server Management Windows OS, Multi-Server Architecture with Staging & Production Environment through Version Controlling releases Server Optimization, Security & SSL, Implementation, Alert Monitoring System Integration,Server Performance Tuning at regular intervals, Software Firewall Configuration & Maintenance
Development Tools & Environments VC#,Eclipse Indigo, SVN,HTML5,CSS3,Java Script, Spring,Hibernate,JDBC Template, JSF, JSon, Esper Engine, Velocity Template etc.
Database MYSQL Database Server, JBoss,DB Clustering, DB Optimization,Master Slave Replication,Query Optimization,Scheduler for Backups


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 and so on.
  • The Data Access layer containing the Data Access Objects responsible for accessing data from
    the database.
  • The Business layer objects consisting of all the business logic procedures for modules such as Reagent, Protocols, Facilities, Timer, Profile and Message Center, Account Settings, Network, Event etc.
  • The User Interface layer which forms the Graphical User Interface of the website.



Development Highlights

The Bullion Trading Portal application consists of 3 parts: JSF UI, Java Server and the Data Sources. In addition to these, there are data scripts running to load data from various external sources into the client’s database system.


The heart of the application is the JBoss server. The application is installed on ROOT. The codes for the client’s website is served by the ROOT deploy (jboss-5.1.0.GA/server/ew/deploy). Also, we used Flex for business logic wiring and database access to generate charts.

The application follows socket-based architecture and communicates with external systems such as BTS and MCX Server for data exchange. All remote method calls originating from the JSF UI are processed by the JBoss services (http://www.jboss.org/) which then utilizes one or more Java Services. Calls such as login, validations and subscribe which originate from HTML pages are processed by the Spring Framework, JSF and Servlet layer that further uses the Java Services. Sending mails are managed by the Mail API and Velocity Templates. Also, periodic events are scheduled to run using Esper event management APIs and Cron expressions.

The Delegate layer has the business logic and uses the Data Extractor layer to get either Hosted Data from the Edelweiss database server or fetches data saved on the file system used by the user uploaded data.


We have configured the application to read script’s data every 2 seconds from the MCX Server. The data shared from MCX Server should be shared with application server synchronously over socket-based connections. Using Servlet and JSON objects the bullion prices are updated

No ratings yet.

Rate Us!