
Selling and booking tickets on the carrier’s official website has long been no surprise. But the yard is not 2010, but 2017. And while citizens are not without pleasure watching the rise in oil prices and with displeasure - at the prices of many other things, Russian Railways decided to modernize their mobile direction.
Russian Railways had its own application before, and not for the spherical Yotafon or Elbrus, but for a completely modern Android platform, which has the largest user base in Russia. Add support for other platforms was planned later.
')
This “later” came six months ago. We won an order to develop an updated Android application and two other mobile operating systems: iOS and many not quite deservedly driven by Windows Phone. Several months of active development, testing and improvements - the beta version is ready.
About how we did it, tell under the cut.
RZD released its first mobile application last year for the Google Play store. Called "Train Tickets". This is the only official carrier application. All that is presented in the storach besides him is either the software of intermediaries who take the agency commission reaching up to 15%, or something unofficial and not always working as it should.
We were given the task of reworking the application, taking into account the accumulated user experience and posting a new version at once to all the main app stores: Google Play, AppStore and Windows Store.
In the course of development, we tried to strike a balance between the classic applications for the sale of tickets and the desire to introduce something new that will help users customize everything for themselves. This is how the application “Russian Railways. Train tickets".
The evolution of the interface of the main pages of the applicationInterfaceWhen designing the UI, we were guided by three simple rules:
• Predictability.
• Easy for beginner and convenience for the advanced user.
• Repeated interaction with the application should be faster than the first.
PredictabilityApplications that offer a mass standard service should be predictable, especially when it comes to ticket sales. Even without launching the application, the user must be aware of what is waiting for him inside, and the task of the developer is not to deceive his expectations.
It is like coming to any railway station in the Russian Federation or Europe: everywhere you see approximately the same picture. The passenger knows that somewhere there is a ticket office, a waiting room, a food court or a couple of cafes, and here you can reach the platforms using typical signs.
Therefore, you should not experiment too much with the UI in order not to leave a puzzled user in the wilds of an unreadable interface. It is better to abandon radical ideas and focus on the creative development of existing norms.
Simplicity for the beginner and convenience for the experienced userIf a person has just installed the application, you should not be frightened by the abundance of buttons, speakers and the complexity of the menu. For Russian carriers, for example, S7 or Aeroflot, with the understanding of this rule, everything is in order: the user is immediately met by the flight search window, no frills. This is a user-friendly solution for new users. In turn, the regular user of the application should receive additional features due to enhanced functionality and customization.
Repeated interaction with the application should be faster than the firstAll data must be entered only once - during the first use of the application. Once logged in? Great, no need to log in anymore. Bought a ticket? Great, now we have data about the passenger and his last flight, which will not have to be driven again.
We believe that in mobile applications you need to save everything except billing information. Most people are nervous about the fact that the data of the cards can be kept incomprehensibly where and by whom, even if it is Russian Railways, Aeroflot or any other company from the top 20. The exceptions are banking and payment systems, which users traditionally trust.
Guided by these three points, we tried to make our application as friendly as possible for all categories of users. Everything else: from which side the “burger” button, the color scheme, the navigation of the sidebar, can be called important, but secondary. After all, if a login and password is required each time, the forms of the entered route data will not be saved, or you will have to enter your first and last name again and again (imagine that someone Innokentiy Krestovozdvizhensky uses the application), he will sooner or later stop using the application. And rightly so.
Application featuresRolling smoothly with the UI, I would like to tell you that our application can. As we believe - everything that a potential passenger with a smartphone in his hands may need.
Namely:
• Purchase of tickets (one way and round trip).
• Return tickets.
• Purchasing tickets for bonus points and tracking a bonus account.
• Purchase and use of transport cards (maybe you hear about them for the first time, but they exist).
• Storage and export of electronic tickets.
• Schedule of trains and the withdrawal of interesting routes to the main page, plus the storage of search history.
• Saving user data.
• Displaying announcements of Russian Railways (for example, messages about changes in the schedule of long-distance trains or commuter trains).
• Navigation at train stations.
• FAQ.
Demonstration of the main functional pages of the mobile applicationIn addition, I would like to talk about some specific solutions that are not included in the global list.
Educational slidesWhen you first start the application shows three training slide. While the decision may seem annoyingly trivial, it is worth remembering that the target audience of the application is not only hipsters or IT specialists, but completely ordinary passengers of trains and electric trains, who in the bulk rarely use something other than mail, maps and hangouts. .
Therefore, in the starting slides, which we hope will be able to help many, we added background information about the additional features of the application that a not very attentive or experienced user might not find. We also explain why authorization is needed and we remind you that this is the official application, and you will not have to pay any additional agency commissions for the purchased tickets. The focus group showed that it is important for people to clearly know how much money they will pay: users fear hidden fees and other “contract clauses with an asterisk in small print”.
Demonstration of educational slide screensNo re-authorizationWe understand that doing a forced authorization to purchase a ticket is cruel. Alas, the Railways API is built in such a way that no actions can be performed with tickets without logging into your personal account.
However, we made sure that the user came across authorization only once during the whole period of using the application. We have provided an opportunity to skip the authorization stage and go directly to booking tickets, but you still have to log in, however, at the purchase stage. If you have been authorized once, the application will automatically tighten your data, and you will not have to remember this procedure anymore.
Of course, the possibility of using an existing account from the Russian Railways website has been implemented, so you will not need to come up with a new login and password. Profiles in the application and on the Russian Railways website are identical - you can log in with an existing username and password or create a new account. Accordingly, it will be possible to enter it from the site. Data on all purchased tickets are transferred to the account on the site, and purchased on the site - in the app.
Who used the official website of the carrier, know that when booking tickets have to re-authorize. We managed to get rid of this procedure.
Home pageOn the "main" we implemented several pleasant trifles. For example, by clicking on a geolocation symbol, the departure point will be determined based on your location. We made a date selection in the form of a calendar, rather than a “drum”, in order to save users a few seconds. In the calendar, the current date is entered by default.

We also placed four modules here: Favorite Routes, Query History, My Tickets and Company News. Ideally, they cover almost all the patterns of user behavior for our audience.
You can add any interesting directions to the “Favorite Routes”. To do this, you need to mark the heart icon at the stage of flight selection. After that, the nearest flights will be displayed in the module. If several routes are selected, you can switch between them using the swipe. In the module settings, you can select the categories of trains that should be shown. For example, it is convenient to get the current schedule of trains.
“Search History” shows the last two routes that the user was looking for. There is a separate button to view all searches.
“My tickets” show the last three travel documents purchased. By clicking the user goes to the ticket page with a bar code, where, if necessary, you can export it from the application. Say, send yourself an email or save to the archive of photos.
“Company News” is actually ads for the region, first of all changes in the schedule of electric trains and trains. What kind of information to display, you can configure through filters.
Features of buying a ticket in the applicationWe have been thinking for a long time how to make the procedure as clear as possible, but at the same time allowing us to fully customize the future trip. As a result, they didn’t come up with anything better than to do several stages, each of which gradually specifies the conditions of travel. Prior to this, we attempted to fit the booking in 2-3 steps, but the interface was so cumbersome that we decided to abandon such an idea.
The process of buying tickets in the app RailwaysHere are some of our solutions:
1. At the stage of choosing a place in the car, we show the direction of the train, the location of toilets and luggage storage.
2. When choosing a place, the application immediately shows the final cost of the reservation. This is important because the price of the lower, upper seats and some of the “sides” is different.
3. Even if you buy a ticket for the first time, the system will offer to fill in the lines with data from your profile in your personal account, and you will only need to enter your passport number. With the next purchases it will be enough just to choose the desired passenger from the available profiles.
4. In the application, you can enter the card data RZD-bonus for the accrual of bonuses for the trip and / or data of the transport card - for discounts. Or choose the benefits that Railways permits to issue online. For example, to issue a children's ticket.
5. On the Russian Railways website, a not very convenient phenomenon was observed: if you go to the stage of confirming an order, and then go back, the place you chose was considered reserved for some time, and you could not arrange it again anew. In the application, we repaired it: now if you return from the confirmation screen back, the ticket will be unlocked.
6. We made the payment in the VTB web gateway, and not in the application itself. No payment details are saved. The purchase is confirmed via 3D-secure. Support for cards with non-standard numbers is provided (as in some Sberbank packages).
There are a couple more things that we would like to talk about.First, we implemented in the application the purchase of transport maps. Technically, these are ordinary discount cards that can be bought at the station or on the Russian Railways site. For example, now for 1000 rubles sold 10% of the multiple discount on travel on any trains. The card is valid for 1 month.
Secondly, inside the application there is a station navigator. It is located in the left menu in the "Stations" tab. Now the navigator works for eight objects, but we will expand it for all stations of cities that host the World Cup 2018 football games. From there, you can also contact the services of the station where you are located - from the information desk to the stationmaster.
Background information on train stationsDevelopment detailsFinally, a little about the technical side of the application. The server backend includes a cluster of application servers using free software. We used Redhat Wildfly, Nginx, Apache HTTP server, Memcached and PostgreSQL as base software. The backend provides the interaction of mobile clients with a whole set of accounting automated information systems of Russian Railways with data caching for a quick response of the mobile client interface and the ability to dynamically filter data without re-accessing the Russian Railways integration services. In addition, on it lies the implementation of horizontal scalability and the provision of processing up to 1 million requests per day.
Where to get a new applicationWe received permission from RZD to conduct a closed beta test of the application before the official release.
To get the beta version, just send an email to
rzd-mobile@i-teco.ru with the subject “Testing Russian Railways Application”, and we will quickly send instructions and a link to the application. In the letter you need to specify the operating system for which you want to receive the application, and the name of your account in the application store of this platform.
Be careful: the current version allows you to do almost everything in the finished application, even buy a ticket. But, as is usually the case at the beta test stage, we still do not guarantee that everything works as it should.
Now the application is available for mobile devices running iOS version 8 and higher, on Android version 4.0.4 and higher, and also on Windows Phone version 8 and higher. And even on Windows Mobile (owners of lumy, we have not forgotten about you!).
So we invite everyone to the beta test. We are pleased to hear the opinions, accept the criticism with understanding and are happy to discuss the proposals in the mail or in the comments to this publication.