# BadgeDex Badge generátor szolgáltatás – SVG badge-ek készítése GitHub profilokhoz és projektekhez. A badge SVG formátumban tér vissza, így közvetlenül beilleszthető HTML-be, Markdownba, vagy `` tag-be. --- ## API végpontok ### `GET /badge` SVG badge-et generál egy [Simple Icons](https://simpleicons.org/) ikon és szöveg alapján. | Paraméter | Kötelező | Alapértelmezett | Leírás | Példák | |-------------|----------|-----------------|----------------------------------------------------------------------------------------|------------------------------| | `icon` | Nem | `simpleicons` | A SimpleIcons ikon neve (kisbetű, kötőjellel). | `github`, `docker`, `nginx` | | `label` | Nem | *(ikonnév)* | A badge-en megjelenő szöveg. Ha nincs megadva, az ikon neve jelenik meg. | `MyApp`, `Status` | | `style` | Nem | `rect` | Badge stílusa: `rect` (négyzetes) vagy `flat` (lekerekített sarkok). | `rect`, `flat` | | `bgicon` | Nem | `none` | Ikon háttérszín (hex vagy CSS színnév). Alapból átlátszó. | `#fff`, `#222`, `red` | | `bglabel` | Nem | `none` | Label háttérszín (hex vagy CSS színnév). Alapból átlátszó. | `#fff`, `#222`, `red` | | `color` | Nem | *(ikonszín)* | Szöveg színe (hex vagy CSS színnév). Ha nincs megadva, az ikon színét használja. | `#333`, `white` | | `size` | Nem | `24` | Ikon és badge magassága pixelben (8–256). | `16`, `32`, `64` | | `labelpos` | Nem | `right` | Szöveg pozíciója az ikonhoz képest. | `right`, `left`, `above`, `below` | | `fontweight`| Nem | `normal` | Szöveg vastagsága. | `normal`, `bold`, `600` | #### Badge példák ```markdown ![Default](http://localhost:3000/badge) ``` ``` /badge ``` ```markdown ![GitHub](http://localhost:3000/badge?icon=github&bglabel=red&color=white) ``` ``` /badge?icon=github&bglabel=red&color=white ``` ```markdown ![React](http://localhost:3000/badge?icon=react&label=React%20expert&size=64&fontweight=bold&color=white&bgicon=red&bglabel=yellow&labelpos=right) ``` ``` /badge?icon=react&label=React%20expert&size=64&fontweight=bold&color=white&bgicon=red&bglabel=yellow&labelpos=right ``` ```markdown ![Docker](http://localhost:3000/badge?icon=docker&label=Docker&style=flat&bgicon=%232496ED&color=white) ``` ``` /badge?icon=docker&label=Docker&style=flat&bgicon=%232496ED&color=white ``` ```markdown ![Left label](http://localhost:3000/badge?icon=nginx&labelpos=left) ``` ``` /badge?icon=nginx&labelpos=left ``` ```markdown ![Above label](http://localhost:3000/badge?icon=vue.js&labelpos=above&fontweight=bold&size=48) ``` ``` /badge?icon=vue.js&labelpos=above&fontweight=bold&size=48 ``` --- ### `GET /tag` Badge-szerű SVG címkét generál szöveges tartalommal (stílus: shields.io-szerű). | Paraméter | Kötelező | Alapértelmezett | Leírás | Példák | |-------------|----------|-----------------|----------------------------------------------------------------------------------------|------------------------------| | `tag` | Nem | `badgedex` | A tag tartalma (bal oldali szöveg). | `build`, `coverage`, `v1.0` | | `label` | Nem | `BadgeDex` | A label tartalma (jobb oldali szöveg). | `passing`, `95%`, `stable` | | `style` | Nem | `rect` | Stílus: `rect` (négyzetes) vagy `flat` (lekerekített, árnyékolt). | `rect`, `flat` | | `bgtag` | Nem | `none` | Tag háttérszín (hex vagy CSS színnév). | `#555`, `green`, `red` | | `bglabel` | Nem | `none` | Label háttérszín (hex vagy CSS színnév). | `#007ec6`, `blue` | | `color` | Nem | `#000000` | Szöveg színe (hex vagy CSS színnév). | `#fff`, `white` | | `size` | Nem | `24` | Badge magassága pixelben (8–256). | `16`, `20`, `32` | | `fontweight`| Nem | `normal` | Szöveg vastagsága. | `normal`, `bold`, `600` | #### Tag példák ```markdown ![Default tag](http://localhost:3000/tag) ``` ``` /tag ``` ```markdown ![Build passing](http://localhost:3000/tag?tag=build&label=passing&bgtag=%23555&bglabel=green&color=white) ``` ``` /tag?tag=build&label=passing&bgtag=%23555&bglabel=green&color=white ``` ```markdown ![Coverage](http://localhost:3000/tag?tag=coverage&label=98%25&bgtag=%23555&bglabel=%23007ec6&color=white) ``` ``` /tag?tag=coverage&label=98%25&bgtag=%23555&bglabel=%23007ec6&color=white ``` ```markdown ![License](http://localhost:3000/tag?tag=license&label=AGPL--v3&bgtag=gray&bglabel=blue&color=white) ``` ``` /tag?tag=license&label=AGPL--v3&bgtag=gray&bglabel=blue&color=white ``` ```markdown ![Version](http://localhost:3000/tag?tag=version&label=v0.0.1&style=flat&bgtag=%23333&bglabel=%23007ec6&color=white) ``` ``` /tag?tag=version&label=v0.0.1&style=flat&bgtag=%23333&bglabel=%23007ec6&color=white ``` ```markdown ![Node.js](http://localhost:3000/tag?tag=node.js&label=22.x&bgtag=%23339933&bglabel=black&color=white&size=20) ``` ``` /tag?tag=node.js&label=22.x&bgtag=%23339933&bglabel=black&color=white&size=20 ``` --- ### `GET /version` A szolgáltatás aktuális verzióját adja vissza JSON formátumban. ```json { "badgedexVersion": "0.0.1" } ``` A verzió forrása (prioritás szerint): 1. `APP_VERSION` környezeti változó 2. `VERSION` fájl a projekt gyökerében --- ## Környezeti változók A konfiguráció `.env` fájllal történik (lásd `.env.example`): | Változó | Alapértelmezett | Leírás | |-------------|-----------------|------------------------------------------------------| | `PORT` | `3000` | A szerver portja. | | `LOG_LEVEL` | `info` | Logolás szintje: `fatal`, `error`, `warn`, `info`, `debug`, `trace`. | | `NODE_ENV` | `development` | Környezet: `production`, `development`, `test`. | | `APP_VERSION` | *(nincs)* | Verzió override (opcionális, alapból a `VERSION` fájlból olvas). | --- ## Telepítés ### Node.js alkalmazásként ```bash git clone cd badgedex npm install npm start ``` A szerver a `http://localhost:3000` címen indul. ### Docker konténerként ```bash docker build --build-arg VERSION=$(cat VERSION) -t badgedex:$(cat VERSION) . docker run -dit --name badgedex -p 3000:3000 badgedex:$(cat VERSION) ``` --- ## Fejlesztés ### Tesztek futtatása ```bash npm test ``` Jest + Supertest tesztekkel, axios mockkal. A lefedettségi riport automatikusan generálódik.