Rev It Up Car Show!
For this project I brought in two additional individuals to help. My primary focus for this was getting some experience with Team Explorer. We used Visual Studio Online for our source control. The two individuals I brought in to help with this was Brad Peterman and Ian Chapple.
The old website they had was very dated. Fixed design, not mobile friendly, auto playing music and non-optimized images. However, despite the dated look, one thing that stood out to us was the amazing photography they had gathered.
As we began designing the wire-frames we designed the site to focus on that photography pulling in the Max Image Plugin for the full background images. We started by having it slide between several on each page, but in the end that seemed a bit distracting, so we narrowed it down to a single image. Though we left the functionality for multiple images enabled so that the customer could change their mind later.
An important part of all sites that I develop is to put the control of the content into the hands of the customer. The customer should not have to contact the developer to change the word "the" on a page! We maintained this focus on the RevItUp CarShow website.
Every page contains a full CMS form that allows the customer to modify everything from the page title, to the meta keywords, meta description, to even the paragraphs that display on the page.
I took this a step farther with the RevItUp site. Since the event is something that occurs each year and the date can change for which festival year it is, when the date of the event is, the terms of agreement, etc. A settings page was created that stored the settings in the database.
To allow the code to handle these settings I implemented a static class and static method. It was a toss up between that or application settings. In the end I felt that the static class and method allowed for an easier user interface to code.
For the front-end development, Ian Chapple drove a lot of the design with the use of inset box-shadows. To manage our front-end code, we utilized SASS as our css pre-processor of choice and utilized .Net's bundling to keep our load times a bit more manageable. This was imperative with the number of plugins we were utilizing and the large images in the backgrounds. We also enabled url compression and caching static content.
For the middle-tier we utilizing MVC. Brad Peterman worked a lot setting up the meta classes and the foundation for the controllers. We debated building out the full dependency injection model but in the end decided the project was small enough not to warrant the larger code base. To fully flesh out the middle tier we created several custom attributes and editor templates.
For the back-tier we utilized SQL and I built out a "inheritance" sql model for the registrations. Car registrations and vendor registrations used very similiar fields. The customer also requested the ability to download the registrations to excel. I've done a lot of work in the past with System.Data.OleDb namespace to work with excel files. After reviewing that code I opted to build the interface utilizing NPOI to build the excel files as I felt this made the code easier to read and likely easier for future developers to work with.
The end result is a smooth site that truly showcases the event and is easily maintainable for the customer to use for many years to come.