Tracker korepetycji: kalendarz zajęć, status odbycia/płatności, zarobki, uczniowie ze stawkami w czasie, zajęcia cykliczne i przypomnienia push.
apps/web— Next.js (App Router, shadcn/ui, tRPC API, better-auth)apps/native— Expo (React Native, expo-router, ten sam tRPC API)packages/db— schema Drizzle + klient Postgrespackages/auth— konfiguracja better-auth (email/hasło + plugin Expo)packages/api— routery tRPC (studenci, zajęcia, stawki, zajęcia cykliczne, statystyki, push)
cp .env.example .env
docker compose up -d
pnpm install
pnpm --filter @repo/db db:push
pnpm devWeb wystartuje na http://localhost:3000. Aplikacja mobilna (pnpm --filter native dev)
łączy się z tym samym API przez EXPO_PUBLIC_API_URL.
DATABASE_URL w środowisku produkcyjnym ustaw na connection string z Neon
(sslmode=require). Reszta configu (BETTER_AUTH_URL, TRUSTED_ORIGINS,
CRON_SECRET) — jak w .env.example.
pnpm dev/pnpm build— uruchamia wszystkie aplikacje przez Turbopnpm typecheck—tsc --noEmitwe wszystkich pakietachpnpm format/pnpm format:check— Prettierpnpm --filter @repo/db db:generate|db:push|db:studio— migracje Drizzle
Pull requesty są mile widziane. Przed otwarciem przeczytaj CONTRIBUTING.md, bo każda kontrybucja wymaga zgody na opisane tam warunki licencyjne.
Kod jest udostępniany na licencji GNU Affero General Public License v3.0. Jeśli uruchamiasz zmodyfikowaną wersję jako usługę sieciową, musisz udostępnić jej kod źródłowy użytkownikom tej usługi.
Copyright © 2026 Kamil Marczak
Licencja obejmuje tylko kod. Nazwa „RozliczKorki”, logo i inne materiały z katalogu
brand/, domena rozliczkorki.pl oraz identyfikatory aplikacji pl.rozliczkorki.app
nie są nią objęte. Jeśli publikujesz własną wersję aplikacji, użyj innej nazwy, logo
i identyfikatorów.
A tutoring tracker: lesson calendar, attendance and payment status, earnings, students with rates that change over time, recurring lessons and push reminders.
apps/web— Next.js (App Router, shadcn/ui, tRPC API, better-auth)apps/native— Expo (React Native, expo-router, the same tRPC API)packages/db— Drizzle schema + Postgres clientpackages/auth— better-auth configuration (email/password + Expo plugin)packages/api— tRPC routers (students, lessons, rates, recurring lessons, statistics, push)
cp .env.example .env
docker compose up -d
pnpm install
pnpm --filter @repo/db db:push
pnpm devThe web app starts at http://localhost:3000. The mobile app (pnpm --filter native dev)
connects to the same API via EXPO_PUBLIC_API_URL.
In production, set DATABASE_URL to the Neon connection string (sslmode=require).
The rest of the config (BETTER_AUTH_URL, TRUSTED_ORIGINS, CRON_SECRET) follows
.env.example.
pnpm dev/pnpm build— runs all apps through Turbopnpm typecheck—tsc --noEmitin all packagespnpm format/pnpm format:check— Prettierpnpm --filter @repo/db db:generate|db:push|db:studio— Drizzle migrations
Pull requests are welcome. Please read CONTRIBUTING.md before opening one, as every contribution requires agreeing to the license terms described there.
The code is released under the GNU Affero General Public License v3.0. If you run a modified version as a network service, you must make its source code available to the users of that service.
Copyright © 2026 Kamil Marczak
The license covers the code only. The name “RozliczKorki”, the logo and other assets
in the brand/ directory, the rozliczkorki.pl domain and the pl.rozliczkorki.app
app identifiers are not covered by it. If you publish your own version of the app, use
a different name, logo and identifiers.