Tuesday, 24 November, 2020
Case Study: Designing a Bespoke ASP.NET Website.
Design and building an online booking system for a regional car dealership.
Preamble
A client asked for a Microsoft ASP.NET website solution to enable drivers to book their vehicles in for servicing at their local car dealership.
Requirements
The budget was low and timescales short. The project needed to be delivered quickly and at low cost.
The project called for a form-wizard style user interface allowing owners to step through each stage of the booking process:
- Step 1 - Take the car registration, make and model.;
- Step 2 - Take the postcode and show the distance to their nearest garages, providing directions;
- Step 3 - Show service options, prices and optional extras;
- Step 4 - Show available services dates, times and courtesy car options;
- Step 5 - Displaying the booking summary, email copies to the office and owner.
An administration back-office where staff were able to review bookings, set prices, tax rates and apply vouchers and discounts was also requested.
Options
The infrastructure was predetermined by the client as applications developed using Microsoft ASP.NET can only be hosted on Microsoft infrastructure: a Windows Server, running Internet Information Server with a Microsoft SQL Server and database. The client didn't expect high traffic usage and didn't wish to risk the additional expense of load balancing or scaling infrastructure for the project, in fact a Windows Server had already been identified and was in the process of being set-up to host the website.
The two leading car registration lookup APIs suppliers were DVLASearch and Experian; the choice between would come down to easy of use and the quality of data.
For mapping and directions the we needed an API to be find the nearest garage to given address and supply directions and distance information. Google Maps, Bing Maps and OpenLayers were all considered.
Note: For those who aren't familiar with OpenLayers, it's a free, capable, open source, alternative, with a steeper learning curve and less supporting documentation.
We also discussed the choice between developing a bespoke back-office control panel or using a pre-built CMS, such as Umbraco, DNS or SiteCore, to do the heavy lifting.
The Solution
As the customer requested an ASP.NET application I provided an ASP.NET MVC website written in C# and used simple session management to keep track of the short-term booking information.
The deployment server wasn't immediately available so I set-up a staging environment on Windows Azure mimicking the expected server environment for User Acceptance Testing and migrated the website to the live environment once it was ready.
Experian's API was chose for the vehicle registration lookup based on price and quality of the data. A decision we never regretted. Their documentation, test environment and data was of a very high standard.
As for the maps, I went with the technology I knew and trusted: Google Maps. The price was right for the level of use we expected and the documentation is was slightly more comprehensive than Bing's equivalent.
For the administration portal we went with a bespoke web interface, which was really just a glossy CRUD application wrapper over the database, for purposes of speed. The project wasn't a great fit for a CMS, with it's fixed layout and content, and would have required extra development time we didn't have to integrate with a CMS.
Conclusion
This was a really enjoyable project to work on and we were all really pleased with the end result. Admittedly there were some text copy tweaks required from time to time which could have been handled by the end-client if we'd implemented a solution using a CMS, but given the project's time and cost constraints I don't think we could have delivered on time and in budget had we done so.