This is a second project which was developed during work at “FORA” company as side job, in free from main work time. Unlike personal site for my friend-photographer, this order was being carried out on a commercial basis.
“SNAB” company needed a site, mainly for exposure of the offered products’ catalogue and opportunity of making request for desired product from site. Due to specificity of these products and features of company’s workflow (delivery on demand), they don’t have fixed prices. So full-fledged online shop with cart, orders, etc. was not required. This reduced amount and complexity of work considerably.
I decided to choose Rails again for mastering of knowledge and skills gained earlier. This project is also relatively simple, and could be implemented faster, for example using CMS. However if there was no opportunity of improving skills, I wouldn’t take it at all due to low budget and difficulties with customer.
The development started in December 2015. I noticed that new 5.0.0.beta1 version of Rails was already available and decided to try it out in combination with MySQL. As it turned out later, this choice was wrong:
- There were flaws in framework itself / dependencies related with upgrading to new version.
- What’s even worse, very few gems were adapted for work with new version.
In this regard, I lost considerable amount of time and understood that it’s better to not use new versions of frameworks, at least without stable release. On the other hand, while dealing with mistakes, I was investigating a lot of source code, that allowed me to understand the principles of framework’s and used gems’ work deeper. Communications on Github and Gitter also allowed me to be closer to community. Plus at some point I realized that it was too late to revert to 4th version and I continued development on 5th version.
For the rest, if not count constant change of requirements (mainly design related), the development was going quite fast. I was doing this project with my colleague, he was helping with design and layout.
The site was launched in February 2016. The required functionality was successfully implemented:
- Editable elements were added: advertising slider accenting attention on specific products or sales, blocks with company’s features and partners.
- The products module with nested categories and feature of making request for desired product was implemented. There was a feature to specify details or make request for product which is not in the catalogue. Also the products could be marked as “hot offers” for showing on main page.
- Editable content blocks, similar to used in CMS, with feature of uploading files and images were added.
- The site was adapted for work with Turbolinks and loading content with use of AJAX.
- Deploy on shared hosting was configured (for reduction of monetary expenses). This time I improved recipe with use of Capistrano plugins and corrected sequence of some executed tasks.
At the point of presenting finished work to customer some new requirements which were beyond initial required functionality appeared. This caused certain disagreements. I made the extra work within initial budget but part of the sum wasn’t paid.
Further, delays and problems with filling of content by the customer arose. After a while, the site was given to other company without any notifications and was remade with CMS (most likely Joomla). Nevertheless, I think that the gained experience is more important and will be useful for me in the future.