Add README.en.md
This commit is contained in:
parent
46ca54a831
commit
584283b513
350
README.en.md
Normal file
350
README.en.md
Normal file
@ -0,0 +1,350 @@
|
|||||||
|
# Arbeidspuls
|
||||||
|
|
||||||
|
[Les denne README-en på norsk](README.md)
|
||||||
|
|
||||||
|
**Arbeidspuls** is a lightweight, privacy-friendly web app for self-reporting work ability, function, energy, symptoms and strain over time.
|
||||||
|
|
||||||
|
It is designed for practical situations where a person needs to document actual function in a work setting, such as work trials, gradual return-to-work processes, long-term illness, fatigue or other conditions that affect short-term and long-term capacity.
|
||||||
|
|
||||||
|
Arbeidspuls is quick to use from a phone, while still giving advisors a structured way to review trends, report details, follow-ups and notes.
|
||||||
|
|
||||||
|
> Arbeidspuls is a tool for structured self-reporting and review. It does not replace medical assessment, occupational health evaluation or formal decisions.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Why host Arbeidspuls?
|
||||||
|
|
||||||
|
Arbeidspuls is suitable for organizations or professionals who need a simple, low-friction way to collect work-function self-reports without operating a heavy case management system or central database.
|
||||||
|
|
||||||
|
It is especially relevant for:
|
||||||
|
|
||||||
|
- work-fitness evaluations
|
||||||
|
- work trials
|
||||||
|
- gradual return-to-work processes
|
||||||
|
- documenting function, strain and recovery
|
||||||
|
- advisors, case workers or professionals reviewing reports
|
||||||
|
- environments where data minimization and local storage matter
|
||||||
|
|
||||||
|
Arbeidspuls is built as a static web app/PWA. It can normally be hosted as ordinary static files.
|
||||||
|
|
||||||
|
It normally does not require:
|
||||||
|
|
||||||
|
- a server database
|
||||||
|
- login
|
||||||
|
- a backend API
|
||||||
|
- a production Node process
|
||||||
|
- central storage of sensitive reports
|
||||||
|
|
||||||
|
The user owns their data locally in the browser and actively shares it by exporting a JSON file.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Key features
|
||||||
|
|
||||||
|
- quick self-reporting from a phone
|
||||||
|
- 1–5 scales for core function areas
|
||||||
|
- optional details for workplace, work time, task type, limitations and accommodations
|
||||||
|
- follow-up after a work session to capture delayed worsening/recovery
|
||||||
|
- overview with time-based trend graph
|
||||||
|
- local JSON import/export
|
||||||
|
- advisor view for reviewing exported reports
|
||||||
|
- advisor notes per user, report and follow-up
|
||||||
|
- fullscreen graph analysis for advisors
|
||||||
|
- local report integrity checks
|
||||||
|
- Norwegian and English user interface
|
||||||
|
- installable as a PWA/WebApp on phones and tablets
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Screenshots
|
||||||
|
|
||||||
|
Screenshots are located in [`screenshots/`](screenshots/).
|
||||||
|
|
||||||
|
### Register report
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
The user can save a report with only a few taps. Core fields use quick 1–5 choices, while optional details can be opened when needed.
|
||||||
|
|
||||||
|
### Follow-up
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Follow-up is used after a work session, for example later the same day, the next day or later. This is useful when symptoms or fatigue appear after a delay.
|
||||||
|
|
||||||
|
### Overview and trend
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
The overview shows reports, follow-ups, total score, category scores and trend over time. The graph uses the actual time distance between reports.
|
||||||
|
|
||||||
|
### Report details
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
The user can open a report to review details and optionally delete local reports.
|
||||||
|
|
||||||
|
### Privacy and data management
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
The privacy page explains local storage, export/import, sharing with an advisor and deletion of local data.
|
||||||
|
|
||||||
|
### Advisor review
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
The advisor view lets an advisor import JSON files from users, view reports, read details, add notes and compare development over time.
|
||||||
|
|
||||||
|
### Fullscreen graph analysis
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
In advisor mode, the graph can be opened in fullscreen for more precise review, time filtering and inspection of individual data points.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## For users
|
||||||
|
|
||||||
|
### Open the service
|
||||||
|
|
||||||
|
Go to:
|
||||||
|
|
||||||
|
```text
|
||||||
|
https://arbeidspuls.rolfsvaag.no
|
||||||
|
```
|
||||||
|
|
||||||
|
Arbeidspuls works on phones, tablets and desktop computers. It is phone-first, so reporting should be quick and low effort.
|
||||||
|
|
||||||
|
### Install it as an app on a phone or tablet
|
||||||
|
|
||||||
|
Arbeidspuls can be installed as a PWA/WebApp.
|
||||||
|
|
||||||
|
On Android/Chrome:
|
||||||
|
|
||||||
|
1. open Arbeidspuls in Chrome
|
||||||
|
2. open the browser menu
|
||||||
|
3. choose **Install app** or **Add to Home screen**
|
||||||
|
|
||||||
|
On iPhone/iPad/Safari:
|
||||||
|
|
||||||
|
1. open Arbeidspuls in Safari
|
||||||
|
2. tap the share button
|
||||||
|
3. choose **Add to Home Screen**
|
||||||
|
|
||||||
|
After this, Arbeidspuls can be opened like a normal app from the home screen.
|
||||||
|
|
||||||
|
### Save a report
|
||||||
|
|
||||||
|
Choose **Register**, fill in the core fields and press **Save report**.
|
||||||
|
|
||||||
|
The core fields are:
|
||||||
|
|
||||||
|
- current work ability
|
||||||
|
- energy level
|
||||||
|
- mental clarity / concentration
|
||||||
|
- symptom burden
|
||||||
|
- effort / strain
|
||||||
|
- whether you can continue, need a break, need an easier task or want to stop
|
||||||
|
|
||||||
|
Optional details can be used if you want to add more context, such as workplace, work time, physical/mental energy, task type, limitations, what helped and a short comment.
|
||||||
|
|
||||||
|
### Save a follow-up
|
||||||
|
|
||||||
|
Choose **Follow-up** to record how you are doing after a work session.
|
||||||
|
|
||||||
|
This can be used to document:
|
||||||
|
|
||||||
|
- whether you are worse than before the work session
|
||||||
|
- delayed symptoms
|
||||||
|
- recovery
|
||||||
|
- a short comment
|
||||||
|
|
||||||
|
Follow-up is especially useful if the reaction comes after the work session itself.
|
||||||
|
|
||||||
|
### View overview
|
||||||
|
|
||||||
|
Choose **Overview** to see previous reports, follow-ups and the trend graph.
|
||||||
|
|
||||||
|
The overview shows, among other things:
|
||||||
|
|
||||||
|
- total score
|
||||||
|
- work ability
|
||||||
|
- energy
|
||||||
|
- mental clarity
|
||||||
|
- symptoms
|
||||||
|
- strain
|
||||||
|
- follow-ups linked to reports
|
||||||
|
|
||||||
|
### Export data to an advisor
|
||||||
|
|
||||||
|
If an advisor or another person needs to review your reports:
|
||||||
|
|
||||||
|
1. go to **Privacy**
|
||||||
|
2. choose **Export JSON**
|
||||||
|
3. send the JSON file to the advisor, for example by email or another agreed channel
|
||||||
|
|
||||||
|
The JSON file may contain sensitive health and function-related information. Only share it with people who should have access.
|
||||||
|
|
||||||
|
### Import earlier data
|
||||||
|
|
||||||
|
If you have changed devices, changed browser or lost local data, you can import a previously exported JSON file from **Privacy**.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## For advisors
|
||||||
|
|
||||||
|
Advisor mode is available at:
|
||||||
|
|
||||||
|
```text
|
||||||
|
https://arbeidspuls.rolfsvaag.no/veileder
|
||||||
|
```
|
||||||
|
|
||||||
|
or:
|
||||||
|
|
||||||
|
```text
|
||||||
|
https://arbeidspuls.rolfsvaag.no/evaluator
|
||||||
|
```
|
||||||
|
|
||||||
|
### Import reports
|
||||||
|
|
||||||
|
1. Ask the user to export JSON from **Privacy**
|
||||||
|
2. Open advisor mode
|
||||||
|
3. Choose the JSON file
|
||||||
|
4. Give the user a name or internal identifier
|
||||||
|
|
||||||
|
The data is stored locally in the advisor's browser. Arbeidspuls does not send the reports to a central server.
|
||||||
|
|
||||||
|
### Review reports
|
||||||
|
|
||||||
|
Advisors can:
|
||||||
|
|
||||||
|
- view a trend graph for the selected user
|
||||||
|
- filter by time period
|
||||||
|
- open fullscreen graph analysis
|
||||||
|
- read report details
|
||||||
|
- read follow-ups
|
||||||
|
- view total score and category scores
|
||||||
|
- write a general note for the user
|
||||||
|
- write notes per report
|
||||||
|
- write notes per follow-up
|
||||||
|
- export/import advisor backup
|
||||||
|
|
||||||
|
### Score and function level
|
||||||
|
|
||||||
|
Arbeidspuls shows total score and category scores as internal function indicators.
|
||||||
|
|
||||||
|
Scores are intended for overview and trend support, not as a medical conclusion.
|
||||||
|
|
||||||
|
Advisor mode uses score bands such as:
|
||||||
|
|
||||||
|
- **Exceptionally high function level**
|
||||||
|
- **Expected function level**
|
||||||
|
- **Moderately reduced function**
|
||||||
|
- **Significantly reduced function**
|
||||||
|
- **Very low function**
|
||||||
|
|
||||||
|
75% roughly corresponds to an expected/good reported function level, while 100% corresponds to an exceptionally high function level.
|
||||||
|
|
||||||
|
### Integrity checks
|
||||||
|
|
||||||
|
Reports may contain local integrity metadata. If a report is missing verification or appears to have been changed, a warning is shown in advisor mode.
|
||||||
|
|
||||||
|
This is a technical check. It is not a legal guarantee and does not prove the medical truth of a report.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Privacy and local storage
|
||||||
|
|
||||||
|
Arbeidspuls stores data locally in the browser on the device being used.
|
||||||
|
|
||||||
|
This means:
|
||||||
|
|
||||||
|
- reports are not automatically sent to a server
|
||||||
|
- the standard app uses no central database
|
||||||
|
- data remains on the user's device/browser
|
||||||
|
- clearing browser data may delete reports
|
||||||
|
- changing device or browser requires export/import
|
||||||
|
|
||||||
|
The user must export JSON to share data with an advisor or move data to another device.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Technical overview
|
||||||
|
|
||||||
|
Arbeidspuls is a static React/Vite app with local browser storage.
|
||||||
|
|
||||||
|
Typical production build:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm ci
|
||||||
|
npm run build
|
||||||
|
```
|
||||||
|
|
||||||
|
The contents of `dist/` are then hosted as static files.
|
||||||
|
|
||||||
|
For an SPA, the web server should fall back to `index.html`, for example in Nginx:
|
||||||
|
|
||||||
|
```nginx
|
||||||
|
location / {
|
||||||
|
try_files $uri $uri/ /index.html;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Technology
|
||||||
|
|
||||||
|
- React
|
||||||
|
- TypeScript
|
||||||
|
- Vite
|
||||||
|
- PWA manifest
|
||||||
|
- service worker
|
||||||
|
- local browser storage
|
||||||
|
- JSON import/export
|
||||||
|
- local advisor view
|
||||||
|
- Norwegian/English UI
|
||||||
|
|
||||||
|
### Production
|
||||||
|
|
||||||
|
Arbeidspuls normally only requires static hosting. Running a Node server in production is not required.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
Install dependencies:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm ci
|
||||||
|
```
|
||||||
|
|
||||||
|
Run the development server:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
Build production files:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run build
|
||||||
|
```
|
||||||
|
|
||||||
|
Run tests:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm test
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Important note
|
||||||
|
|
||||||
|
Arbeidspuls is a tool for structured self-reporting and review. It should not be used as the sole basis for medical, legal or employment-related decisions.
|
||||||
|
|
||||||
|
Total score and category scores are internal function indicators for overview and trends. They are not medically validated test results.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
See [`LICENSE`](LICENSE).
|
||||||
Loading…
Reference in New Issue
Block a user