Skip to content

knaw-huc/Dexter

Repository files navigation

Dexter

Collect, organize and annotate sources from external digital collections and physical, non-digitized collections in user defined corpora.

Note: Dexter is work in progress. Please see the changelog for an overview of the latest features.

For more information, see Dexter

Table of contents

Issues and feature requests

You can create new issues at Dexter/issues, with a template for bugs and one for features.

Development

First time

VERSION=latest docker-compose up -d postgres
  • Start backend:
cd backend
make build
export DEX_FLYWAY_LOCATIONS=['filesystem:db']
export DEX_DATABASE_URL=jdbc:postgresql://0.0.0.0:5432/dexter 
make run-server
  • Start frontend:
cd frontend
npm i
npm start
# Add non-admin user:
curl -X 'POST' 'http://localhost:8080/admin/users' \
  -H 'Authorization: Basic cm9vdDpkMzNkMzM=' \
  -H 'Content-Type: application/json' \
  -d '["dexter"]'

Tests

Run: npm test Requires node 20 for fetch

Model

See database-model.md

Workflow

graph TD
    START((start))

    AU[action of user]
    AR["🤖 action of rolodex"]
    EN[/entities/]
    
    START --> LOGIN["login@rolodex"]
    LOGIN --> HOME[view dashboard]
    
    START --> SEARCH["search@AAMU website"]
    SEARCH --> VIEWITEM[view specific source]
    VIEWITEM --> COPYHANDLER[copy source handle]
    COPYHANDLER --> ADDHANDLER[add handle to corpus source]
    ADDHANDLER --> IMPORTHANDLER["🤖 import meta data"]
    IMPORTHANDLER --> ADDMETADATA["🤖 add meta data to corpus source"]
    ADDMETADATA --> VCI[/corpus source/]
    
    %% corpus sources:
    HOME --> CVC[create corpus]
    CVC --> VC[/corpus/]
    
    VC --> AVC[add corpus source]
    AVC --> VCI
    
    %% tag:
    HOME --> CTAG[create tag]
    CTAG --> TAG[/tag/]
    TAG --> ATAG[add tag]
    ATAG --> VCI
    
    TAG-->SORTVC
    
    HOME --> VIEWVC[view corpus]
    VIEWVC --> SORTVC[sort/filter corpus sources]
    SORTVC --> VIEWVCI[view corpus source]
    VIEWVCI --> VCI
    
    VCI -.-> |"(must have, possibly after demo)"|ANN[annotate]
    ANN --> ANNT[annotate text in recogito-js]
    ANNT --> WANN[/web annotation/]
Loading