Client Requirement Client required an online news website that was CMS based for the various cities in Russia. Symfony 1.4 was chosen for this task and requirement analysis, development and implementation, database development, regular profiling and improving performance of the application requirements were analyzed and provided. A complete database solution was required for the website along with design and development. The website also needed to be user friendly along with supporting the myriad of news based on the various Russian cities keeping the data fresh, current and relevant across the country. The content management system should be robust and should be capable of handling the a variety of data including videos, files, photo gallery, etc. Apart of this, client also required:
A fresh and interactive design Website must be scalable and extensible Symfony Framework to be used Safe and secure website Rich media usage Web 2.0 compatibility
Challenges The team faced the following challenges:
A reliable and efficient framework needed to be selected to handle the content generation and hosting facilities along with the modules that co-ordinate with each other in order to exchange information. RSS feeds needed to be incorporated to manage the up-to-date information and news related data. Safe and secure transfer of data while incorporating third party API’s. Integration of Google Translator service to enable the translation of text on web pages. Including web usability principles for developing the numerous features for enhancing user experience. Site needed to be robust and secure to handle the transfer of large amount of data.
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+, Apache, Symfony Framework 1.4, AJAX, HTML5, CSS3 etc.
Database
MYSQL Database Server, DB Clustering, DB Optimization, Master Slave Replication, Query Optimization, Scheduler for Backups
Manpower
Project Leader
1
Developers
2
Designers
2
Quality Assurance Testers
1
Planning Keeping in mind the structure of the website and the challenges involved, a four-tier development approach was adopted, consisting of:
The Database layer containing MySQL Server Database, Tables, stored procedures and so on. The Data Access layer that contains libraries for accessing data from the database. The Business Logic layer consisting of all business logic procedures for modules. The User Interface Layer forms the Graphical User Interface of the website.
Architecture The website was designed to be a powerful tool for generating and hosting content on the web. The system was designed to communicate with client via a secure channel that validated and stored user registration information. RSS live fields were implemented for enhancing user experience. The Business Layer DLL consisted of various business logic for all the modules that were compiled into a single Business DLL that was meant to directly communicate with the UI layer. DLL included all the business logic for modules like Save [Add/Update], Delete, Get Single Object, Get Multiple Objects for listing and were designed to enable handling of many more logics not related to the database. Data Access DLL was capable of accessing data from the database. Business layer components were coded to use this DLL. The business layer components were coded to use this specific library. Stored procedures were used only for complex retrieval of data from multiple tables and were entirely avoided with conditional syntax to ensure smooth performance of the website. The UI layer was kept free of any business logic and images and other data were called from their respective servers.
Development Highlights PHP 5 and MySQL was used as the design approach for this website, to accommodate for the robust architecture requirements to perform crucial functions. Symfony framework and 3rd party API’s were used to add the required interactivity to eliminate heavy coding. RSS feeds were incorporated to enhance user experience. . Web usability guidelines were followed with the judicious use of AJAX, CSS and HTML controls. The site was developed within a short span of 4 months.