Website of City Inn Lviv Smart hotel
About the project
Our new client, City Inn Lviv Smart, is a modern hotel with many amenities: free parking, a conference room, a fitness center, and a restaurant. But without a spectacular website. Together with the designers working on the project, we developed a fast, functional website with custom animations and a user-friendly management system.
Layout, navigation, and animation
If you look at the design, you’ll see that the site is full of images. But when you use it, you won’t notice that it affects the speed. That’s because we used the Vue 3 reactive JavaScript framework with a number of additional technologies to develop the interface:
- Vuex — for managing the status of all website components;
- Vue Router — for creating application routes;
- Axios — for asynchronous data requests from the server side of the website;
- SwiperVue — for the implementation of touch sliders on the website:
Preloader
To keep users on devices with slow internet connections informed of the site loading process, we have added a preloader – a progress bar that moves until all content is fully loaded for viewing.
Home page
The first screen
A bright photo cover for the entire screen, logo, burger menu, STA button, language switch, links to the company’s services and contacts — all implemented in full accordance with the client’s minimalist and stylish design layout.
A little bit of animation from our front-end developer — and the user not only gets a nice picture, but also a pleasant experience when interacting with the site. And we will tell you more about it.
Custom scrollbar
When clicking on the burger menu or scrolling vertically through the site, you will appreciate the smooth scrolling and smooth appearance of the drop-down menu. This effect is made possible by the Smooth Scrollbar JavaScript plugin:
Footer with custom map
The hotel location map was implemented using the Google Maps API in full accordance with the client’s design:
Additional pages
To transition between pages, we used Vue Router hooks and implemented the appear/disappear effect by wrapping the page elements in the Transition Vue component:
On the Smart Offer page, we implemented sticky 3D rotating cards:
At the client’s request, we also added the ability to switch slides by clicking on an image to move it forwards or backwards:
Cross-browser compatibility
When developing modern interactive websites, we always take into account their compatibility with different browsers: Google Chrome, Mozilla, Safari, etc.
To ensure that the site is displayed correctly in outdated browsers that do not support the ECMAScript 6+ standard, we have installed the Babel package. This is a technology that automatically converts JavaScript code written in newer versions of ECMAScript into code that old browsers can understand.
For cross-browser compatibility, we also used Autoprefixer, a post-processor for optimal processing of current CSS prefixes. This technology is recommended by Google and used by giants such as Twitter and Alibaba.
Adaptability
The website is perfectly displayed on smartphones, tablets, laptops, and computers. To achieve this result, we had to do our best and solve several non-trivial tasks.
For example, we faced the problem of incorrect display of images in the mobile browser Safari on iPhone iOS 14. Starting from version 14, apple smartphones support the WebP image format, and older versions do not recognize these files as images.
To solve this problem, we added the Detect.js package to the project, which easily detects any browser version. And if it’s Safari Mobile 14 or earlier, it will automatically load the site’s images in JPG or PNG format.
Typically, mobile animation differs from desktop animation because smartphones don’t have a cursor, which means they don’t have a hover effect. However, our client did not want to deprive the mobile version of the site of interactivity and set the task to animate all sliders in a non-standard way. Despite the significant differences between the sliders in the mobile and desktop versions, we had to bring the logic of their work into a single look, which was very difficult. But we did it!
Functionality
The abundance of images always affects the page loading speed. We optimized the site from the server side using the modern PHP framework Laravel, which works according to the MVC (Model — View — Controller) scheme. This system divides the site management into 3 main parts:
- The model is responsible for the system’s contact with the database and formally describes each entity of the information system. It is the model that provides the controller with the necessary information.
- View is the appearance of a website.
- Controller is a tool that processes user requests and generates the response or action they need. Typically, a controller collects the necessary information using models and then combines the collected data set with a view template. The controller sends this entire design to the user, and the user sees the website page.
Website admin panel
We chose Laravel Nova for the administration panel, which allows you to easily and conveniently manage the site. This module allows you to create handlers for the connection of the admin panel with the models of the information system, i.e. it provides the client with convenient tools for creating, editing and deleting content on the site:
To optimize the performance of the site, it is more appropriate to use the .webp image format. That is why we installed and configured the Nova Media Field module, which converts all images on the site into the required format. Content managers will appreciate it, because this technology makes the process of site management even more convenient and pleasant.
Multilingualism
The administration panel of the site turned out to be not only fast and convenient, but also multilingual. To achieve this, we installed the Nova Translatable package and configured all admin panel fields in several languages. Now you can switch between languages with the help of buttons, so the content manager can fill out the site in Ukrainian and English with just a few clicks:
The result
The story of creating a website for a hotel in Lviv has come to an end. This is not the first experience of website development in the hospitality industry, but no less exciting: with its own challenges and non-standard solutions. In this project, we bypassed the design stage and started implementing an interactive interface and a convenient custom administration panel based on the client’s ready-made layouts. As a result, the hotel’s website is responsive, multilingual and adaptive, and the mobile version is as good as the desktop version in terms of animation effects.
Comments