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.

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