# ElysiaJS Boilerplate Szablon startowy do zajęć z ElysiaJS: Bun + ElysiaJS + TypeScript, z podpiętym MySQL (Drizzle ORM) i Redisem do wspólnych baz danych z kursu. ## Uruchomienie ```bash bun install bun run db:push # tworzy tabelę `notes` z src/db/schema.ts bun run dev ``` Wejdź na http://localhost:3000/swagger - tam znajdziesz dokumentację API (generowaną automatycznie z endpointów w `src/index.ts`). ## Co tu jest - `src/index.ts` - główna aplikacja: przykładowe endpointy pokazujące odczyt i zapis do MySQL (`src/db`) oraz do Redisa (`src/redis.ts`). Usuń te przykłady, gdy zrozumiesz zasadę działania i zaczniesz pisać własny kod. - `src/db/schema.ts` - definicje tabel w Drizzle. Dodawaj tu kolejne tabele, a potem uruchom `bun run db:push`, żeby zsynchronizować je z bazą MySQL (bez plików migracji - `push` po prostu porównuje schemat z bazą na żywo). - `src/db/index.ts` / `src/redis.ts` - gotowe klienty, które czytają dane połączenia ze zmiennych środowiskowych. W Twoim workspace w Coderze są one już ustawione (`MYSQL_*`, `REDIS_*`) - nie musisz nigdzie wpisywać hasła. - `.env.example` - potrzebne tylko, jeśli chcesz uruchomić projekt poza workspace'em w Coderze, na własnym MySQL/Redis. ## Uwagi - Twój użytkownik Redis widzi tylko klucze pod `student::*` (wymuszone po stronie serwera) - dlatego `src/index.ts` dodaje ten prefiks do kluczy w cache. Klucze spoza tego prefiksu zostaną odrzucone. - Twój użytkownik MySQL ma dostęp tylko do swojej własnej bazy - nie musisz nic dodatkowo podawać poza tym, co jest już w `MYSQL_DATABASE`.