Back to main portfolio page

Txtreme - Bespoke Web Application

Txtreme web site

Summary of skills used:


  • Business & Systems Analysis
  • Database Design (Entity-Relationship)
  • Linux - Server Setup
  • Apache - Web Server
  • MySQL - Database
  • PHP & Javascript - application code
  • HTML & CSS - web page delivery

Project Brief:

Design and build a bespoke web application for provision of worldwide two-way SMS (text message) services, available to a wide range of businesses and organisations.


Case Study

Download the full case study (pdf) here →

Index

Background

Txtreme Solutions Ltd provided a Text Message (SMS) desktop application to businesses. The application enabled bulk sending of messages to groups of mobile phones and the ability to handle keyword responses.

One of their clients, a golf club, used the system to send targeted marketing messages to opted-in members and visitors to it's restaurant. Groups were set up to distinguish between the golfers and those that had visited the club restaurant. An effective example of the power of the system was when it was known that restaurant bookings were low on a particular night. The manager would send an enticing offer to all of the “restaurant” group in a matter of minutes. A specific keyword would be assigned to collate SMS responses to that offer, and a telephone number was usually also provided for telephone responses. It was not unusual to receive the first positive responses and firm bookings within a few minutes of transmission of the offer! ←Back to Index

This is a placeholder for a quote to help with design and layout of the finished page, to be replaced before publishing live

C. Penniston, Director, Txtreme Solutions Ltd.

Origins

Following the departure of their Technical Director, Txtreme no longer had their own staff with the ability to maintain and upgrade the system. The remaining directors, brothers Chris and Adrian Penniston, set about finding help to fix immediate problems with the centralised databases which were located in Richmond and Glasgow.

By word of mouth they were introduced to Graham Jarvis. He was initially asked to help with database access and resilience, though it was soon to become apparent that problems ran deeper due to a lack of understanding of the system architecture. The situation meant that Txtreme were struggling to be able to set-up any new clients, and maintaining existing clients was difficult. Although the core features were working, the system remained incomplete and unable to deliver all that Txtreme had hoped. ←Back to Index

Challenges

The desktop application, while functional, was proving problematic for Txtreme to maintain and upgrade for existing clients. The software and a local database were installed directly on the clients own computers, with communication to a central server providing the interface to the messaging service. The application was struggling to deliver and was stuck in a rut. In the meantime, competition offering similar services was increasing. Things had to change, otherwise the system was going to be shelved.

Specific challenges that were being faced were:

  • The existing application was proving near impossible to maintain and update. It had been developed in an old version of Visual C++ and had not been well commented or documented, so maintenance of code was very problematic. Clients had requested features that could not be implemented without an overhaul of the coding.
  • It required clients to use MS Windows, and there was no guarantee that the current compiled code would run on future versions of the operating system.
  • It was necessary to install MySQL database and Perl programming software on a client's PC in addition to the Txtreme application. The bundled versions of MySQL and Perl were not the most recent. This added to the complexity of future client upgrades. Potential clients may not wish to have these extras installed on their computers, or the versions could be incompatible with their own software versions.
  • The application and database software was recommended to be installed on a single PC within the client organisation. Problems arose if more than one person wished to use the system, or if the client wished to migrate the application to a different PC. There was no guarantee which PC would receive particular SMS responses if more than one were in operation.
  • The PC had to be on at all times in order to ensure receipt of SMS responses.
  • There was no multi-user facility. The database did not use a locking mechanism to ensure data integrity in a multi-user environment.
  • Visits to clients incurred additional expenses and were necessary for installation, maintenance updates and troubleshooting the application. This was prohibitive to growth of the customer base since Txtreme would not be able to easily cope with large numbers geographically diverse clients.
  • The client's locally installed database contained key data that was unlikely to be backed-up. The application did not provide a facility for clients to easily backup their data, and there was no remote copy of key data. It was unreasonable to expect clients to have the necessary skills and knowledge to effectively manage backup and recovery of their data.
  • The local database contained unencrypted user passwords, so any knowledgeable user could discover the Administrator passwords and hack the data.
  • The application did not scale at all well. Bug fixes and enhancements would require packaging-up in a complete new application version and re-distributing to all users. Keeping tabs on versions used by all clients would be problematic.
  • Poor database design meant that the application was not extensible. For example, it could only handle a maximum of three user-defined categories, which was an unnecessary restriction on the application functionality.
←Back to Index

The Idea

Having spent time with Txtreme and witnessed problems at one of their clients first-hand, Graham realised that it would be more beneficial to redesign and rewrite the system from the ground up, rather than spend any more time and money trying to update the existing application architecture. He proposed centralising the database and the application for delivery to clients over the internet. This would enable significant benefits:

  • Ease of system maintenance and updates
    • A centrally maintained application meant that updates would be available instantly to all clients, so they would be always be using the latest version of the software.
    • Client data would be held centrally for backups and for audit purposes.
    • The system would be far more flexible and scalable.
    • Back-end resources could start small and be upgraded as the service expanded and revenue increased.
  • Benefits to clients
    • No client installation of the application software or database would be required.
    • Clients would simply need a PC with a browser and internet access.
    • They would no longer be limited to Windows operating systems.
    • They could have multiple simultaneous users with access from any internet browser enabled PC, anywhere in the world.
    • The would no longer need to be concerned with data backups, or availability of a bespoke PC.
    • Trialling the system would be low risk to potential clients, with no specialist in-house skills required.
    • Documentation and training would be made available on-line.
  • Revenue increase and expenses reduction
    • Web delivery means a potential worldwide customer base.
    • Services could be delivered without the need for manual resourcesx.
    • No site visits would be necessary to install, maintain or troubleshoot the application.

There were some caveats, of course:

  • The central server would have to be available 24x7 to service worldwide customers.
  • Data loss had to be avoided, requiring robust backup and recovery procedures.
  • Must design for scalability (increase in data, network traffic, hosting costs).
  • Central data storage would increase substantially.
  • Legal / Data Protection / Security issues had to be considered.
←Back to Index

Organising

The Team

Chris Penniston, Director, Txtreme Solutions Ltd
Adrian Penniston, Director, Txtreme Solutions Ltd
Graham Jarvis, Systems Architect / Developer, Hewson Digital

Phase I

The objective of the first phase of the project was to perform a complete redesign and rewrite of core functionality of the system, and to improve the extensibility and scalability of the application. This phase was broken down into four key stages and the time-scale for completion was four months. ←Back to Index

Development Environment & Database Design

It was agreed that the system would be developed using widely used open source software, so finding suitably skilled people to update the application in the future would be easy. This would help Txtreme to avoid further occurrences of the situation in which they had found themselves. The operating environment for development of the system was comprised of Ubuntu Linux server (LTS), Apache web server, MySQL database, and PHP programming software.

It was necessary to redesign the database for centralisation and scalability. This removed unnecessary clutter, while improving flexibility for the future. The InnoDB database engine replaced the existing MyIsam engine to enable proper transactional locking mechanisms and handling of multiple concurrent requests against database records. The new database design handled multiple clients, and each client could assign their own multiple users with varying profiles to update their records - all while ensuring segregation and security of data. Referential integrity of data was greatly improved with the implementation of appropriate foreign keys on database tables. Categories (later renamed “Groups”) were redesigned so that clients could add as many as they deemed necessary for their organisation.

Key decisions and the layout of the database were documented and approved prior to creation of the database and moving on to the next stage. ←Back to Index

Web Application Design

The objective of this stage was to establish the prototype ”look and feel“ of the application. It was important that the design should have a consistent flow so that users could quickly become familiar with the application. Web pages were dynamically served as XHTML pages generated by programs written in PHP on the server. Cascading style sheets (CSS) were implemented as an early design decision, to separate the final presentation and layout from the underlying components. At this stage, the different menus and input forms were displayed, but no functionality was added (except for the system registration and login procedures). This meant that progress could be quickly reviewed and revised to the point where the Txtreme directors were happy to move on to the next stage of development. ←Back to Index

Application Software Programming & Functional Testing

This was the most intensive stage of the process. The dynamic web page forms were now augmented to communicate with the database and deliver all of the agreed functionality. This was an iterative process of programming, functional testing and code revision. The interface to the an external messaging gateway was also written, so that SMS messages could be sent worldwide and responses could be correctly handled by the server.

Txtreme directors remotely set-up their own accounts and users to help with the functional testing.

At the the end of this stage, the application was fully functional and ready for Beta-testing with Txtreme's existing clients. It provided all of the features that they currently used, and more. However, more ambitious plans were in the pipeline. ←Back to Index

Production Server Setup

To round-off the first phase, a server was installed to match the development environment. The database was created and the latest version of the application code was copied across. Backup procedures and security measures were implemented to reflect the status of the production environment.

The server was ready to be installed at a new hosting provider. Phase I had been delivered on time and on budget. ←Back to Index

Phase II

Following the successful completion of Phase I, the objectives were to increase the ability of the application to be available to a wider audience and further enhance the capabilities of the application. This meant that a number of new features were required to be implemented, including:

  • automated data migration from other data sources (e.g. Excel spreadsheets);
  • online payment handling;
  • implementation of SSL encryption; and
  • indication of the bulk message send size (as an aid to clients costing/budgeting)

Graham was retained to produce the additions, and to provide ongoing technical support.

During this phase, the Txtreme directors enlisted the help of Barry Edwards, a very experienced Business Consultant, to help with production of a user-friendly (non-technical) guide to the system that was intended for end users. The idea was to reduce potential support enquiries down to an absolute minimum so that the directors could concentrate on running the business. In conjunction with Graham, this process ensured that further functional testing was carried out in-depth from a new user's perspective.

In addition, Shelley Burrows was contracted to design the main Web Site for Txtreme and to ensure a consistent visual flow between the main web site and the Txtreme application.

Client payment handling involved interfacing with an online payment gateway. The rules governing charges for VAT were complicated by European Union legislation and the ability of companies to use a “reverse charge” process. With some amendments to the registration form to include VAT code validation, and cross-checking of payments received against the registered details, a procedure was implemented to satisfy the accountants - and more importantly the Revenue and Customs. ←Back to Index

Outcomes

It is now three years since the infrastructure was changed and the web application was developed. The system is still in use today and going from strength to strength.

The underlying architecture remains the same, which is testament to a robust and scalable design.

Our product is used frequently by Banks, Insurance Companies, Stockbrokers, Supermarkets, Mail order Companies, Schools, Travel agents and many more. It is has also proven to be an extremely versatile communication tool.

(Txtreme Website)

You can try the application yourself by visiting the Txtreme website at txtreme.co.uk.

Hewson Digital provide a range of services, including:

  • web site design and development
  • application programming
  • database administration
  • technical support
Further information is available at hewsondigital.co.uk or by calling 01582 227511.

←Back to Index

Back to main portfolio page