Első alkalmazás létrehozása
Előfeltételek
Szekció neve “Előfeltételek”- Bun telepítve (
bun --version≥ 1.0) - Futó Racona példány (Docker-rel vagy lokálisan) — szükséges az alkalmazás feltöltéséhez és a Racona rendszeren belüli teszteléséhez (nem csak standalone módban). Lásd: Docker-alapú futtatás
Projekt létrehozása
Szekció neve “Projekt létrehozása”A Racona-hoz elérhető CLI segítségével hozd létre az új alkalmazás projektet:
bunx @racona/cliAz interaktív wizard végigvezet a beállításokon:
- Alkalmazás ID — kebab-case azonosító (pl.
my-app) - Megjelenítési név — amit a felhasználók látnak
- Leírás — rövid leírás
- Szerző —
Név <email>formátumban - Funkciók — válaszd ki, mire van szükséged (lásd lent)
- Függőségek telepítése? — automatikusan futtatja a
bun install-t
Funkció választó
Szekció neve “Funkció választó”Fix template-ek helyett a CLI lehetővé teszi, hogy egyedi funkciókból rakd össze a projektedet:
| Funkció | Mit ad hozzá |
|---|---|
sidebar | Oldalsáv navigáció (menu.json, AppLayout mód, több oldal komponens) |
database | SQL migrációk, sdk.data.query() támogatás, lokális dev adatbázis Docker-rel |
remote_functions | server/functions.ts, sdk.remote.call(), lokális dev szerver |
notifications | sdk.notifications.send() támogatás |
i18n | locales/hu.json + locales/en.json, sdk.i18n.t() támogatás |
datatable | DataTable komponens insert formmal, sor akciókkal, teljes i18n |
Generált projekt struktúra
Szekció neve “Generált projekt struktúra”A struktúra a kiválasztott funkcióktól függ. Példa minden funkcióval engedélyezve:
my-app/├── manifest.json # Alkalmazás metaadatok és jogosultságok (kötelező)├── package.json├── vite.config.ts├── tsconfig.json├── menu.json # (ha sidebar)├── build-all.js # (ha sidebar) fő + összes komponens buildelése├── dev-server.ts # (ha remote_functions) lokális dev szerver├── docker-compose.dev.yml # (ha database) lokális Postgres├── .env.example # (ha database)├── src/│ ├── App.svelte # Fő komponens / sidebar shell│ ├── main.ts # Belépési pont, Mock SDK init│ ├── plugin.ts # IIFE build belépési pont│ └── components/ # (ha sidebar)│ ├── Overview.svelte│ ├── Settings.svelte│ ├── Datatable.svelte # (ha datatable)│ ├── Notifications.svelte # (ha notifications)│ └── Remote.svelte # (ha remote_functions)├── server/ # (ha remote_functions)│ └── functions.ts├── migrations/ # (ha database)│ ├── 001_init.sql│ └── dev/│ └── 000_auth_seed.sql├── locales/ # (ha i18n)│ ├── hu.json│ └── en.json└── assets/ └── icon.svgDatatable funkció
Szekció neve “Datatable funkció”Ha a datatable + database + remote_functions mind be van kapcsolva, a generált Datatable.svelte tartalmazza:
- Adattáblát
sdk.data.query()hívással töltve - Beszúró űrlapot a táblázat alatt (
name+valuemezők), core CSS változókkal stílusozva - Sor akciókat: Duplikálás (elsődleges) és Törlés (másodlagos, destructive) — törlés
sdk.ui.dialog()megerősítő modallal - Teljes i18n támogatást — minden szöveg
t()hívással, fordítási kulcsok alocales/mappában
A generált server/functions.ts exportálja:
export async function example(params, context) { ... }export async function insertItem(params, context) { ... }export async function deleteItem(params, context) { ... }export async function duplicateItem(params, context) { ... }Minden függvény az alkalmazás saját app__<id> adatbázis sémájára van korlátozva a context.pluginId alapján.
Sidebar funkció
Szekció neve “Sidebar funkció”Ha a sidebar be van kapcsolva, az alkalmazás AppLayout módban fut — a Racona navigációs sávot jelenít meg az alkalmazás ablakának bal oldalán. A menu.json határozza meg a navigációs elemeket:
[ { "labelKey": "menu.overview", "href": "#overview", "icon": "Info", "component": "Overview" }, { "labelKey": "menu.settings", "href": "#settings", "icon": "Settings", "component": "Settings" }]Minden component érték a src/components/ mappában lévő fájlra mutat.
Database funkció
Szekció neve “Database funkció”Ha a database be van kapcsolva, a projekt tartalmazza:
migrations/001_init.sql— kezdeti séma (a táblaneveket a Racona installer automatikusan prefixeliapp__<id>-vel)migrations/dev/000_auth_seed.sql— minimálisauthséma lokális fejlesztéshezdocker-compose.dev.yml— lokális Postgres konténer.env.example—DATABASE_URLésPORTkonfiguráció
Lokális fejlesztési workflow:
cp .env.example .envbun db:up # Lokális Postgres indításabun dev:server # Dev szerver indítása (automatikusan futtatja a migrációkat)bun dev # Vite dev szerver indítása (külön terminálban)Vagy egy lépésben:
bun dev:full # dev:server + dev párhuzamosanFüggőségek telepítése
Szekció neve “Függőségek telepítése”cd my-appbun installElső build
Szekció neve “Első build”bun run buildEz létrehozza a dist/index.iife.js fájlt (és a komponens bundle-öket, ha sidebar engedélyezve van) — ezeket tölti be a Racona.
Következő lépések
Szekció neve “Következő lépések”- Fejlesztői workflow — standalone dev mód és Mock SDK
- manifest.json referencia — minden mező részletesen
- Build és feltöltés —
.elyospkgcsomag és telepítés