@@ -14,30 +14,66 @@ This application was developed in the context of the CHIST-ERA TRIPLE project.
1414
1515## Table of Contents
1616
17- - [ Project Overview] ( #project-overview )
18- - [ Quick Start] ( #quick-start )
19- - [ Scripts] ( #scripts )
20- - [ Unit Test Suite] ( #unit-test-suite )
21- - [ Git Workflow] ( #git-workflow )
22- - [ Web-App Version Tags] ( #web-app-version-tags )
23- - [ Deployment] ( #deployment )
24- - [ Dependency Versions] ( #dependency-versions )
25- - [ Ways to Get a Solid Pod] ( #ways-to-get-a-solid-pod )
26- - [ Guides] ( #guides )
27- - [ Contributing] ( #contributing )
28- - [ Contact] ( #contact )
29-
30- ## Project Overview
31-
32- ### Main capabilities
17+ - [ Users] ( #users )
18+ - [ Developers] ( #developers )
19+
20+ ## Users
21+
22+ ### What Solid Cockpit Does
23+
24+ Main capabilities:
3325
3426- Solid Pod login and registration flow
3527- File upload and pod resource operations
3628- SPARQL querying over Solid Pods and endpoints
3729- Query caching support
3830- Privacy/ACL access management
3931
40- ### Tech stack
32+ ### Accessing the App
33+
34+ Public deployment:
35+
36+ - < https://knowledgeonwebscale.github.io/solid-cockpit >
37+
38+ If you want to run locally, see [ Developers] ( #developers ) .
39+
40+ ### Ways to Get a Solid Pod
41+
42+ - [ Community Solid Server] ( https://communitysolidserver.github.io/CommunitySolidServer/latest/ ) : host a Pod locally or on your own server
43+ - [ Solidcommunity.net] ( https://solidcommunity.net/ ) : community-hosted Solid Pods
44+ - [ Other Solid Pod Hosting Services] ( https://solidproject.org/for-developers#hosted-pod-services )
45+
46+ ### Usage Guides
47+
48+ TRIPLE onboarding guide:
49+
50+ - [ TRIPLE-guide.md] ( ./TRIPLE-guide.md )
51+
52+ Solid Pod VoID file generation:
53+
54+ - < https://github.com/JervenBolleman/void-generator/tree/solid-pod-support >
55+
56+ Example:
57+
58+ ``` bash
59+ mvn package
60+ java -jar target/void-generator-0.7-SNAPSHOT-uber.jar \
61+ --from-solid-pod [URL-to-solid-pod] \
62+ --void-file void.ttl \
63+ -i [URL-to-solid-pod]/void.ttl \
64+ --repository [URL-to-solid-pod]
65+ ```
66+
67+ Then upload ` void.ttl ` to the pod root using the app's ` Data Upload ` page.
68+
69+ ### Contact and Support
70+
71+ - Discussions: < https://github.com/KNowledgeOnWebScale/solid-cockpit/discussions >
72+ - Issues: < https://github.com/KNowledgeOnWebScale/solid-cockpit/issues >
73+
74+ ## Developers
75+
76+ ### Tech Stack
4177
4278- Vue 3 + Vite 6
4379- TypeScript
@@ -46,38 +82,38 @@ This application was developed in the context of the CHIST-ERA TRIPLE project.
4682- Inrupt Solid client/auth libraries
4783- Comunica SPARQL engine
4884
49- ## Quick Start
50-
5185### Prerequisites
5286
5387- Node.js 20+
5488- Yarn 1.x (repo currently uses ` yarn.lock ` )
5589
56- ### Install
90+ ### Local Setup
91+
92+ Install dependencies:
5793
5894``` bash
5995yarn install
6096```
6197
62- ### Run locally
98+ Run locally:
6399
64100``` bash
65101yarn dev
66102```
67103
68- ### Build production assets
104+ Build production assets:
69105
70106``` bash
71107yarn build
72108```
73109
74- ### Preview production build
110+ Preview production build:
75111
76112``` bash
77113yarn serve
78114```
79115
80- ## Scripts
116+ ### Scripts
81117
82118| Script | Description |
83119| --- | --- |
@@ -88,71 +124,50 @@ yarn serve
88124| ` yarn test:unit:watch ` | Run unit tests in watch mode |
89125| ` yarn test:unit:coverage ` | Run unit tests with coverage report generation |
90126| ` yarn test:unit:compliance ` | Enforce unit-test + coverage thresholds |
127+ | ` yarn test:unit:compliance:quiet ` | Enforce unit coverage with concise output |
91128| ` yarn test:component ` | Run Vue component tests (` .vue ` ) via Vitest |
92129| ` yarn test:component:watch ` | Run Vue component tests in watch mode |
93130| ` yarn test:component:coverage ` | Run Vue component tests with coverage |
94131| ` yarn test:component:compliance ` | Enforce Vue component test coverage thresholds |
95- | ` yarn test:compliance ` | Run both unit and component compliance checks |
132+ | ` yarn test:component:compliance:quiet ` | Enforce component coverage with concise output |
133+ | ` yarn test:compliance ` | Run full (unit + component) compliance checks |
134+ | ` yarn test:compliance:quiet ` | Run full compliance checks with concise output |
96135| ` yarn hooks:install ` | Configure local git hooks path (` .githooks ` ) |
97136| ` yarn github-post-build ` | Create route-compatible ` index.html ` copies in ` dist/ ` |
98137| ` yarn deploy ` | Publish ` dist/ ` to GitHub Pages |
99138
100- ## Unit Test Suite
139+ ### Testing and Coverage
101140
102- The project includes a unit test suite under ` tests/unit/ ` .
141+ Unit test suite:
103142
104- ### Current coverage focus
143+ - Location: ` tests/unit/ `
144+ - Command: ` yarn test:unit `
105145
106- - Upload helper behavior (` fileUploadUtils.ts ` )
107- - Query utility behavior (` queryPodUtils.ts ` )
108- - COI fetch wrapper behavior (` z3-headers.ts ` )
109- - Auth/session workflow behavior (` login.ts ` )
110- - Data-access error-path behavior (` getData.ts ` )
111- - Privacy utility/error-path behavior (` privacyEdit.ts ` )
146+ Component test suite:
112147
113- ### Run tests
148+ - Location: ` tests/components/ `
149+ - Command: ` yarn test:component `
150+ - Includes focused ` ThemeSwitch ` + ` TheFooter ` tests and full ` .vue ` smoke mounts in ` tests/components/AllComponentsSmoke.test.ts `
114151
115- ``` bash
116- yarn test:unit
117- ```
118-
119- ### Run Vue component tests
120-
121- ``` bash
122- yarn test:component
123- ```
124-
125- Component suite includes:
126-
127- - focused behavior tests for ` ThemeSwitch ` and ` TheFooter ` inside ` tests/components/AllComponentsSmoke.test.ts `
128- - an all-components smoke suite in the same file that mounts every ` .vue ` file under ` src/components/** `
129-
130- ### Coverage tracker
152+ Coverage tracker:
131153
132154``` bash
133155yarn test:unit:coverage
134156```
135157
136158This command:
137159
138- - runs the full unit- test suite with Node coverage enabled
160+ - runs the unit test suite with Node coverage enabled
139161- writes machine-readable output to ` coverage/unit-coverage-summary.json `
140162- writes a readable summary to ` coverage/unit-coverage-summary.txt `
141163
142- ### Compliance thresholds
143-
144- ``` bash
145- yarn test:unit:compliance
146- yarn test:component:compliance
147- ```
148-
149- Default enforced thresholds for tracked files:
164+ Compliance thresholds (gating):
150165
151166- line coverage: ` 98% `
152167- branch coverage: ` 90% `
153168- function coverage: ` 100% `
154169
155- Tracked (gating) files:
170+ Tracked files:
156171
157172- ` src/components/fileUploadUtils.ts `
158173- ` src/components/mime_types.js `
@@ -165,60 +180,51 @@ Advisory (non-gating) coverage is also reported for:
165180- ` src/components/getData.ts `
166181- ` src/components/privacyEdit.ts `
167182
168- You can override thresholds with env vars:
183+ Override thresholds with env vars:
169184
170185- ` UNIT_COVERAGE_LINES `
171186- ` UNIT_COVERAGE_BRANCHES `
172187- ` UNIT_COVERAGE_FUNCS `
173188
174- ## Git Workflow
175-
176- ### Commit-time compliance check
189+ ### Git Workflow
177190
178- A pre-commit hook is defined at ` .githooks/pre-commit ` and runs :
191+ Commit-time compliance check :
179192
180- ``` bash
181- yarn test: compliance
182- ```
193+ - Hook file: ` .githooks/pre-commit `
194+ - Command run by hook: ` node ./scripts/precommit- compliance.mjs `
195+ - Hook output is intentionally concise on pass and detailed on failure.
183196
184197Install hooks locally:
185198
186199``` bash
187200yarn hooks:install
188201```
189202
190- If automatic hook setup is blocked in your environment, run :
203+ If automatic hook setup is blocked in your environment:
191204
192205``` bash
193206git config --local core.hooksPath .githooks
194207```
195208
196- ### CI compliance check
209+ CI compliance check:
197210
198- GitHub Actions workflow ` .github/workflows/unit-test-compliance.yml ` also enforces:
211+ - Workflow: ` .github/workflows/unit-test-compliance.yml `
212+ - Enforces unit tests, component tests, and coverage thresholds.
199213
200- - unit tests passing
201- - component tests passing
202- - coverage thresholds passing
214+ ### Web-App Version Tags
203215
204- ## Web-App Version Tags
205-
206- ### Current app version
216+ Current app version:
207217
208218- ` package.json ` version: ` 1.0.0 `
209219- web-app release tag convention: ` web-app-v<version> `
210220- current computed web-app tag: ` web-app-v1.0.0 `
211221
212- ### In-app visibility
213-
214- The footer displays both:
215-
216- - semantic app version (` vX.Y.Z ` )
217- - computed web-app release tag (` web-app-vX.Y.Z ` )
222+ In-app visibility:
218223
219- Both values are injected at build time from ` package.json ` via Vite defines.
224+ - Footer displays semantic version (` vX.Y.Z ` ) and computed release tag (` web-app-vX.Y.Z ` )
225+ - Values are injected at build time from ` package.json ` via Vite defines
220226
221- ### Recommended release workflow
227+ Recommended release workflow:
222228
2232291 . Update version:
224230
@@ -241,19 +247,19 @@ git tag web-app-vX.Y.Z
241247git push origin vX.Y.Z web-app-vX.Y.Z
242248```
243249
244- ## Deployment
250+ ### Deployment
245251
246- The project is configured for GitHub Pages deployment.
252+ GitHub Pages deployment setup:
247253
248254- ` vite.config.js ` uses ` /solid-cockpit/ ` base path for production
249255- ` yarn github-post-build ` prepares route folders in ` dist/ `
250256- ` yarn deploy ` publishes ` dist/ ` via ` gh-pages `
251257
252- ## Dependency Versions
258+ ### Dependency Versions
253259
254- Below are the direct dependency versions currently declared in ` package.json ` .
260+ Direct dependency versions currently declared in ` package.json ` .
255261
256- ### Runtime dependencies
262+ Runtime dependencies:
257263
258264| Package | Version |
259265| --- | --- |
@@ -280,59 +286,27 @@ Below are the direct dependency versions currently declared in `package.json`.
280286| ` vuetify ` | ` ^3.5.14 ` |
281287| ` z3-solver ` | ` ^4.15.3 ` |
282288
283- ### Development dependencies
289+ Development dependencies:
284290
285291| Package | Version |
286292| --- | --- |
287293| ` @tsconfig/node20 ` | ` ^20.1.5 ` |
288294| ` @typescript-eslint/eslint-plugin ` | ` ^5.4.0 ` |
289295| ` @typescript-eslint/parser ` | ` ^5.4.0 ` |
296+ | ` @vitest/coverage-v8 ` | ` 2.1.9 ` |
297+ | ` @vue/test-utils ` | ` 2.4.6 ` |
290298| ` eslint ` | ` ^7.32.0 ` |
291299| ` eslint-config-prettier ` | ` ^8.3.0 ` |
292300| ` eslint-plugin-prettier ` | ` ^4.0.0 ` |
293301| ` eslint-plugin-vue ` | ` ^8.0.3 ` |
294302| ` gh-pages ` | ` ^5.0.0 ` |
303+ | ` jsdom ` | ` 24.1.3 ` |
295304| ` prettier ` | ` ^2.4.1 ` |
296305| ` typescript ` | ` ^5.0.0 ` |
306+ | ` vitest ` | ` 2.1.9 ` |
297307
298- ## Ways to Get a Solid Pod
299-
300- - [ Community Solid Server] ( https://communitysolidserver.github.io/CommunitySolidServer/latest/ ) : host a Pod locally or on your own server
301- - [ Solidcommunity.net] ( https://solidcommunity.net/ ) : community-hosted Solid Pods
302- - [ Other Solid Pod Hosting Services] ( https://solidproject.org/for-developers#hosted-pod-services )
303-
304- ## Guides
305-
306- ### TRIPLE guide
307-
308- See [ TRIPLE-guide.md] ( ./TRIPLE-guide.md ) .
309-
310- ### Solid Pod VoID file generation
311-
312- Tool reference:
313-
314- - < https://github.com/JervenBolleman/void-generator/tree/solid-pod-support >
315-
316- Example:
317-
318- ``` bash
319- mvn package
320- java -jar target/void-generator-0.7-SNAPSHOT-uber.jar \
321- --from-solid-pod [URL-to-solid-pod] \
322- --void-file void.ttl \
323- -i [URL-to-solid-pod]/void.ttl \
324- --repository [URL-to-solid-pod]
325- ```
326-
327- Then upload ` void.ttl ` to the pod root using the app's ` Data Upload ` page.
328-
329- ## Contributing
308+ ### Contributing
330309
331310- Open pull requests against the ` main ` branch
332311- Use GitHub Issues for bug reports
333312- Use GitHub Discussions for broader questions and ideas
334-
335- ## Contact
336-
337- - Discussions: < https://github.com/KNowledgeOnWebScale/solid-cockpit/discussions >
338- - Issues: < https://github.com/KNowledgeOnWebScale/solid-cockpit/issues >
0 commit comments