Initial Android app: license list and key generation.

Kotlin Compose admin client for TTRPG Player license server with branding and settings for server URL and admin token.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Ivan Fontosh
2026-06-28 12:35:39 +08:00
commit bbb861f920
30 changed files with 1459 additions and 0 deletions
+53
View File
@@ -0,0 +1,53 @@
# TTRPG License Manager
Android-приложение для администрирования лицензий **TTRPG Player** через сервер [DndGamePlayerLicenseServer](https://git.mailib.ru/ifontosh/DndGamePlayerLicenseServer).
## Возможности
- **Лицензии** — список всех продуктовых ключей с параметрами (`sub`, `pid`, лимит устройств, срок, статус отзыва, активированные `deviceId`).
- **Новый ключ** — генерация продуктового ключа через `POST /v1/admin/product-keys`.
- **Настройки** — URL сервера и admin token (`LICENSE_ADMIN_TOKEN`).
## Требования
- Android Studio Ladybug (2024.2+) или новее
- JDK 17
- Android SDK 35
## Сборка
1. Откройте проект в Android Studio.
2. При первом запуске укажите в **Настройках**:
- URL: `https://license.mailib.ru/` (или локальный сервер)
- Admin token с сервера (`LICENSE_ADMIN_TOKEN`)
3. Run на устройстве или эмуляторе.
```bash
./gradlew assembleDebug
```
## API сервера
Приложение использует admin-эндпоинты (Bearer token):
| Метод | Путь | Описание |
|-------|------|----------|
| GET | `/v1/admin/licenses` | Список лицензий |
| POST | `/v1/admin/product-keys` | Создание ключа |
Перед использованием приложения задеплойте обновлённый сервер с этими эндпоинтами.
## Логотип
Иконка и брендинг — логотип TTRPG Player (фиолетовая молния `#8B5CF6`).
## Локальная разработка с сервером
```bash
cd DndGamePlayerLicenseServer
cp data.example.json data.json
# задайте LICENSE_PRIVATE_KEY_PEM
npm start
```
В приложении укажите URL `http://10.0.2.2:3847/` (эмулятор) и admin token.