# OpenProcurement

OpenProcurement is an open source procurement software toolkit that automates procurement processes. It provides tools to design and build a transparent and competitive procurement process backed by strong data collection, electronic documents, and detailed reporting.
OpenProcurement toolkit was first released in 2014 under Apache license for free and open source software. Originally OpenProcurement had been developed by Quintagroup for ProZorro, a procurement system implemented to provide transparent and efficient spending of public funds in Ukraine. But due to toolkit’s flexibility and scalability it remains in use for other government and private sector procurements.

## The point of the project

The aim of the project was to create an effective electronic public procurement system with open source, which would meet the following requirements:
* simplicity and ease of use - procurement procedures should be simple and understandable for all participants in the procurement process, especially the organizers (buyers) and participants (sites).
* 'openness' of tender documents and transparency of procurement procedures - civil society should have free access to all documents related to procurement.
* equal opportunities for participants - all legal entities or individuals should be able to participate if their offer satisfies the requirements specified in the tender documentation.
* prevention of corruption - the use of electronic documents, strict qualification criteria, a transparent system of evaluation and selection of the most cost-effective offer will lay the foundation for the process of eradicating corruption.

## Free software components

The OpenProcurement software package uses a number of other open source products:
* Python (a programming language)
* Pyramid
* AngularJS, VueJS
* Bootstrap
* Flask (web-framework)
* CouchDB
* PouchDB

## Architecture

OpenProcurement consists of a Centralized database (CDB) and the API through which specialized electronic platforms can interact with the CDB and module auctions. Third-party web platforms (web platforms, which implement components of the e-procurement system, and give access to purchasing organizations, vendors, and ordinary visitors) interact with CDB using OpenProcurement API and provide temporary login data to access the Module of the auction and participate in it. The administrator has a direct access to CDB and services offered by the Backend; helps with the support of the system and with connecting web platforms to it. The body of appeal is granted access to the system through a special web interface to consider and adjudicate on complaints. The interaction between web sites and CDB is via API — a web interface based on the module JSON. The business logic is implemented in Python. For saving the auctions, offers, etc., a non-relational database CouchDB was used. Attachments (binary files such as pdf, xls, etc.) are stored on the file server, which is compatible with Amazon S3.

## Open Contracting

The toolkit contains Data Standard for procurement procedures. It was developed on the basis of Open Contracting 1.0RC http://standard.open-contracting.org and extended to ensure practical implementation of the procurement process in Ukraine.

## Use cases and production deployments

The OpenProcurement functionality is suitable for both public and commercial procurement.

### ProZorro

OpenProcurement toolkit was designed specifically for the Prozorro, the Ukrainian electronic Government procurement system. Prozorro was designed according to international standards and international best practices. As a model Ukrainian system used the procurement system in Georgia that is recognized as one of the best in the world.
As the core of ProZorro project this toolkit:
* covers specific requirements to the accessibility and transparency of procedures.
* enforces (where appropriate) and encourages recognised best practices for public procurements during the whole tendering process.
* uses electronic documents, strict qualification requirements, a transparent system of proposal evaluation and awarding, effective reverse auctions and open access to the procurement data.
* applies time and cost effective reverse auction where suppliers compete to sell goods to the procuring entity at the lowest price.
Currently for login on ProZorro or for the submission of tender proposal participants do not need the electronic digital signature (EDS).

### ProZorro.Sale

OpenProcurement toolkit was used by Prozorro.sale, a Deposit Guarantee Fund (DGF) system that organizes sale of the assets belonging to insolvent or liquidated banks. Goal of ProZorro.Sale is a transparent, fast and effective sales of state and communal property, as well as fighting against corruption by the means of equal access to data, public control and increasing number of the potential buyers. The Prozorro.sale’s architecture and main components are the same as those in the original Prozorro project. The main difference is that the ascending auction is used for selling assets for the highest price.

### Atreus

Atreus is a SaaS auction platform that has in its core an OpenProcurement toolkit.
It consists of four types of auctions:
* Forward English auction. The key feature of this auction type is the gradual increase in price for the item (goods or a service) that is put for sale by the auction organizer when the buyers bid in competition to purchase this item. The main peculiarity of the Forward English auction is the three-round procedure where participants can make their bids anonymously.
* Reverse English auction. The number and the duration of the auction rounds are limited and machine-controlled, making the acquisition process quick, fair, and competitive.
* Hybrid Dutch auction. This type of auction was created for NPL disposal for DGF within ProZorro.Sale system and for the state asset sale.
* Texas auction. This type is well-suited for property lease or art auctions since its practically identical to the auctions conducted by Sotheby's. The bidding here starts with a price announced by the seller and lasts until there remains only one bidder willing to take a lot.

### RIALTO

In addition to ProZorro and ProZorro.Sale, the OpenProcurement software package was also implemented in the RIALTO project - a platform for commercial procurement.

## Open source components

OpenProcurement toolkit used a number of other open source projects: Python, Pyramid, AngularJS, Bootstrap, Flask, CouchDB, PouchDB.