# notes

## prompt

ive attached the readme of my project. this is my current task:

task description.

1. tell me which files you need to see to get the full context of the problem
2. walk me text-only through the problem and the solution
3. if we need to update multiple files: lets go through them one by one, no matter how many files
4. if we go through a file, we'll do it slowly section by section, no matter how many sections
5. how to name the current feature branch? also tell me when its time to git commit and provide a commit message
6. if we have multiple options to do something, also always provide options that reflect current industry standards and best practices
7. For every completed task, produce a ticket file in documentation/tickets/. Use ADR format (adr-) for decisions between options with long-term consequences. Use feat-/fix-/chore- for routine tasks. Always include a setup guide or summary of what was done. Suggest the filename.

## tasks

- **IMPORTANT** db migrations have to be part of the deployment pipeline!!!!!!!!!!!!!!!!!!
- put users in separate db
- pinning dependencies in package.json files
- rethink organisation of datafiles and wordlists
- admin dashboard for user management, also overview of words and languages and all their stats

## problems+thoughts

### IMPORTANT

verify if hetzner domain needs to be pushed, theres a change on hetzner and some domains need to be migrated

### redirect or page not found

subdomains or pages that dont exist should have page not found or should redirect

### docker credential helper

WARNING! Your credentials are stored unencrypted in '/home/languagedev/.docker/config.json'.
Configure a credential helper to remove this warning. See
https://docs.docker.com/go/credential-store/

### docker containers on startup?

laptop: verify if docker containers run on startup (they shouldnt)

### vps setup

- monitoring and logging (eg via chrootkit or rkhunter, logwatch/monit => mails daily with summary)
  <<<<<<< HEAD
- ~~keep the vps clean (e.g. old docker images/containers)~~ ✅ CI/CD pipeline runs `docker image prune -f` after deploy

### ~~cd/ci pipeline~~ ✅ RESOLVED

Forgejo Actions with runner on VPS, Forgejo built-in container registry. See `deployment.md`.

### ~~postgres backups~~ ✅ RESOLVED

# Daily pg_dump cron job, 7-day retention, dev laptop auto-sync via rsync. See `deployment.md`.

> > > > > > > dev

### try now option

there should be an option to try the app without an account so users can see what they would get when creating an account

### resolve deps problem

﬌ pnpm --filter web add better-auth
 WARN  2 deprecated subdependencies found: @esbuild-kit/core-utils@3.3.2, @esbuild-kit/esm-loader@2.6.5
Progress: resolved 577, reused 0, downloaded 0, added 0, done
 WARN  Issues with peer dependencies found
.
└─┬ eslint-plugin-react-hooks 7.0.1
└── ✕ unmet peer eslint@"^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0": found 10.0.3
. | +3 +
Done in 5.6s using pnpm v10.33.0

### env managing

using env files is not uptodate, use a modern, proper approach

### apple login

add option to login with apple accounts

### mail login

add option to login with email+pw

### google login

credentials are saved in Downloads/lila/ json file

app publication/verification:

Branding and Data Access (Scope) Verification

In addition to brand verification, your app may also need to be verified to use certain scopes. You can view and track this on the Verification Center page:

    Branding status: This tracks the verification of your app's public-facing brand (name, logo, etc.).
    Data access status: This tracks the verification of the specific data (scopes) your app is requesting to access.

Note: You must have a published branding status before you can request verification for data access (scopes).
Manage App Audience Configuration
Publishing Status
Manage your app publishing status in the Audience page of the Google Auth Platform.
User Type
Manage your app audience in the Audience page of the Google Auth Platform.

[link](https://support.google.com/cloud/answer/15549049?visit_id=01775982668127-2568683599515917262&rd=1#publishing-status&zippy=%2Cpublishing-status%2Cuser-type)

## tipps

- backend advice: [backend](https://github.com/MohdOwaisShah/backend)
- openapi
- bruno for api testing
- tailscale
- husky/lint-staged
- musicforprogramming.net

## openwordnet

download libraries via

```bash
python -c 'import wn; wn.download("omw-fr")';
```

libraries:

odenet:1.4
omw-es:1.4
omw-fr:1.4
omw-it:1.4
omw-en:1.4

upgrade wn package:

```bash
pip install --upgrade wn
```

check if wn is available, eg italian:

```bash
python -c "import wn; print(len(wn.words(lang='it', lexicon='omw-it:1.4')))"
```

remove a library:

```bash
python -c "import wn; wn.remove('oewn:2024')"﬌ python -c "import wn; wn.remove('oewn:2024')"
```

list all libraries:

```bash
python -c "import wn; print(wn.lexicons())"
```
