Autopics (version 2.0)

    We present to your attention the second version of the Autopics project, released three months ago and currently undergoing primary testing.




    Content

    1. general information
    2. Technical and software implementation
    3. Interface solutions
    4. Platform rental
    5. Cooperation

    general information


    More than 3 years have passed since the publication of the first post on the Habré about the Autopics project . Over the past time, the project has developed 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, provide multi-user work with the service with API for third-party services. As in the first case, it was decided to reinvent the wheel. I must say that during the development of the new version, the addition and editing of new materials practically did not stop. A decent amount of new albums were added, about 1000 old albums were reworked.

    The site is a catalog with high-quality photographs and detailed technical specifications of cars. We focus 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 somewhat fell out of the usual rhythm of daily updates, so we had big gaps in the information on new models. Just a few days ago, we launched a system for preparing and publishing content (see description below). We really hope that we will quickly fill the formed information vacuum.

    Some statistics:
    • The number of albums ~ 3600
    • Number of photos ~ 73000
    • Number of modifications with technical characteristics ~ 25000

    The main new added functionality compared to the previous version of the site
    1. The English version of the project , in fact, is a separate independent project for the global market.
    2. Introduced indicators and warning lights (similar to the dashboard of a car).
    3. Search with instant results.
    4. The ability to independently resize images to get the right size and link to it.
    5. Presentation of a table with technical specifications in the form of a picture for the convenience of inserting it into third-party resources.
    6. Introduced classmates for model series. Groups are formed taking into account dimensional classes of cars, their prices and prestige.
    7. Radio. It works like a radio in a car. It has the functions of automatic search, save the radio station on the desired button, sound adjustment. 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
    1. Mobile applications for major platforms (at work).
    2. Favorite user albums.
    3. Own user albums.
    4. Normal user profiles.
    5. Comments on albums.
    6. Grading albums.
    7. Community of users.
    8. An alternative view of displaying galleries.
    9. Comparison of cars (photos, specifications).
    10. Advanced parametric search.
    11. Official dealers with reference to the user's location.
    12. Average car prices in the form of reference information with reference to the user's location.

    Technical and software implementation


    The system is designed according to service-oriented architecture (SOA) and is aimed at the ability to work on a B2B scheme. During the implementation, mainly Microsoft software products were used, all code was written using Microsoft .NET Framework 4 in C #. Special attention is paid to the issues of fault tolerance and load balancing. The figure below shows a block diagram of the system.

    The central component of the system is the XML SOAP catalog service, which provides multi-user access with authorization to hierarchically-structured data of any type. Additionally, the catalog has synchronization tools with other catalog instances in real time, which allows it to be used as part of an NLB cluster. The source code of the directory allows you to use it both on the server side and on the client side (both Windows and Silverlight), the only difference is that on the server side the data provider is the SQL server, and on the client side the directory service. 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 essence, is the IIS Http module 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 directory. To access directory services, HTTPS transport is used with authentication using a client certificate. For this purpose, a Certification Authority is deployed in the system. Access authorization is carried out in accordance with custom authorization policies and ACLs of those branches of the directory tree to which you are accessing.

    Three main catalogs can be distinguished in the project:
    • security directory (certificates, settings and security policies, users, providers, etc.)
    • car catalog (information about brands, model ranges, 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 request of the client. Scaling occurs in real time, taking into account the required image format from originals of several sizes stored in a disk array. Additionally, the service authorizes and applies custom security rules (watermarking, prohibition, etc.).

    Additionally, the system has an XML REST service for determining the location 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. It is used in some security policies, when logging query statistics and when automatically detecting units (meters / inches).

    All websites (autopics.ru, auto-pics.com, the administration site and the content preparation site) use ASP.NET 4.0 and the AJAX Control Toolkit to control the rendering of XHTML pages and client javascript controls. Access to data is carried out through the client module of the catalog that connects to the catalog service. In order to ensure operation in the NLB cluster, ASP.NET applications use the SQL session context provider.

    All services and sites are running IIS7. To ensure reliability and load balancing, an NLB cluster with two Aplication Request Routing (ARR) servers and a web farm of two application servers is used (see the figure below).

    For permanent data storage, three MS SQL servers are used, included according to the mirroring scheme in the “Synchronous high safety with automatic failover” mode.

    The whole system is located on servers running MS Server 2008 Hyper-V, virtualization is actively used. There are thoughts on a partial transition to Azure, preparations for this have been carried out.


    Interface solutions


    Quick album preview


    When you hover over the album preview, in the form of animation, the image contained in this album changes.

    Instant Search Results


    When entering a search query, the search results are automatically displayed in the form of images and album names.

    Clear image size selection


    By pressing the right arrow, all sizes for a given image, grouped by aspect ratio, become available for selection.

    Resize photos on the fly


    Pulling the square markers with the mouse, you can get the image of the desired size with a link to insert it on a third-party site.

    Vertical bookmarks


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

    Dashboard


    We tried to stylize some functions of the site as a dashboard located in every real car. The odometer is spinning on your site activity. In the future, it will be influenced by many factors, and it will be a kind of measure of loyalty and trust in the user. The fuel gauge indicator clearly shows the remaining number of photos, which you can see without restrictions. There are still signal icons, but they are not all involved yet. In the future, the functionality of the dashboard will expand.

    Radio


    Stylization of a broadcasting service for a car radio. The principle of operation of real devices is used.


    Platform rental


    Periodically, offers to purchase our “engine” (another first version) are received. 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 came up with the opportunity to rent our platform. What projects is it best for? Using it it is convenient to create large archives, catalogs, photo banks, libraries, all kinds of cataloged repositories, etc.

    Benefits
    • You do not spend time and money developing such a system
    • You get a turnkey turnkey solution, that is, a running working draft taking into account your requirements. During the development of the project, an existing platform is modified for your tasks, the missing software part is developed, an interface is designed, graphics are prepared, pages are made up. Additional servers and channels are installed. Physically, the projects are located on our equipment.
    • Constant platform updates
    • Full technical support for the project and the development of new functionality

    Cost

    It is calculated individually for each project. It consists of the initial large payment for the installation of the system and the subsequent monthly payments for maintenance. In any case, the cost will not be three pennies. When contacting us, it is advisable to have a statement of work for the project.


    Cooperation


    We strive for cooperation with other projects and services. We already have an API for working with our catalog (although for now it is almost undocumented). If you have thoughts on using our catalog in your projects, then we will be happy to listen to them and, possibly, agree on cooperation. At the initial stages, free work with the service is possible, then options with a monthly payment are considered, depending on the intensity of use, barter, links to us, etc.

    We also really want to deal with ads for the sale of vehicles from individuals and legal entities, like cars.auto.ru. The entire infrastructure for this is already practically available. It is planned to create a separate project based on an existing platform. Who wants to collaborate on this topic or who has interesting thoughts on this subject, we invite you to a dialogue.




    We have no profit yet, but there is great satisfaction from the work done and the desire to develop further.

    Thank you all for your attention!

    Also popular now: