
Over the past couple of years, the number of employees of our company has increased almost three times and is now approaching three hundred. This entails a number of organizational problems. In particular, due to the fact that the company occupies many different premises in the business center, the question of orientation of employees (especially for beginners) in the office space is acute.
Every day we are confronted with the problem “How to find Vasya in the office?” Or, on the contrary, we are tormented by the question “What is the name of the guy who is sitting in that corner?”. As a result, a couple of enthusiasts decided to put an end to this. Thus began the history of the development of an interactive map of our office. We will tell about it today.
The map's idea was born about a year ago, and the development is carried out intermittently, since this is done mainly during off-hours, “purely for fun.” However, now the card makes life in the office much easier. At the moment it looks like this.
')

The developers initially envisioned the following usage scenarios.
- Search for workplace colleagues. There is a string to search for, the name of the desired colleague is “driven in” (you can also search by name, but there are too many namesakes), and the location of his workplace is shown on the map.
- Identification. If a person recently works in a room and has not yet managed to learn the names of neighbors, he can find his room on the map and, by clicking on a certain table, find out the name of the person who occupies it.
- Navigation. Sometimes explain exactly where in the office you are sitting is not an easy task. To facilitate it, it was supposed to implement the ability to send a link to your location - http://portal.yourdomain.ru/map#username . When you click on it, the map scrolls to the desired floor and room, showing the desired workplace.
All three scenarios are currently implemented.
The map was initially decided to use the Yandex.Maps API. All that was required of the map, the Yandex.Maps API allowed: upload your image, do basic work with the map (zoom, move) and implement work with objects on the map. Dropbox was originally chosen as a means of collaborating on a project, since changes in the code were rare. At first it seemed that a version control system was needed, but later on the need for it was no longer necessary. Now the development leads one person.
As a result, the map should have been posted on the corporate portal.
Difficulties
But everything goes smoothly only on paper, and already at the first stage of the development of the map we faced a serious problem. I managed to get a plan of only one floor, so in the first version of the map there was only him. Schemes for the remaining floors later had to draw their own: they will appear in the next version of the map.
In addition, after the start of development, it became clear that people very often move from place to place, and keeping the map up to date is not easy; The process of updating the coordinates of employees is facilitated in the new version of the map.
Development
Initially, mapping data was done manually. First, an Excel file with a list of all employees (from the floor for which there was a plan) was downloaded from the corporate portal, which was then converted to a CSV with the required fields: last name, first name, position, employee's email address. After that, the coordinates of the table on the map were added to the CSV file. This file played the role of a database from which a JavaScript array with user data was formed using a Python script.
Since the map was implemented in a static version, it was possible to view it only in read-only mode; the ability to “move” an employee from place to place was not initially taken into account.
New card
After the first version was released, and we began to collect the Wish list of our colleagues, Yandex significantly updated its cartographic API. We decided to make a new version already with the move to API version 2.0.

I had to deal with him and make a new version of the map. As a result, managed to implement the following updates.
- The missing floors were added: we drew the schemes for the necessary floors ourselves, after which we added them to the map.
- Changed the work with tables and employees, dividing the concept of "employee" and "table". Previously, the “desk-employee” relationship was tough, and in order to change two colleagues in places, you had to physically move the tables on the map. Now it’s enough to point out that another person is sitting at the table: the tables will not have to be moved.
- In addition, the mechanism of working with tables has become much simpler: we abandoned the static map and made a simple web application. This allowed to automatically maintain the position of the tables and the position of colleagues at the tables.
- In the new API, the work of the map is not domain bound, which allows you to organize work on two (or more) domains (not only portal.yourdomain.ru/map , but also portal / map ).
Plans
Work on improving the map does not stop, there are many ideas. Here are the most interesting ones.
- Adding new entities. There are a lot of interesting things in the office: canteens, coffee machines, “talks”, places for stand-up rallies ... It would be useful to put all this on the map.
- Integrating the card with Active Directory and Exchange would allow for a lot of useful functions. It would be interesting to download data about an employee from Exchange (for example, his schedule). If you combine the employee’s schedule data with the busy schedule of meeting rooms, you can display information on the employee’s workplace on the map (if he is in place, and if not, in which of the “talks” to look for; this would be especially useful in the case of managers).
This is how an interesting side-project of a group of enthusiasts within the company grows into a service that is useful to every employee. By the way, the project is well tolerated and scaled, which is especially important for our company in anticipation of moving to a new office. To launch the map at a new location, you only need to download the new floor plan and re-seat the employees.
We are pleased to answer your questions in the comments. If this is interesting to the Habras community, in the next article we can describe the technical details of the project.
By the way, the authors and map developers are present on Habré:
MikeOzornin and
evgekon .