Skip to content

Latest commit

 

History

1,489 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Coda Logo

Contributors Commits Merged PRs
Release CI License


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/.


Funding request detail
Funding requests list Invoice detail
Invoices list openCost report detail page

Table of Contents

Features ✨

  • 🪄 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

Quick Start 🚀

Prerequisites

  • Docker and Docker Compose

Deployment

  1. Clone the repository and change to the newly created coda directory:

    git clone https://github.com/coda-oa/coda
    cd coda
    
  2. Prepare environment variables:

    In coda.env you can set which port CODA will be run under by adjusting the CODA_EXPOSED_PORT variable.

    In django.env you 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_HOSTS and DJANGO_CSRF_TRUSTED_ORIGINS should generally point to the same hosts. For example, if CODA is running on the address coda.example.com, then these variables could look as follows:

    DJANGO_ALLOWED_HOSTS=coda.example.com
    DJANGO_CSRF_TRUSTED_ORIGINS=https://coda.example.com
    

    In postgres.env you need to set a password for the database:

    POSTGRES_PASSWORD=<your-password>
    
  3. Start the application:

    ./commands/start-coda.sh --production
    

For a full deployment guide (local and production), see the documentation.

Development

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.

Project management

CODA uses pdm to manage the project and its dependencies. See pdm's documentation for more details.

Pre-commit configuration

CODA uses a strict pre-commit configuration that runs checks before allowing a commit:

  1. mypy — static type checking in strict mode
  2. ruff — linting and code style enforcement
  3. black — deterministic code formatting
  4. djlint — Django template linting
  5. commitizen — enforces conventional commits

Committing

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

Get in Touch with us! 📬

License 📄

CODA is licensed under the GNU General Public License v3.0 or later.

About

No description, website, or topics provided.

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages