We present to your attention the second version of the project Autopics, released three months ago and at the moment passed the initial run-in.

Content
- general information
- Technical and software implementation
- Interface Solutions
- Platform rental
- Cooperation
general information
More than 3 years have passed since the publication of the
first post on Habré about the
Autopics project. Since then, the project has evolved with varying degrees of intensity. Almost immediately after the launch of the first version, it was decided to create a second version. The new platform was supposed to provide the fastest and most reliable way to add new functionality, increase the scalability and reliability of the system, and provide multi-user work with the service with an API for third-party services. As in the first case, it was decided to reinvent the wheel. It must be said that during the development of a new version, the addition and editing of new materials practically did not stop. A decent amount of new albums was added, about 1000 old albums were revised.
')
The site is a directory with high-quality photos and detailed specifications of cars. The main focus is on the quality and reliability of the material provided, as well as on the convenience of working with the catalog. It is worth noting that in connection with the launch of the new version, we have somewhat dropped out of the usual rhythm of daily updates, so we have big gaps in the information on new models. Just a few days ago, we launched a system for preparing and publishing content (see the description below). We hope that we will quickly fill the resulting information vacuum.
Some statistics:
- Number of albums ~ 3600
- Number of photos ~ 73000
- Number of modifications with tth ~ 25000
The main new added functionality compared with the previous version of the site
- The English version of the project is essentially a separate independent project for the global market.
- Indicators and warning lights are introduced (similar to a car dashboard).
- Search with instant results.
- Ability to self resize images to get the right size and links to it.
- Presentation of the table with technical characteristics in the form of a picture for the convenience of pasting it to third-party resources.
- Introduced groups of classmates for the model series. The groups are formed taking into account the size classes of cars, their prices and prestige.
- Radio. Works similar to the radio in the car. It has the function of automatic search, save the radio station on the desired button, adjust the sound. The repertoire is presented by Russian radio stations in the form of an updated top 100 songs playing at these stations. For the global version, popular online radio stations are connected.
Plans for the near future
- Mobile applications for main platforms (in work).
- Selected user albums.
- Own user albums.
- Normal user profiles.
- Comments to albums.
- Rating albums.
- User communities.
- An alternative view of displaying galleries.
- Comparison of cars (photos, TTH).
- Advanced parametric search.
- Official dealers with reference to the user's location.
- Average prices for cars in the form of reference information with reference to the user's location.
Technical and software implementation
The system is designed for service-oriented architecture (SOA) and is aimed at the possibility of working on a B2B scheme. During the implementation, mainly Microsoft software was used; all code was written using Microsoft .NET Framework 4 in C #. Special attention is paid to issues of fault tolerance and load distribution. The figure below is a block diagram of the system.

The central component of the system is the XML SOAP directory service, providing multi-user access with authorization to hierarchically structured data of an arbitrary type. Additionally, the catalog has means of synchronization with other instances of the catalog in real time, which allows its use as part of the NLB cluster. The source code of the catalog allows it to be used both on the server side and on the client side (both Windows and Silverlight), the only difference is that the data provider is a SQL server on the server side and the directory service on the client side. All this makes it possible to use the catalog module as the main data cache in all applications.
Another important module is the security module, which, in fact, is the Http module of IIS and is used in all components with access via http (s). This module provides authentication, authorization, rewriting of http requests, as well as their logging and error handling. Module settings (authorization policies) for all components are independent and are stored in the security catalog. For access to directory services, HTTPS transport with client certificate authentication is used. For this purpose, a Certification Authority is deployed in the system. Authorization of access is carried out in accordance with the configured authorization policies and ACLs of those branches of the directory tree to which access is provided.
There are three main directories in the project:
- security catalog (certificates, settings and security policies, users, providers, etc.)
- catalog of cars (information about brands, lineup, photo albums, etc.)
- Editor's catalog (photo album projects, settings, etc.)
There is also a graphics service that provides high-quality scaling of JPEG photos in accordance with the client's request. Scaling occurs in real time, taking into account the required image format from the originals of several sizes, stored in a disk array. Additionally, the service authorizes and applies custom security rules (watermark overlay, prohibition, etc.)
Additionally, the system has an XML REST service for locating by IP address, built on the basis of freely distributed databases (
geobaza.ru ,
ipgeobase.ru ,
www.maxmind.com (Lite)). The service provides automatic updates from specified sources. Used in some security policies, when logging query statistics, and when automatically determining units of measurement (meters / inches).
All websites (autopics.ru, auto-pics.com, administration site and content preparation site) use ASP.NET 4.0 and AJAX Control Toolkit to manage the rendering of XHTML pages and client javascript controls. Access to data is carried out through the client module of the directory connecting to the directory service. In order to ensure operation in the NLB cluster, ASP.NET applications use a SQL session context provider.
All services and sites are running IIS7. For reliability and load balancing, an NLB cluster with two Aplication Request Routing (ARR) servers and a web farm with two application servers is used (see figure below).

For permanent data storage, three MS SQL servers are used, which are included according to the mirroring scheme in the “Synchronous high safety with automatic failover” mode.
The entire system is located on servers running MS Server 2008 Hyper-V, virtualization is actively used. There are thoughts on a partial transition to Azure, the preparation for this is done.
Interface Solutions
Quick album preview

When you hover the cursor over the preview of the album, in the form of animation, the images contained in this album are changed.
Instant Search Results

When you enter a search query, search results are automatically displayed as images and album names.
Visual selection of image sizes

When you click on the arrow to the right, all dimensions for this image are available for selection, grouped by aspect ratio.
Resize photos on the fly

By dragging the square markers with the mouse, you can get an image of the desired size with a link to paste it to a third-party site.
Vertical bookmarks

For the convenience of navigating through the catalog, a layered layout of side panels with vertical tabs was introduced for quick access. In the future, the number of panels (bookmarks) will increase.
Dashboard

Some features of the site we tried to stylize under the dashboard, located in every real car. The odometer is “spinning” on your activity on the site. In the future, it will be influenced by many factors, and it will be a kind of measure of loyalty and trust to the user. The indicator of the number of fuel clearly shows the remaining number of photos, which you can see without restrictions. There are also alarm pictograms, but they are not yet all involved. In the future, the functionality of the dashboard will be expanded.
Radio

Stylization of the service of broadcasting under the car radio. The principle of operation of real devices is used.
Platform rental
Periodically there are offers to buy our “engine” (still the first version). In all cases, we do not consider offers due to: complex installation of the system, decent requirements for equipment and maintenance personnel, insufficient documentation.
Therefore, we have come up with the opportunity to rent our platform. Under what projects is it best suited? Using it is convenient to create large archives, directories, photobanks, libraries, all sorts of cataloged storages, etc.
Benefits
- You do not spend time and money on developing such a system.
- You get a turnkey solution, that is, a running working project with your requirements in mind. During the development of a project, an existing platform is modified for your tasks, the missing software part is developed, an interface is designed, graphics are prepared, pages are being built. Additional servers and channels are installed. Physically projects are located on our equipment.
- Permanent platform updates
- Full technical support for the project and the development of new functionality
Cost of
Calculated individually for each project. It consists of the initial large payment for the installation of the system and the subsequent monthly payments for the service. In any case, the cost will not be three pennies. When contacting us, it is desirable to have a project specification.
Cooperation
We are committed to working with other projects and services. We already have an API for working with our catalog (though it is practically undocumented for now). If you have thoughts on using our catalog in your projects, then we will be happy to hear them and, perhaps, agree on cooperation. At the initial stages, free work with the service is possible, then options with monthly payment depending on the intensity of use, barter, links to us, etc. are considered.
Still very much want to do ads for the sale of the vehicle from individuals and legal entities, like
cars.auto.ru. The entire infrastructure for this is practically available. It is planned to create a separate project based on an existing platform. Who wants to collaborate on this topic or who have interesting thoughts on this subject are invited to dialogue.
We have no profit yet, but there is a great satisfaction from the work done and a desire to develop further.
Thank you all for your attention!