Working at “FORA” company, at some point I decided to move beyond PHP / Yii, learn and try other languages and frameworks.
I chose Ruby language and Ruby on Rails framework. I heard a lot about speed and convenience of development with Rails and also about its influence on other frameworks.
I remembered that my friend Tatyana (head of the department where I worked at “Bars-Stroy”) was needing a personal site. She does professional photographing in own studio and outside. Tatyana complained that though social networks cover her needs, nevertheless they have some cons:
- It’s impossible to publish intimate photos without risk of removal.
- Lack of the filter by several criteria (year, gender, subject, etc.).
- A probability of account being fully banned.
In addition, there was also a desire to stand out from the others (because competition in this sector even in our small town is quite high) and also add extra functionality to the site.
At the same time one more detail came out - there was no budget for the site at that time, so basically I had 2 main options - either wait for emergence of money or do the site on a volunteer basis. I chose the latter, all the more it’s always more interesting to learn something new on the real project that will benefit someone rather than abstract examples.
Despite the relative simplicity of the site, development was not going too fast.
- I spent some time for learning Ruby and Ruby on Rails (4th version at that time) basics. Each language has own features and philosophy. It’s important to understand and follow them for the maximum efficiency. For example, using the code style of previously mastered language / framework with new syntax besides the probability of being non optimum in terms of spent / execution time, can also obstruct perception for other developers. Ruby on Rails is not an exception, after all, its main principle - “convention over configuration”.
- I was doing project in free from main work time, and there was not so much free time in summer.
To speed up the process I decided to take free Bootstrap portfolio template and customize it for our needs. From executed tasks the following can be highlighted:
- Added a feature to group photos and upload whole albums in accordance to customer’s wishes.
- Integrated and modified the extension for cropping of photos. Despite the popular trends of aligning images with different aspect ratio, the decision about manual selection of necessary area for thumbnail to form flat grid was taken by the customer.
- Selected and integrated the extension for convenient viewing of photos from both desktop PC and mobile devices - PhotoSwipe.
- Set up site’s deploy on shared hosting using Capistrano (for reduction of monetary expenses).
For solving the rest of the tasks and improving UX some other gems were used too.
The site was launched in the autumn of 2015.
Users received opportunities:
- More convenient viewing of information and photos using tags.
- Order of photoshoot or asking photographer a question directly from the site.
I helped the customer with filling of initial text content, also with selection and uploading of starting set of photos. However, subsequently she refused to fill the content and develop the site. The project was working until expiration of payment for hosting and then was closed. Further improvements did not make any sense. For me, in turn, this was a first step in learning Ruby and Ruby on Rails.