Lalabase
Tickets, Doku, Zeiterfassung und Kundengespräche an einem Ort, durchsuchbar per KI. Für Softwarefirmen mit Kundenprojekten. Open Source: auf deinem eigenen Server oder in unserer Cloud in Deutschland.
Translation pending
Check in to UT SHPE events, earn points, and follow the chapter leaderboard.
BusinessTypeScript · JavaScriptGitHub @UTSHPEOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
A web app / point system for the amazing top 12 team!
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
A web app / point system for the amazing top 12 team!
Built with Next.js (App Router), React 19, Tailwind CSS v4,
and Supabase.
Open http://localhost:3000.
Local secrets live in .env.local (git-ignored). The same values must be set in
the Vercel project settings for Production, Preview, and Development.
Creating an event mirrors it onto the shared chapter calendar. The service
account credential is stored as base64 of the whole JSON key file rather than
as separate email/key variables:Read the full README ↗A web app / point system for the amazing top 12 team!
Built with Next.js (App Router), React 19, Tailwind CSS v4, and Supabase.
npm install
npm run dev
Open http://localhost:3000.
npm run dev # dev server at localhost:3000
npm run build # production build
npm run lint # ESLint
npm run test:calendar # verify the Google Calendar bridge end-to-end
npx tsc --noEmit # type-check without building
Local secrets live in .env.local (git-ignored). The same values must be set in
the Vercel project settings for Production, Preview, and Development.
| Variable | Purpose |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | Supabase project URL |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Supabase anon key |
SUPABASE_SERVICE_ROLE_KEY | Server-only key for reads that bypass RLS |
GOOGLE_CREDENTIALS_B64 | Base64 of the entire service-account JSON |
GOOGLE_CALENDAR_ID | The @group.calendar.google.com chapter calendar |
Creating an event mirrors it onto the shared chapter calendar. The service account credential is stored as base64 of the whole JSON key file rather than as separate email/key variables:
base64 -w0 ~/Downloads/<project>-<keyid>.json
That is deliberate. Storing the PEM in its own env var means the newlines get
escaped to literal \n, and Node's OpenSSL then rejects the key with
error:1E08010C:DECODER routines::unsupported. Base64-encoding the whole file
lets JSON.parse restore real newlines for free, with no .replace() shim to
get wrong across environments.
The calendar must be shared with the bot's client_email (printed by
npm run test:calendar) with "Make changes to events" permission.
A calendar failure never blocks event creation — the check-in code is still issued and saved, and the officer sees a warning banner explaining what failed.