DMPly is a web application for managing research study data in line with a Data Management Plan (DMP). It helps researchers handle personal study data across a study's lifecycle and keep it compliant with data-protection requirements such as the GDPR, reducing the manual effort this normally takes.
DMPly does not create the DMP itself. Instead, researchers organise uploaded files into predefined data groups, and the app then guides that data through each phase of the study. Its main features are:
- Assigning files and datasets to predefined data groups
- Role-based access for supervisors, primary and secondary researchers
- A phase-based workflow that prompts users to delete or anonymise data after each phase
- Automatic reminders for pending review and deletion tasks
- An audit log of all actions for accountability
It was developed as a bachelor's thesis at the University of Bonn.
DMPly was developed with React version 19.0.0, Express.js version 4.21.2, PostgreSQL version 17.5 and Docker.
These are the things you need to install to run this application:
- Docker/Docker Desktop
To run the development server use the following steps to set it up correctly.
-
Clone the repo
git clone https://github.com/Pallemann/DMPly.git
-
The dependencies are defined for each component
frontendandbackendrespectively. To install each of the dependencies you can use NPM:npm --prefix ./backend install && npm --prefix ./frontend install -
Create
.envfiles in/,/frontendand/backend. You can copy the.env.examplefiles and use them for the default configuration. -
To run the development server use docker compose and execute the following command in
/:docker compose up -d --build
-
The default ports are
8086for the frontend and8085for pgAdmin and can be accessed through the browser.
On default the database is empty and has to be populated through pgAdmin. Visit localhost:8085 to access the pgAdmin
overlay.
The default login credentials are defined in the .env file:
PGADMIN_DEFAULT_EMAIL = admin@example.com
PGADMIN_DEFAULT_PASSWORD = adminpasswordAfter logging in you need to set up the database server. The servername and port are defined in the
docker-compose.yml. Default values are db and 5432.
To create and populate the database tables, example queries are defined in the database.config. These SQL queries can
be used to set up a dummy database with a dummy username. The default username and password are test and
testpassword.