Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/andcool-systems/json-stats
JSON Stats Widget
https://github.com/andcool-systems/json-stats
api json nestjs stats svg typescript
Last synced: 4 days ago
JSON representation
JSON Stats Widget
- Host: GitHub
- URL: https://github.com/andcool-systems/json-stats
- Owner: Andcool-Systems
- License: gpl-3.0
- Created: 2024-12-20T17:54:34.000Z (2 months ago)
- Default Branch: master
- Last Pushed: 2025-02-09T17:27:57.000Z (11 days ago)
- Last Synced: 2025-02-09T17:34:00.516Z (11 days ago)
- Topics: api, json, nestjs, stats, svg, typescript
- Language: TypeScript
- Homepage: https://json-stats.andcool.ru
- Size: 211 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# JSON Stats Widget
Виджет для профиля GitHub, выполненный в стиле редактора кода VSCode.## Описание
Важной отличительной чертой этого проекта является **парсер JavaScript объектов в формат `svg`**. Благодаря нему виджет может отображать JSON любой структуры и вложенности (насколько этого позволяет глубина рекурсии NodeJS). Каждый запрос на получение виджета генерирует SVG код на лету, кешируя только запросы к сторонним API.## Конфигурация
### Базовая конфигурация
Так как объем настроек слишком большой, на данный момент не предоставляется возможности публичного использования, поэтому если вы хотите настроить такой виджет под себя, то вам придется размещать его на своем сервере.Все параметры находятся в `.env` файле в корне проекта.
```DockerFile
GITHUB=""
GITHUB_USERNAME=""DESCRIPTION="Your description"
WAKATIME_GLOBAL="/@AndcoolSystems/c20041f4-a965-47c3-ac36-7234e622a980.json" // WakaTime Global stats
WAKATIME_LANGS="/@AndcoolSystems/eaa20c39-4e68-49d3-8760-93e93fbf1ff5.json" // WakaTime Langs statsWEATHER_API="https://weather.andcool.ru/api" // Path for weather API
WEATHER_QUERY="/?place=andcool&language=en&json=true" // Query for weather APIACTIVITY_API="https://activity.andcool.ru/" // Path for activity API
ACTIVITY_ID="t9mdtk" // ID of activityDATETIME_TIMEZONE="Etc/GMT-3" // Yours timezone
```- `GITHUB` – По этому ключу располагается access токен GitHub. Его можно получить [здесь](https://github.com/settings/tokens); Токен должен иметь права `read:org, repo`.
- `GITHUB_USERNAME` – Имя пользователя в GitHub. Можно найти в адресной строке или под ником GitHub на вашей странице.
- `DESCRIPTION` – Описание виджета. Будет добавлено ключу `description` в json.
- `WAKATIME_GLOBAL`, `WAKATIME_LANGS` – Статистика WakaTime. Можно получить [тут](https://wakatime.com/share/embed). Сгенерируйте типы чартов `Coding Activity` и `Languages` соответственно в формате JSON и вставьте их в соответствующие ключи в конфиге (исключая `https://wakatime.com/share`).- `WEATHER_API`, `WEATHER_QUERY` – URL и запрос для API погоды. Используется проект [weather.andcool.ru](https://weather.andcool.ru)
- `ACTIVITY_API`, `ACTIVITY_ID` – URL и ID для API активности. Используется проект [activity.andcool.ru](https://github.com/Andcool-Systems/Andcool-Activity)- `DATETIME_TIMEZONE` – Часовой пояс в формате JavaScript Date.
### Конфигурация генерации SVG
Вы также можете настроить стиль, отступы и другие параметры генерации SVG в файле [config.ts](https://github.com/Andcool-Systems/json-stats/blob/master/src/config.ts).
Все функции, представленные в этом конфигурационном файле вызываются **при каждой** генерации SVG.
## Быстрый старт
Для начала работы клонируйте этот репозиторий, создайте `.env` файл с конфигурацией и запустите Docker контейнер.
```bash
git clone https://github.com/Andcool-Systems/json-stats.git
cd json-statsdocker compose build
docker compose up -d
```---
**by AndcoolSystems, 19 December, 2024**