Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

latest build #4

Merged
merged 390 commits into from
Sep 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
390 commits
Select commit Hold shift + click to select a range
ec8f484
streamline @rdfjs/data-model version
bastiion Jun 10, 2024
4e403aa
put typed list item to advanced components
bastiion Jun 10, 2024
fe812c5
remove components, that are now part of a package
bastiion Jun 10, 2024
fccc0f3
cleanup and doc
bastiion Jun 10, 2024
821dd2f
create menu with icons
bastiion Jun 10, 2024
c75c1f9
do not export the component itself
bastiion Jun 10, 2024
eb4fc19
add type annotation
bastiion Jun 10, 2024
ccc0e28
use renderer and not the component with HOC
bastiion Jun 10, 2024
718de8e
CI fix
bastiion Jun 10, 2024
e1cd525
move vis timeline to its own package
bastiion Jun 11, 2024
4117716
put virtuoso elements within its own package
bastiion Jun 18, 2024
37f2b57
make makeDefaultMappingStrategy part of ui-utils
bastiion Jun 18, 2024
ce7c1f6
mapping robustness
bastiion Jun 18, 2024
c329d06
add searchParams to router hook
bastiion Jun 18, 2024
a9dee9b
apply changes/bug fix
bastiion Jun 18, 2024
73a03fa
break down Spreadsheet Import into one component each file
bastiion Jun 18, 2024
fbd9843
add import page to vite project
bastiion Jun 18, 2024
6158523
fix import page
bastiion Jun 18, 2024
dedde81
move HorizontalNonLinearStepper.tsx to basic-components
bastiion Jun 18, 2024
60a775c
reintegrate ReactQueryDevTools
bastiion Jun 18, 2024
eb3eef1
add readonly prop
bastiion Jun 18, 2024
6083eec
workaround to fix bug within import wizard
bastiion Jun 18, 2024
8a1052d
add helper to toplevel package.json
bastiion Jun 18, 2024
c4269be
clean remote query by stripping otu customized fetch
bastiion Jun 18, 2024
d179c5f
just disable certain buttons
bastiion Jun 18, 2024
3daf946
better import handling (wizard style)
bastiion Jun 19, 2024
3c55216
code style
bastiion Jun 19, 2024
aff5423
reverted change that lead to errors
bastiion Jun 20, 2024
306f8c3
exchange JsonSchema with JSONSchema7
bastiion Jun 20, 2024
99102b9
fix build
bastiion Jun 20, 2024
3714c1b
add new package for data mapping
bastiion Jun 20, 2024
e26e54e
create new authorities package and move sparql specific things to spa…
bastiion Jul 13, 2024
1784c90
take into account new authorities package
bastiion Jul 13, 2024
c31a3a0
put mapping code into its own package
bastiion Jul 15, 2024
c24afcd
type save select queries and cleanup within remote sparql query funct…
bastiion Jul 15, 2024
631c5ba
add type export
bastiion Jul 15, 2024
d7c8e13
fix schema loading withing cli
bastiion Jul 15, 2024
7e92129
fix bug within adb configuration that caused primary field to not be …
bastiion Jul 15, 2024
981b2ce
add helper functions for data mappings
bastiion Jul 15, 2024
896012c
refactoring to get declarative authority Mappings into manifestation …
bastiion Jul 15, 2024
9bf2c7d
flat mapping on the command line cli
bastiion Jul 15, 2024
a723c7b
enhance mapping package
bastiion Jul 16, 2024
38e26bb
add example Konvolut (NewYork)
bastiion Jul 16, 2024
6f868e9
helper function for formatted logging in cli
bastiion Jul 17, 2024
621dea3
heavy work on mapping
bastiion Jul 17, 2024
3679521
fix sparql config and make it local by default
bastiion Jul 17, 2024
9477c2f
start with chapter architecture
bastiion Jul 17, 2024
b90cb19
add stories folder to storybook
bastiion Jul 17, 2024
a842214
small cleanup
bastiion Jul 17, 2024
0f8d0a5
fix graphql API
bastiion Jul 17, 2024
3c9a963
fix graphql API
bastiion Jul 17, 2024
ba95078
stabilize hooks
bastiion Jul 20, 2024
fc921cf
add cleaning stage within data store
bastiion Jul 20, 2024
be6a6d1
give hint on wrong data
bastiion Jul 20, 2024
0faebca
stick to useCRUDWithQueryClient to simplify interfaces
bastiion Jul 20, 2024
d86fba0
move application specific makeStubSchema to its manifest
bastiion Jul 20, 2024
d26e18b
add restful API to SPARQL dataStore
bastiion Jul 20, 2024
1c752ef
add restful API to turbo toplevel
bastiion Jul 20, 2024
49cfb05
make restful API a dataStore for the frontend
bastiion Jul 20, 2024
a70a9af
enable restful datastore within use hook based on settings
bastiion Jul 20, 2024
f2f90ff
type enhancement
bastiion Jul 22, 2024
5b9e5a1
put defsToDefinitions utilities to json-schema-utils
bastiion Jul 22, 2024
506cbb6
add helper method to remote query implementation package
bastiion Jul 22, 2024
2afa77f
add helper methods t sparql db implementation for easier initialization
bastiion Jul 22, 2024
3519f32
small fixes (warnings)
bastiion Jul 22, 2024
edccd40
working on more coherent REST API
bastiion Jul 22, 2024
c8c14a4
more control within mapping
bastiion Jul 22, 2024
6019ec7
fix mapping issues and use data store for operations
bastiion Jul 22, 2024
d1ac9a7
fix some smaller issues
bastiion Jul 22, 2024
bae1a39
fix data store within prisma implementation
bastiion Jul 22, 2024
3f6acce
update bun lock
bastiion Jul 22, 2024
66ad91e
fix CI
bastiion Jul 22, 2024
b7b923b
fix CI
bastiion Jul 22, 2024
250f744
put the ft mappings into ints manifest
bastiion Jul 23, 2024
16ab940
breaking model change: idAuthority now with id and authorityIRI
bastiion Jul 24, 2024
85bf8aa
fix return value from upsert
bastiion Jul 24, 2024
847a549
fix type name
bastiion Jul 24, 2024
140bb4f
adopt code changes to cli functions and simplify
bastiion Jul 24, 2024
94233d5
extendSchema for graphql simplified
bastiion Jul 24, 2024
802f32f
provide export schema function and export latest schema to json
bastiion Jul 24, 2024
65a0b9e
fix export script and alow for greter body size within nginx
bastiion Jul 24, 2024
e60cd1f
reduce maxRecursion to 6 to avoid tons of data to be loaded
bastiion Jul 24, 2024
39408c2
externalize dependencies
bastiion Jul 24, 2024
431e48c
dependency hazzling (react query)
bastiion Jul 24, 2024
c089578
make build helpers executable by adding a shebang
bastiion Jul 24, 2024
df4dcb2
fix prisma implementation
bastiion Jul 24, 2024
d410706
refactoring and documentation
bastiion Jul 25, 2024
384e678
integrate changes
bastiion Jul 25, 2024
5b19af2
create prisma schema within its manifestation
bastiion Jul 25, 2024
bab43f2
put import functionality to cli + fixes
bastiion Jul 26, 2024
cb58f0d
use data store
bastiion Jul 26, 2024
253db20
Data Store documentation
bastiion Jul 26, 2024
d293e07
add missing dependency
bastiion Jul 26, 2024
d371f59
ts ignore and bun lock
bastiion Jul 26, 2024
58df2b9
working bun.lock
bastiion Jul 31, 2024
bd6c74f
fix bun lock
bastiion Jul 31, 2024
551c42f
use hygen for template based package generation
bastiion Aug 5, 2024
43d848b
put theme into its own package
bastiion Aug 5, 2024
f1b9e51
add missing package json
bastiion Aug 5, 2024
82697e1
save environment in toplevel env
bastiion Aug 6, 2024
f2272b3
fix mapping to idAuthority.id
bastiion Aug 6, 2024
6be1241
fix EndpointChooser (infinite loop)
bastiion Aug 6, 2024
392fb3a
make mapping Strategy independent from the sparql endpoint
bastiion Aug 6, 2024
ea565f8
do not look for repository IRI
bastiion Aug 6, 2024
b2113ba
load more items
bastiion Aug 6, 2024
8e473bf
add theme package to exhibition-live app
bastiion Aug 6, 2024
226877b
storybook fixed
bastiion Aug 5, 2024
2b79df9
fix example within storybook
bastiion Aug 5, 2024
ec561c5
more documentation
bastiion Aug 5, 2024
e8df92f
continue if package build errro
bastiion Aug 6, 2024
d05f51b
fix env file generation
bastiion Aug 7, 2024
2472937
fix env file generation
bastiion Aug 7, 2024
76003fc
add template for tsup based package (hygen)
bastiion Aug 7, 2024
7c3ed69
add documentation
bastiion Aug 7, 2024
568fe48
make use of schema within cli
bastiion Aug 7, 2024
2faa23b
Simplified endpoint config
bastiion Aug 7, 2024
eed1123
add package config-helper
bastiion Aug 7, 2024
733f277
update elysia
bastiion Aug 7, 2024
9b18937
cleanup and dep to devDep
bastiion Aug 7, 2024
55e1d04
add mermaid story block (for diagrams)
bastiion Aug 8, 2024
125cbc7
restructuring the storybook and add documentation
bastiion Aug 8, 2024
e85b9d4
add missing tsup.configs
bastiion Sep 2, 2024
57bc418
make zustand and react-redux a peerDependency
bastiion Sep 2, 2024
ed19f15
add a ready to use demo docker image
bastiion Aug 8, 2024
39f79a8
fix exit code for flat import
bastiion Aug 8, 2024
2d5fcad
more disk space
bastiion Aug 8, 2024
4d7ed63
add caching mechanism
Aug 14, 2024
94fc6ad
fix get-dependencies
Aug 14, 2024
e92fe2d
add import helper function
Aug 14, 2024
d047715
draft file import helper
Aug 14, 2024
ec99270
add example seed for exhibition database
Aug 14, 2024
24ff82c
allow for RDF seeds (all databases)
bastiion Aug 16, 2024
a15cbab
add seed handler to edb-cli
bastiion Aug 16, 2024
ef613ea
differ the seed
bastiion Aug 21, 2024
5dd108c
start example wikidata mappings
bastiion Aug 21, 2024
26e6468
generalize wikidata function
bastiion Aug 21, 2024
d3ccdb2
break SimilarityFInder into pieces
bastiion Aug 21, 2024
39c82ce
apply changes to main app
bastiion Aug 21, 2024
5d79033
more stories
bastiion Aug 21, 2024
2296c8a
start to better document the API
bastiion Aug 22, 2024
fc92633
start to refactor and generalize KXP components
bastiion Aug 22, 2024
45a43a8
bug fix
bastiion Aug 22, 2024
a0e54ed
apply left over changes of refactoring KXP
bastiion Aug 22, 2024
29c4d27
continue with documentation
bastiion Aug 22, 2024
d3b1604
update gitignore
bastiion Aug 22, 2024
ba662a3
feat: add story for ClassicEntityCard component and update package.js…
bastiion Aug 22, 2024
9903ded
put KXP components into own package
bastiion Aug 22, 2024
6f9342e
add story and cleanup basic-components
bastiion Aug 22, 2024
d913508
remove K10PlusSearchTable from exhibition live app
bastiion Aug 22, 2024
552ccdd
refactor: separate knowledge base configurations into individual file…
bastiion Aug 26, 2024
47fc8c3
feat: switch Wikidata provider to use the reconciliation API for fetc…
bastiion Aug 27, 2024
a593b81
more documentation (reconcilation, development)
bastiion Aug 28, 2024
92aa988
fix wikidata and add it to the demo
bastiion Aug 28, 2024
a0e5ef1
add SimilarityFinder to the Doc
bastiion Aug 28, 2024
f00c9e9
fix props order to avoid override
bastiion Aug 28, 2024
7b73673
feat: add Hygen template for scaffolding manifestation data model files
bastiion Aug 28, 2024
fe0d43c
feat: update generated file paths to always go into the manifestation…
bastiion Aug 28, 2024
bf6d29c
feat: add Hygen template for generating configuration files based on …
bastiion Aug 28, 2024
09d569a
fix: include 'to:' part in config.ejs.t for correct import path
bastiion Aug 28, 2024
c023300
hygen template to generate a new manifestation
bastiion Aug 28, 2024
c3669b8
target to build all manifestations
bastiion Aug 28, 2024
13b3633
add LD_LIBRARY_PATH to make aider work under nix develop
bastiion Aug 28, 2024
bb7e8e6
add emv variable to vite to specify the current MANIFESTATION
bastiion Aug 28, 2024
b01a76f
example of a basic manifestation skeleton
bastiion Aug 28, 2024
e96b879
add kulinarik example to the vite App
bastiion Aug 28, 2024
3d87f25
fix build by not exporting LightTooltip
bastiion Aug 28, 2024
f7b7745
fix
bastiion Aug 28, 2024
7a9ea4e
fix package json of kxp-components
bastiion Sep 3, 2024
f034a5f
Add bug-hunter.sh script for sequential commit testing in build-helpe…
bastiion Sep 3, 2024
50f977e
add README to build-helper package
bastiion Sep 3, 2024
224c8e5
add cytoscape test for person and extend cypress commands
bastiion Sep 3, 2024
3691c43
fix Yasgui window nextjs build error and document solution
Sep 4, 2024
870cba4
add tsup to frontend-package hygen template
bastiion Sep 4, 2024
656ed32
make tsup by default use all dependencies of package.json as external
bastiion Sep 4, 2024
8914501
enhance package templates from hygen
bastiion Sep 4, 2024
f56acbb
add tsup config to kxp-components
bastiion Sep 4, 2024
8136f68
simplify tsup call
bastiion Sep 4, 2024
fa8e6ec
new package using `hygen edb frontend-package`
bastiion Sep 4, 2024
3e43f1e
refactor: simplify EdbSparnatural component and remove unused props f…
bastiion Sep 4, 2024
15542d6
refactor: update EdbSparnatural component to use props and create sto…
bastiion Sep 4, 2024
ba6db98
refactor: Update EdbSparnatural component to use props and create sto…
bastiion Sep 4, 2024
2a612b2
Sparnatural package
bastiion Sep 6, 2024
9f3dc69
fix lobid (do not use encodeURIComponent)
bastiion Sep 6, 2024
e9c8015
lazy import of PrismaClient (run even if no prisma client generated)
bastiion Sep 6, 2024
8f783e9
add a sample SHACL shape for the exhibition model
bastiion Sep 6, 2024
30b6f0b
QuerySparnatural demo component
bastiion Sep 6, 2024
6b01524
import select2 stylesheet
bastiion Sep 6, 2024
fd62cff
fix hygen templates
bastiion Sep 6, 2024
aff8e34
add utility functions
bastiion Sep 6, 2024
d38c843
use locked endpoint (FIXME use env!) in storybook
bastiion Sep 6, 2024
b0e7d38
put venv to gitignore
bastiion Sep 6, 2024
dba86ac
fix sparnatural integration
bastiion Sep 6, 2024
03cc734
add unit tests for traverseGraphExtractBySchema function
bastiion Sep 5, 2024
f887590
start new tree walker implementation for recursive JSONSchema walking
bastiion Sep 6, 2024
9e6f5d4
enhance norm data mapping configuration
bastiion Sep 6, 2024
da8b7e1
Add font awesome icons to schema shapes
bastiion Sep 6, 2024
43260a5
refactor: distinct 'parent' property sample shacl
bastiion Sep 6, 2024
a92ac6d
heavy work on mapping and small fixes
bastiion Sep 11, 2024
aaf0162
fix data mapping issues and streamline logging
bastiion Sep 16, 2024
3c871ff
make authority mapping available within cli
bastiion Sep 16, 2024
e51c915
Add MappingTestComponent story and update SimilarityFinder and Mapped…
bastiion Sep 16, 2024
94dbcbf
Add wikidataExhibitionSeriesMapping and wikidataExhibitionMapping to …
bastiion Sep 16, 2024
63eac70
Add getSubschemaByPath test for JSONSchema path extraction
bastiion Sep 16, 2024
5fd73d1
fix build issues
bastiion Sep 16, 2024
69ab1f9
Update package.json of edb-cli-creator
bastiion Sep 16, 2024
53f147b
fix problems in sparql datastore list operation
bastiion Sep 17, 2024
7a43147
small change in cleanJSONLD.ts to filter for undef
bastiion Sep 17, 2024
a5068de
add missing workspace dependency
bastiion Sep 17, 2024
284ece5
fix remaining issues with dropdown renderer
bastiion Sep 17, 2024
04f7ff9
add wikidata mappings with configurable language
bastiion Sep 17, 2024
1946c39
fix seed (EventType)
bastiion Sep 17, 2024
c12d327
exclude more types in stub schema generator
bastiion Sep 17, 2024
1d48f9a
fix PrimaryFieldTextRenderer
bastiion Sep 17, 2024
827ec83
cleanup table views
bastiion Sep 17, 2024
7a000b7
fix UISchema of Exhibition
bastiion Sep 17, 2024
613355c
make Import page not crash the app if no Google API key present + rem…
bastiion Sep 17, 2024
5150d81
remove logging and other minor fixes
bastiion Sep 17, 2024
af327b0
remove unused import
bastiion Sep 18, 2024
55c546c
fix renderer problems
bastiion Sep 18, 2024
3c8c2d3
code style...
bastiion Sep 18, 2024
f789a23
mini fix -> make SeriesType a dropdown
bastiion Sep 18, 2024
24c69e4
reduce default page size
bastiion Sep 19, 2024
8601461
remove catched error
bastiion Sep 19, 2024
c57816d
remove hardcoded text field variant
bastiion Sep 19, 2024
ba2bac3
add variant to theme options and remove paddings
bastiion Sep 19, 2024
8d05e49
select the databases that have a preconfigured mapping automatically
bastiion Sep 19, 2024
7903dd6
update @jsonforms
bastiion Sep 19, 2024
529fa89
heavy work on mapping related issues
bastiion Sep 19, 2024
17cc620
remove mongo implementation draft
bastiion Sep 19, 2024
deb4012
fix jsonld context
bastiion Sep 19, 2024
0b1050a
better uischema for exhibition
bastiion Sep 19, 2024
85227ea
fix issues that appeared after JsonForms update
bastiion Sep 19, 2024
1da1176
add yet another mapping strategy for adb date and allow includeRightN…
bastiion Sep 19, 2024
b504572
add date matcher to NewYork example mapping
bastiion Sep 19, 2024
e870008
indicate loading
bastiion Sep 19, 2024
a4486b5
add Place to available types
bastiion Sep 19, 2024
d749893
feat: Add new file jsonSchema2constructWithLimits.ts
bastiion Sep 19, 2024
bd374a2
feat: Implement jsonSchema2constructWithLimits
bastiion Sep 19, 2024
64018e5
feat: Add test for jsonSchema2constructWithLimits function
bastiion Sep 19, 2024
7e6f593
feat: update jsonSchema2constructWithLimits to use bun instead of npm
bastiion Sep 19, 2024
ae80d38
fix: Add required type check for nextSchema
bastiion Sep 19, 2024
0ece30c
fix: Resolve TypeScript error in jsonSchema2constructWithLimits.ts
bastiion Sep 19, 2024
ed11502
fix: Fix test case to expect the presence of the :age ?age_ pattern i…
bastiion Sep 19, 2024
4cce42f
fix: Update jsonSchema2constructWithLimits function
bastiion Sep 19, 2024
3d3e4be
fix image type to uri
bastiion Sep 25, 2024
77dd5eb
fix all prop table
bastiion Sep 25, 2024
e844e18
simplify primaryFields
bastiion Sep 25, 2024
9109b81
remove unused code
bastiion Sep 25, 2024
2a0e27e
add translation
bastiion Sep 25, 2024
dbaeb3d
fix date related issues in table and mapping
bastiion Sep 30, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 7 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -1 +1,8 @@
NEXT_PUBLIC_BASE_PATH=

SCHEMA=exhibition
DATABASE_PROVIDER=postgresql
DATABASE_URL=postgres://admin:admin@localhost:5433/exhibition
SPARQL_ENDPOINT=http://localhost:7878/query
SPARQL_ENDPOINT_LABEL=Local Testing
SPARQL_ENDPOINT_PROVIDER=oxigraph
3 changes: 3 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
VITE_SPARQL_ENDPOINT=http://localhost:3001
VITE_SPARQL_ENDPOINT_LABEL=Local Testing
VITE_SPARQL_ENDPOINT_PROVIDER=rest
56 changes: 56 additions & 0 deletions .github/workflows/build-and-push-demo-docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
#
name: Create and publish a Development Demo Docker image

on:
push:
branches: ['demo']

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}-development-demo

jobs:
build-and-push-image:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
# this might remove tools that are actually needed,
# when set to "true" but frees about 6 GB
tool-cache: true
- name: Checkout repository
uses: actions/checkout@v4
- name: Log in to the Container registry
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Restore and cache Nix store
uses: nix-community/cache-nix-action@v5
with:
primary-key: nix-${{ runner.os }}-${{ hashFiles('**/*.nix') }}
restore-prefixes-first-match: nix-${{ runner.os }}-
gc-max-store-size-linux: 1081900000
purge: true
purge-prefixes: cache-${{ runner.os }}-
purge-created: 0
purge-primary-key: never
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
- name: Build and push Docker image
uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4
with:
context: .
file: ./Dockerfile.demo
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
7 changes: 3 additions & 4 deletions .github/workflows/nextjs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ jobs:
# Build job
build:
runs-on: ubuntu-latest
environment: github-pages
steps:
- name: Checkout
uses: actions/checkout@v4
Expand Down Expand Up @@ -57,12 +58,10 @@ jobs:
- name: Install dependencies
run: bun install
- name: create env file
env:
NEXT_PUBLIC_GAPI_OAUTH_CLIENT_ID: ${{ secrets.NEXT_PUBLIC_GAPI_OAUTH_CLIENT_ID }}
NEXT_PUBLIC_BASE_PATH: /${{ github.event.repository.name }}
run: |
touch ./apps/exhibition-live/.env
echo NEXT_PUBLIC_GAPI_OAUTH_CLIENT_ID="${{ secrets.NEXT_PUBLIC_GAPI_OAUTH_CLIENT_ID }}" >> ./apps/exhibition-live/.env
echo "${{ vars.LOCAL_ENV_FILE }}" > ./apps/exhibition-live/.env
echo NEXT_PUBLIC_GAPI_OAUTH_CLIENT_ID="${{ vars.NEXT_PUBLIC_GAPI_OAUTH_CLIENT_ID }}" >> ./apps/exhibition-live/.env
echo NEXT_PUBLIC_BASE_PATH="/${{ github.event.repository.name }}" >> ./apps/exhibition-live/.env
- name: Build with Next.js
run: bun run build
Expand Down
19 changes: 19 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -62,3 +62,22 @@ coverage

out
apps/exhibition-live/exhibition-live

packages/icons/src/assets/svgs
manifestation/exhibition/typebox
apps/edb-prisma-cli/migrations
apps/edb-prisma-cli/prisma
apps/edb-prisma-cli/prisma
apps/edb-solr-cli/solr
apps/edb-solr-cli/elastic
apps/edb-surreal-api/data
apps/edb-surreal-api/*.AppImage
apps/edb-prisma-cli/schema.prisma


.env
/apps/exhibition-live/public/exhibition-corpus-riot.ttl
/apps/edb-solr-cli/export
.aider*
venv/
.venv/
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[submodule "packages/edb-sparnatural/jsonschema2shacl"]
path = packages/edb-sparnatural/jsonschema2shacl
url = https://github.com/citiususc/jsonschema2shacl.git
branch = main
1 change: 1 addition & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/apps/exhibition-live/styles
/apps/exhibition-live/public/worker.js
/apps/exhibition-live/public/scripts.bundle.js
/apps/edb-solr-cli/solr/solr
50 changes: 50 additions & 0 deletions Dockerfile.demo
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
FROM nixos/nix

RUN mkdir /app
WORKDIR /app

COPY flake.nix flake.nix
COPY flake.lock flake.lock

# Cache some requirements in /nix/store
RUN echo "extra-experimental-features = nix-command flakes" >> /etc/nix/nix.conf
RUN nix develop


ENV NEXT_TELEMETRY_DISABLED 1
ENV NEXT_PUBLIC_BASE_PATH ""

RUN mkdir -p /home/appuser
RUN nix-shell -p busybox.out --run 'adduser -D -u 1000 appuser && \
chown -R appuser:appuser /nix && \
chown -R appuser:appuser /app'



EXPOSE 3000

ENV HOSTNAME "0.0.0.0"


COPY . /app
RUN chown -R appuser:appuser -R /app

WORKDIR /app
USER 1000:1000

RUN nix develop --command bash -c 'bun i && bun build:packages'

ENV DATABASE_URL "file:/app/prisma/dev.db"

RUN nix develop --command bash -c 'bun run build:prisma && \
bun run prisma:exhibition:generate && \
prisma migrate dev --name initial --schema ./prisma/exhibition.prisma'

RUN nix develop --command bash -c 'bun run cli flatImport ./manifestation/exhibition/import/Konvolut_NewYork_2024-07-14.csv -m NewYork -n 10'

EXPOSE 3001
EXPOSE 5762

COPY ./.env.example /apps/exhibition-live/.env.local

CMD nix develop --command bash -c 'bun run start'
43 changes: 37 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,19 @@ A live demo of the exhibition catalog is available here: [https://slub.github.io

You might want to set your own storage backend(s) within the settings modal.

## Storybook stories
## Development Documentation

The pure frontend specific component based framework, that sets the base of the exhibition catalog is documented within the Storybook.

You can get a live preview of the current `develop` branch here: [https://slub.github.io/exhibition-live/storybook/](https://slub.github.io/exhibition-live/storybook/)
Please have a look at the **[Storybook of the EDB Framework](https://slub.github.io/exhibition-live/storybook/)** for an indepth documentation of the frontend components, th cli
and the overall architecture of the exhibition catalog and the EDB framework.

# Development

## Getting Started

First, run the development server:
For a quick start install all dependencies initially build the packages and start the development server of the nextjs exhibition-live application.

```bash
bun i && bun run dev
bun i && bun build:packages && bun run dev:exhibition
```

Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
Expand Down Expand Up @@ -56,6 +55,12 @@ Other SPARQL Endpoints, like Jena Fuseki, Virtuoso, Blazegraph or GraphDB can be
Additional effort might be needed to configure CORS and authentication and to get along with some
Endpoints not beeing fully SPARQL 1.1 compliant.

### Endpoint Configuration

The configuration of endpoints within the `exhibition-live` application can either be done dynamically at runtime using
the settings modal or by providing a `SPARQL_ENDPOINT` environment variable at build time, which disables setting the endpoint
within the modal and is especially suitable for production deployments, where one wants to make sure all users operate on the same endpoint.

## Storybook

This project uses [Storybooks](https://storybook.js.org/) to enforce reusable component based development and to document them with
Expand All @@ -68,6 +73,19 @@ bun i && bun run storybook

Open [http://localhost:6006](http://localhost:6006) with your browser to see the storybook.

## Testing

Unit tests of core functionality is done by `jest`. For integration tests of the frontend `Cypress` is being used.

### Trouble Shooting

Cypress under Nix:
it might be necessary to delete `~/.cache/Cypress`

```
rm -rf ~/.cache/Cypress
```

## Using Docker

1. [Install Docker](https://docs.docker.com/get-docker/) on your machine.
Expand Down Expand Up @@ -130,3 +148,16 @@ that provide additional information for the frontend, like:

- the UI-Schemata for form layout and style hints
- data mapping declarations for data conversion from and to norm data repositories

# Helpful Commands

Complete rebuild without cache:

```
docker compose down
docker compose rm -f
docker compose pull
docker compose up --build -d
```

Deletes all images, reloads all images from repository, starts all images with building in daemon-mode, may add `docker compose logs -f` for output in following mode.
39 changes: 39 additions & 0 deletions _templates/edb/frontend-package-raw/Component.stories.tsx.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
to: packages/<%= name.split("/")[1] %>/src/<%= h.changeCase.pascal(name.split("/")[1]) %>.stories.tsx
---
<%
const packageName = name.split("/")[1];
const ComponentName = h.changeCase.pascal(packageName);
%>
import React from 'react';
import { Meta, StoryObj } from '@storybook/react';
import { <%= ComponentName %>, <%= ComponentName %>Props } from './<%= ComponentName %>';

const meta: Meta<typeof <%= ComponentName %>> = {
component: <%= ComponentName %>,
title: 'Components/<%= ComponentName %>',
argTypes: {
name: { control: 'text' },
},
};

export default meta;
type Story = StoryObj<typeof <%= ComponentName %>>;

export const Default: Story = {
args: {
name: 'World',
},
};

export const CustomName: Story = {
args: {
name: 'Storybook',
},
};

export const LongName: Story = {
args: {
name: 'This is a very long name to test wrapping',
},
};
15 changes: 15 additions & 0 deletions _templates/edb/frontend-package-raw/Component.tsx.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
to: packages/<%= name.split("/")[1] %>/src/<%= h.changeCase.pascal( name.split("/")[1] ) %>.tsx
---
<%
const packageName = name.split("/")[1];
const ComponentName = h.changeCase.pascal(packageName);
%>
import React, {FunctionComponent} from 'react';

export type <%= ComponentName %>Props = {
name: string;
};
export const <%= ComponentName %>: FunctionComponent<<%= ComponentName %>Props> = ({ name }) => {
return <div>Hello {name} from <%= name %> Package!</div>;
}
19 changes: 19 additions & 0 deletions _templates/edb/frontend-package-raw/Doc.mdx.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
to: packages/<%= name.split("/")[1] %>/src/<%= h.changeCase.pascal(name.split("/")[1]) %>.mdx
---
<%
const packageName = name.split("/")[1];
const ComponentName = h.changeCase.pascal(packageName);
%>
import { Canvas, Meta } from '@storybook/blocks';
import * as <%= ComponentName %>Stories from './<%= ComponentName %>.stories';

<Meta title="Components/<%= ComponentName %>" />

# <%= ComponentName %>

<% ["CustomName", "LongName"].forEach((story) => {%>
## <%= story %>
<Canvas of={<%= ComponentName %>Stories.<%= story %>} />

<% }) %>
28 changes: 28 additions & 0 deletions _templates/edb/frontend-package-raw/package.json.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
to: packages/<%= name.split("/")[1] %>/package.json
---
{
"name": "<%= name %>",
"version": "1.0.0",
"private": true,
"main": "src/index.tsx",
"types": "src/index.tsx",
"sideEffects": false,
"scripts": {
"typecheck": "tsc -b",
"lint": "eslint \"**/*.ts*\"",
"lint-fix": "eslint --fix \"**/*.ts*\""
},
"peerDependencies": {
"@mui/material": "^5",
"@mui/icons-material": "^5",
"react": "^18"
},
"dependencies": {
},
"devDependencies": {
"@slub/edb-build-helper": "workspace:*",
"@slub/edb-tsconfig": "workspace:*"
}
}

11 changes: 11 additions & 0 deletions _templates/edb/frontend-package-raw/prompt.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// see types of prompts:
// https://github.com/enquirer/enquirer/tree/master/examples
//
module.exports = [
{
type: "input",
name: "name",
message: "Name of the sub package",
initial: "@slub/edb-",
},
];
4 changes: 4 additions & 0 deletions _templates/edb/frontend-package-raw/src_index.tsx.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
to: packages/<%= name.split("/")[1] %>/src/index.tsx
---
export * from "./<%= h.changeCase.pascal(name.split("/")[1]) %>";
12 changes: 12 additions & 0 deletions _templates/edb/frontend-package-raw/tsconfig.json.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
to: packages/<%= name.split("/")[1] %>/tsconfig.json
---
{
"extends": "@slub/edb-tsconfig/react-library.json",
"include": ["src"],
"exclude": ["dist", "build", "node_modules"],
"compilerOptions": {
"strict": false,
"resolveJsonModule": true
}
}
Loading
Loading