- Dimentorin: replaced anime-themed login with clean dark-mode design,
removed Google login, uses shared useLogin hook
- Backoffice: replaced custom hook login with unified design, clean
admin-only layout (no signup link)
- QR Campaign: added dark mode support to match hackathon style
All login pages now share consistent:
- Dark/light mode support
- Email + password fields with show/hide toggle
- GitHub OAuth button
- Error handling UI
- Same Tailwind class patterns
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Upgrade Nx 22.1.1 → 22.6.3 and all patch/minor dependencies
- Restructure shared libs: move business logic from utils to service
- Consolidate shadcn-ui into ui lib with atomic design pattern
- Fix container centering for landing app (Tailwind v4 compatibility)
- Fix button styling by updating @source directive in globals.css
- Fix SiCss3 → SiCss rename in react-icons 5.6
- Fix duplicate useSession export conflict
- Remove dead code, comments, and unused files
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove all Docker files, Vercel config, Verdaccio, and old CI workflow.
Standardize on nodejs_22 across devShell and nix build helpers.
Update CI to build all packages and push to Cachix on merge to develop.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(qr): add empty state for campaign & user management page to handle unexcepted null error
* fix(qr): fix empty state logic in the user management page
* Initialize a new NX project - QR campaign
* Develop QR code generator app for campaign
* Add deployment script
Add Dockerfile, docker compose, and update Nix config for deployment
* Revert package.json to fix ci
* Revert package-lock.json to ensure ci (Nix build & cache) successful