Skip to content

About

The Digital Research Competencies (DIRECT) Framework helps classify and describe a wide range of technical and non-technical skills used across digital research roles.

Resources

Code of conduct

Contributing

Stars

12 stars

Watchers

4 watching

Forks

Latest commit

Β 

History

1,728 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

DIRECT Framework Webapp

GitHub Test and build codecov DOI

A Django webapp implementing the DIRECT competencies framework as a website that can:

  • Allow browsing of all the skills.
  • Allow people to score their own skills and view their skill wheels.
  • Display and link the professional development resources curated for each skill.

This Django project uses:

pip-tools is chosen as a lightweight dependency manager that adheres to the latest standards using pyproject.toml.

Related links

Current Status

  • Initial research
  • Initial development <-- We are here
  • Minimum viable product
  • Alpha release
  • Feature-complete release

Installation

You must have Python version 3.14 or later installed.

To get started:

  1. Create and activate a virtual environment:

    python -m venv .venv
    source .venv/bin/activate # with Powershell on Windows: `.venv\Scripts\Activate.ps1`
  2. Install development requirements:

    pip install -r dev-requirements.txt
  3. (Optionally) install tools for building documentation:

    pip install -r doc-requirements.txt
  4. Install the git hooks:

    pre-commit install
  5. First-time database setup:

    Before running the server for the first time, initialise the database tables as follows:

    python manage.py migrate

    If you run into the following error, then you've missed this step:

    django.db.utils.OperationalError: no such table: main_skilllevel

  6. Run the webapp:

    python manage.py runserver

    When running the webapp for the first time you may get a warning similar to:

    You have 19 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, main, sessions.

    If this is the case, stop your webapp (with CONTROL-C) and apply the migrations with:

    python manage.py migrate

    then restart it.

  7. Run the tests:

    pytest
  8. Create an admin account to access admin backend:

    python manage.py createsuperuser
  9. Populate the database using a snapshot of v2.0 of the framework (this is not necessarily the latest live version, so this is only used for development).

    python manage.py loaddata direct_webapp/fixtures/framework-2-0.json

Installation with Docker

The app can be run within a Docker container and a docker-compose.yml file is provided to make this easy for development.

Requirements:

  1. You have a modern version of Docker installed.
  2. You have a JSON version of the framework saved at data/skills-competencies-framework.json.

To launch the server run:

docker compose up

The app will be available at http://127.0.0.1:8000/

As above, create a superuser with

docker compose exec app python manage.py createsuperuser

The framework should be automatically loaded into the database.

Updating Dependencies

To add or remove dependencies:

  1. Edit the dependencies variables in the pyproject.toml file (aim to keep development tools separate from the project requirements).
  2. Update the requirements files:
    • pip-compile for requirements.txt - the project requirements.
    • pip-compile --extra dev -o dev-requirements.txt for the development requirements.
    • pip-compile --extra doc -o doc-requirements.txt for the documentation tools.
  3. Sync the files with your installation (install packages):
    • pip-sync *requirements.txt

To upgrade pinned versions, use the --upgrade flag with pip-compile.

Versions can be restricted from updating within the pyproject.toml using standard python package version specifiers, i.e. "black<23" or "pip-tools!=6.12.2"

Frontend Node

The front-end build is contained in node/, including its package manifest, lockfile, tooling configuration, sources and tests. You do not need Node.js to develop Django pages using the committed assets. Only rebuild when changing front-end sources or dependencies.

Run npm commands from node/, or use npm --prefix node from the repository root. Built assets remain in main/static/assets/; Django deployment still consumes those assets without running npm.

See Frontend Node for details on working with the NPM-based frontend asset pipeline.

Acknowledgements

This work was supported by the DisCouRSE Network+, which received funding through the UKRI Digital Research Infrastructure Programme

Contributors

Dave Horsfall
Dave Horsfall

🎨 πŸ’» πŸ“† 🚧
Adrian D'Alessandro
Adrian D'Alessandro

🎨 πŸ’» ⚠️ 🚧 πŸ“†
Ryan
Ryan

πŸ’» πŸš‡ πŸ”§ 🚧
T D James
T D James

πŸ’» ⚠️ 🚧
Connor Aird
Connor Aird

πŸ’» ⚠️ 🚧
Andrew Gait
Andrew Gait

πŸ€” πŸ’»
Bryn Noel Ubald
Bryn Noel Ubald

πŸ”§ πŸ’»
Jason Klebes
Jason Klebes

πŸ›
sbland
sbland

πŸ’» 🎨 πŸ€” 🚧
barneydobson
barneydobson

πŸ’»
Aleksandra Nenadic
Aleksandra Nenadic

πŸ’» 🚧
Saranjeet Kaur
Saranjeet Kaur

🚧 πŸ’»
github-actions[bot]
github-actions[bot]

🚧
pre-commit-ci[bot]
pre-commit-ci[bot]

πŸ’»
Aman Goel
Aman Goel

🚧
Phil Reed
Phil Reed

🚧 πŸ’»
Toby Hodges
Toby Hodges

πŸ’»
geodaoyu
geodaoyu

πŸ’»
Christopher Cave-Ayland
Christopher Cave-Ayland

🚧
Sahil Raja
Sahil Raja

🚧 ⚠️ πŸ’»
Max Gamill
Max Gamill

πŸ’»
Kevin Rue-Albrecht
Kevin Rue-Albrecht

πŸ’»
mjademitchell
mjademitchell

πŸ’»
Eli Chadwick
Eli Chadwick

πŸ’»
Laurent Gil
Laurent Gil

πŸ’»

About

The Digital Research Competencies (DIRECT) Framework helps classify and describe a wide range of technical and non-technical skills used across digital research roles.

Resources

Code of conduct

Contributing

Stars

12 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages