Client Requirement Client required a system where in advertisers could advertise their products and services on publisher’s mobile websites to enable rise in sales and revenues. The advertisers would be paid depending on the views and visits of the ad on the publisher’s network. A publisher earns revenue by allowing advertisers to publish ads on their mobile websites. Client will take their share from the earned revenue of the publishers while providing services. This system provides great opportunities for advertisers to target different audience as per their location and configure ads accordingly. The advertiser has the freedom to display the ads as per user’s geographical location within certain miles. This enables an advertiser to target their marketing approach by advertising specific products and services to a limited by relevant audience, hence increasing ROI for the advertisement.
Challenges The team faced the following challenges:
Displaying relevant ads to users by identifying a user’s geo location based on the latitude and longitude of their mobile devices. The site should handle millions of requests from a publisher’s network without slowing down. Simultaneous execution of various features should not impact the site and it should maintain load balance. While integrating third-party APIs and JavaScript compatible for all the browsers, safe and secure transfer of data should be maintained. A robust and dependable framework was required to support the real time updation of website content.
Technologies Used Operating System & Server Red Hat Linux OS, Multi-Server Architecture with Staging & Production Management 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 Development Environments
Tools
& PHP5+, Zend Studio, Symfony Framework, Microsoft Visio, AJAX, Java Script, HTML5, CSS3, SVN etc.
Database
MYSQL Database Server, DB Clustering, DB Optimization, Master Slave Replication, Query Optimization, Scheduler for Backups
Manpower Project Leader
1
Developers
1
Designers
1
Quality Assurance Testers
1
Planning To equip the site with the numerous functionalities and features, a four tier development approach was adopted:
Database Layer – Consists of MySQL database, tables and stored procedures Data Access Layer – consists of the Data Access DLL that accesses data from the database. Business Layer – contains the business logic procedures for the various modules like Offices, Properties, Maps etc. User Interface Layer – this forms the user facing Graphical User interface.
Architecture The following layers of the n tier architecture were loosely coupled to efficiently meet the needs of this enormous site.
User Interface Layer –This layer accesses the layers beneath it to present data. It is a page level layer. Business Specific Layer – acts as a bridge between UI layer and Database Layer.It contains the business logic for all the project components. Database Specific Layer – acts as a bridge between the physical database and the business logic. Physical Database Layer – This is the MySQL database with tables, views and stored procedures.
Development highlights PHP 5 and MySQL 5 was used for the development of this site to accommodate the social networking nature of the website. User Profiles, Invitations, Forums and Blogs modules were developed using PHP so that they can be directly executed using the UI. An interface translating the object logic to relational logic was used to communicate with the relational databases in an object oriented manner. This enabled effective access to the database. The intermediary abstraction layer ensured ease of access of data from database. Triggers, stored procedures and custom MySQL functions used for complex calculation of data from multiple tables. Conditional syntax was used to ensure smooth functioning of the website. The UI layer was isolated from business logic and images, apps and data was called from their respective servers. Web usability guidelines were strictly followed and AJAX, CSS3 and HTML5 controls were used to make the site’s navigation more intuitive and user friendly. The site was developed and fully functional within a span of 6 months.