# QKeep / КуЗаметки

Android notes app published as QKeep and shown on Android as КуЗаметки. It stores notes locally, supports pinned notes, formatted text notes, checklist notes with configurable list behavior, image and drawing notes, voice notes, labels, QSfera collaborators, timed reminders, search filters by note type and color, sending notes to other Android apps, manual card ordering, archive and trash sections, and syncs them with the Keeper Notes REST service in `G:\Repos\QSfera\Server\services\keepernotes`.

## Build

The project follows the same baseline as `G:\Repos\QSfera\Android`: Android Gradle Plugin 8.7.2, Kotlin 1.9.20, compile SDK 35, target SDK 35, min SDK 26, and Java 17.

```powershell
$env:JAVA_HOME='C:\Program Files\Android\Android Studio\jbr'
$env:ANDROID_HOME='C:\Users\seven\AppData\Local\Android\Sdk'
$env:ANDROID_SDK_ROOT=$env:ANDROID_HOME
.\gradlew.bat :keeperApp:assembleDebug
```

The default backend URL is `https://qsfera.kusoft.xyz/keeper-notes`. The default QSfera cloud used for first-run authorization is `https://qsfera.kusoft.xyz`.

To use another backend URL:

```powershell
.\gradlew.bat :keeperApp:assembleDebug -PkeeperApiBaseUrl=https://example.org
```

To use another QSfera cloud URL for authorization:

```powershell
.\gradlew.bat :keeperApp:assembleDebug -PqsferaCloudBaseUrl=https://qsfera.example.org
```

## Server

From `G:\Repos\QSfera\Server`:

```powershell
go run .\services\keepernotes\cmd\keepernotes -addr :8098 -data .\keeper-notes.json
```

## Publish to Argus

The Argus publisher script uses the admin endpoints exposed by `https://argus.kusoft.xyz/site.js`:

* `POST /api/admin/session/login`
* `PUT /api/admin/apps/{slug}`
* `POST /api/admin/apps/{slug}/releases`

Set credentials in the current shell, then run:

```powershell
$env:ARGUS_USERNAME='admin'
$env:ARGUS_PASSWORD='<password>'
.\scripts\publish-argus.ps1
```

Default publish metadata:

* slug: `keeper-android`
* package: `eu.qsfera.keeper`
* name: `QKeep`
* Android label: `КуЗаметки`
* version: `0.1.21`
* Android version code: `22`
* channel: `stable`
