CODA is a web application for managing and processing funding requests for open access publication fees. It provides a complete workflow from request submission through approval, invoicing, and reporting — designed for academic libraries and research institutions.
Full documentation about all the features is available at https://coda-oa.github.io/coda/.
|
|
|
|
|
|
- 🪄 Multi-step funding request wizard — create requests for articles and monographs with DOI-based metadata import; manage metadata, payment status, and contract linking
- ⚖️ Review workflow — approve, reject, or mark requests in progress
- 🏢 External Funding Organizations - link (multiple) funders, project IDs and project names to funding requests
- 💰 Invoice management — link publications and contracts to invoices via specific positions, associate with creditor and track payment status
- 💼 Creditors - manage creditors and associate them with invoices
- 💵 Funding Sources - funding sources can be linked to invoice positions to associate budget with publications
- 📰 Publisher & journal management — CODA comes with a database of over 26,000 journals and associated publishers, new entities can be added if needed
- 🚫 Blocklist — blocklist journals and publishers with periodic review scheduling
- 🤝 Contract management — contracts with consolidated and per-publication billing, can be referenced on invoices and linked to publications via funding requests
- 🗂️ Controlled vocabularies — standardized hierarchical subject areas (DFG subject classification) and publication types (COAR Resource Types) with customizable limited vocabulary subsets
- 🏛️ Institution management — use hierarchical organization structure for author affiliations and cost splitting, import/export and archive when needed
- 📊 openCost reporting — generate standardized XML cost reports with validation
- 💾 CSV exports — filter-based export of funding requests and their associated costs
- ⚙️ Global preferences — configure home currency, home institution, and vocabulary selection
- Docker and Docker Compose
-
Clone the repository and change to the newly created
codadirectory:git clone https://github.com/coda-oa/coda cd coda -
Prepare environment variables:
In
coda.envyou can set which port CODA will be run under by adjusting theCODA_EXPOSED_PORTvariable.In
django.envyou must set the following variables:DJANGO_SECRET_KEY=<your-secret-key> DJANGO_ALLOWED_HOSTS=<your-allowed-hosts> DJANGO_CSRF_TRUSTED_ORIGINS=<your-trusted-origins>DJANGO_ALLOWED_HOSTSandDJANGO_CSRF_TRUSTED_ORIGINSshould generally point to the same hosts. For example, if CODA is running on the addresscoda.example.com, then these variables could look as follows:DJANGO_ALLOWED_HOSTS=coda.example.com DJANGO_CSRF_TRUSTED_ORIGINS=https://coda.example.comIn
postgres.envyou need to set a password for the database:POSTGRES_PASSWORD=<your-password> -
Start the application:
./commands/start-coda.sh --production
For a full deployment guide (local and production), see the documentation.
We provide a Docker Compose and devcontainer configuration to develop CODA in a Docker environment. Using an editor or IDE with devcontainer support (like VS Code or PyCharm) should be enough to get started. All necessary dependencies will be installed in the devcontainer.
When launching the devcontainer, CODA will automatically be started at localhost:8000.
CODA uses pdm to manage the project and its dependencies. See pdm's documentation for more details.
CODA uses a strict pre-commit configuration that runs checks before allowing a commit:
- mypy — static type checking in strict mode
- ruff — linting and code style enforcement
- black — deterministic code formatting
- djlint — Django template linting
- commitizen — enforces conventional commits
As we use commitizen to ensure correct commit formatting, we recommend using its command-line tool to generate the commit message:
pdm run cz commit
- Project Website: The website of the Adore-OA project
- Matrix: Get in touch with us by joining our matrix space
- Demo: Try our demo installation yourself!
CODA is licensed under the GNU General Public License v3.0 or later.