DVS – web application for processing library collections. With DVS it is possible to find a book or any other document in 20 TB storage. And to view it online afterwards and order printing or recording of relevant document fragments without leaving the browser.

What we did

  • Business processes audit.

    The work on digitization and cataloguing of collections involves a lot of people and processes not knowing which it is impossible to offer the best solution. That’s why our analysts conducted the analysis and evaluation of existing processes, allowing us to propose the system that retains the best of the existing system, thereby minimizing the cost of both development and implementation.

  • Integration with existing systems.

    Breaking is not making. But we are not the advocates of the option “let's redo everything from scratch”, because it increases the time and customer’s expenditures. We have created a two-way integration with more than five customer’s subsystems. Moreover, keeping the subsystems independent makes the whole system more flexible and less dependent on the decisions of a particular manufacturer.

  • Processing of large data amounts.

    Digitization of library collections is gaining popularity. Perfect knowledge of our experts of various hardware solutions constraints let create the system ready for amount growth but requiring no specialized server configurations that allowed using existing customer’s server park.

  • Customer support.

    Any new system will always raise customers’ questions. We provided customer support for users allowing to solve problems as soon as possible and avoid increasing customer’s personnel.

  • Complete documentation.

    We believe that we created a system to live long and happily. Without our interference. That’s why the customer should have complete information about the system. This led to the next important step for us – writing detailed documentation. We also understand that system users may have different skills, so we adapted the documentation for every user: administrators, operators, readers.

    • Documentation on implementation – is intended for system administrators, describes in detail and consistently the process of system deployment that allows customer employees to deploy the system on new servers without engaging the developers;
    • Documentation on administration – is intended for system operators who perform service functions on readers and virtual halls support, work with the statistics of library collections use, etc. Describes the functionality and usage options of the administrative part of the project;
    • Documentation on the use – describes the functionality usage scenarios by search, view and printing of documents that allows the readers to get acquainted with the system and start working in just a few minutes.

The way we did it

  • Consulting.

    Those tools that solve the tasks most productively should be used for long and stable system operation. We have studied many different approaches to the implementation of system modules. We demonstrated and offered the customer the most effective of them. Since the project is constantly evolving, we are constantly having a dialogue with the customer, during which we offer technical solutions to his requirements and show in practice the peculiarities of implementation of any given tasks.

  • Design.

    Most of the problems in system performance are eliminated at the design stage. Our task was to design the system that could be scaled by simply configuring new servers by system administrator. And we have successfully coped with this problem!

    • We moved from system operation on a single server to its operation on multiple servers without interfering with the program code;
    • We provided the growth in system use from one virtual reading hall to one hundred ones without architectural improvements.
  • Development.

    A timely informed customer feels comfortable! A comfortably feeling customer is a satisfied customer. Our development process is designed so that the customer can at any time monitor the progress of implementation of any phase of work and, if desired, correct it in time. We achieved this only by three steps:

    • clear communication via task-tracking system;
    • use of a distributed version control system;
    • iterative development process (Scrum).
  • Testing.

    Do not believe – Check! This is the motto of our testers. We are committed to providing high quality products, so testing process gets special attention. We have implemented several levels of system testing:

    • manual testing – we have developed detailed test plans for each section of the system. When implementing improvements to production servers, our testers perform testing according to test plans. This eliminates the “human factor” during the testing process;
    • automated testing – testing of a bigger part of the system is mostly performed automatically by pressing a single button. This allows providing system testing at each stage of improvement and quickly identify problems that may arise as a result of improvements;
    • load testing – with load testing we can artificially create peak loads on the system and detect possible problem areas.


The project used mercurial, redmine, jmeter. Details - on The way we work page.

More technical details

  • Operating system: Windows Server 2008 R2
  • Server side: C#, .NET Framework 4.0, IIS 7.0, NLB Cluster, EntityFramework, WCF, REST, MVC, XML, XSLT, JSON
  • Web interface: HTML, Razor, Twitter Bootstrap, JavaScript
  • Document viewer: Adobe Flex framework, Action Script 3
  • Data storage: MS SQL Server, AppFabric Cache for frequently used data
  • Document processing: SwfTools, modified c++ tools