Linus Sehn
5fd5779f0e
continuous-integration/drone/push Build is failing
Details
|
||
---|---|---|
.reuse | ||
.vscode | ||
LICENSES | ||
api | ||
ui | ||
website | ||
.drone.yml | ||
.gitignore | ||
.pre-commit-config.yaml | ||
Caddyfile.tdb | ||
Caddyfile.tdb.license | ||
Makefile | ||
README.md | ||
docker-compose.production.yml | ||
docker-compose.tdb.yml | ||
logo.png | ||
logo.png.license |
README.md
Please note: This project is in an alpha stage and many things are subject to change. But we are getting there. Expect a workable beta-stage prototype towards the end of Q2 2023.
What is TEDective?
tl;dr TEDective helps you find out who buys what from whom in the EU.
A related aim is to bring is to bring the XML files published by the European Union into shape by transforming them to the Open Contracting Data Standard.
Despite a range of previous efforts to parse and analyse TED data, there currently exists no offering that fulfils all of the following requirements with regards to the provision of TED data:
- It is built and published under a free software license.
- It offers a current, cleaned and deduplicated version of TED data.
- Data is available as OCDS-compliant JSON, both as bulk downloads and via a capable and well-documented API.
Sustainably providing long-term access to European tender data in a way that fulfils these three requirements enables numerous applications that might be of interest to civil society, business and government which could greatly enhance the transparency and accountability of European business activity. There are a range of interesting questions that can be answered with this data if it was available in a well-documented and easy-to-understand format that is interoperable with tender data published elsewhere.
What's inside
TED XML notices are downloaded and parsed
into PostgreSQL (and possibly later a graph
database) using the amazing SQLModel. An API built
with FastAPI sits in front of this database and
provides streamlined access to OCDS entities, such as organizations, releases or
contracts. The code that does the parsing and serves the API can be found in
the ./api
folder.
The second component of this monorepo is the React-based UI, built
with NextJS, Chakra UI and
react-force-graph. All the
relevant code for this component lives in the ./ui
folder.
Finally, there is the project landing page and documentation built
with Docusaurus. The relevant code lives
in the ./website
folder.
Development
To start developing locally, please consult the documentation or simply run:
make help
Deployment
The production deployment is handled via the .drone.yml
which
simply executes the relevant docker-compose
files, which currently are:
./docker-compose.production.yml
for the production deployment./api/docker-compose.test.yml
for the automated tests of API and database./docker-compose.tdb.yml
for the TerminusDB deployment on the (temporarily, will be merged into./docker-compose.production.yml
in the future)
Apart from those, the API and database may be deployed locally with help of relevant docker-compose
files:
./api/docker-compose.yml
for the local deployment of TerminusDB and TEDective API./api/docker-compose-localapi.yml
for deployment of TEDective API connected to remote database (useful only for development team)
Resources
There are a lot of resources that are helpful in developing and extending the parser. The most important ones are:
- The OCDS Schema reference which describes in detail what an OCDS release is and what it should look like
- The OCDS European Union Profile which maps fields in TED notices to fields in an OCDS release (Github, Internal Tooling).
- The OJS' Standard form for public procurement site lists all the forms used in any given TED notice.
Previous efforts
-
TheyBuyForYou (a project by "a consortium of 10 leading companies, universities, research centres, government departments and local authorities in the UK, Norway, Italy, Spain and Slovenia" funded by the EU Horizon 2020 programme. The project cost the EU around €3.3 million and was developed over two years until December 2020. It is now largely dysfunctional and out-of-date. Some code seems to be publicly available but is provided without an explicit license)
-
DigiWhist's opentender.eu (seems somewhat abandoned, repo is still lightly maintained. Data is updated less than once a month and the frontend code is not open-source. One of the DigiWhist researchers foudned TenderX, a private for-profit tender/company data offering)
NB: This dataset seems to be used by the OCDS tool for scraping globally available OCDS data releases.
NB: There was apparently some collboration between the OKFN and the lead researcher now behind TenderX (Mihály Fazekas, here is his personal website).
-
OpenTED (seems abandoned, last commit 2015; didn't work with OCDS as it wasn't developed at the time)
-
opented (very old attempt at parsing TED data that didn't turn out to work)
-
OpenTED Browser (an academic paper about )
-
ExtracTED (according to the README, this was used to parse data between 2014-2016; last commit 5 years ago)
-
eu-hack (last commit 15 months ago, author is a data scientist at Amazon and target format is CSV, I could not run his code and achieve an error-free parsing of more recent TED data)