Cash register for local events, with receipt printing
  • TypeScript 52.3%
  • Svelte 40.2%
  • C++ 5.4%
  • Dockerfile 0.6%
  • CSS 0.6%
  • Other 0.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Renovate [bot] 4dabe243ae
All checks were successful
release-ci.yaml / Generate next CI release tag (push) Successful in 6s
release.yaml / Generate next release tag (push) Successful in 3s
build-ci.yaml / Build the CI container (push) Successful in 1m24s
ci(deps): update ci dependencies (#378)
2026-10-26 03:11:25 +00:00
.devcontainer ci(deps): update ci dependencies (#375) 2026-10-25 03:22:15 +00:00
.forgejo ci(deps): update ci dependencies (#378) 2026-10-26 03:11:25 +00:00
.vscode chore: remove last references to prettier (#374) 2026-10-24 14:57:32 +00:00
data feat: initial commit 2026-06-26 12:26:00 +02:00
migrations feat: update and delete receipts, printer settings per receipt (#321) 2026-10-07 09:10:27 +00:00
packages fix(deps): update dependency vite to v8.3.5 (#376) 2026-10-25 09:27:49 +00:00
.dockerignore chore: remove last references to prettier (#374) 2026-10-24 14:57:32 +00:00
.env.example feat: pretty logger (#316) 2026-10-05 17:26:20 +00:00
.gitignore fix: image build (#216) 2026-08-27 23:59:39 +00:00
.releaserc.json ci: use new versioning (#213) 2026-08-27 11:22:17 +00:00
.renovaterc.jsonc chore: remove last references to prettier (#374) 2026-10-24 14:57:32 +00:00
.yamllint.yml feat: initial commit 2026-06-26 12:26:00 +02:00
AGENTS.md chore: remove last references to prettier (#374) 2026-10-24 14:57:32 +00:00
biome.jsonc chore: remove prettier (#372) 2026-10-24 10:53:18 +00:00
ci.Dockerfile ci(deps): update ci dependencies (#378) 2026-10-26 03:11:25 +00:00
cups.Dockerfile ci(deps): update ci dependencies (#369) 2026-10-23 05:43:28 +00:00
cups.entrypoint.sh ci: add cups image and dev container (#131) 2026-07-21 11:47:13 +00:00
cupsd.conf ci: add cups image and dev container (#131) 2026-07-21 11:47:13 +00:00
Dockerfile fix(deps): update git.zarantonello.dev/projects/events-cash-register-ci docker tag to v2026.10.24.1 (#377) 2026-10-25 03:24:26 +00:00
LICENSE docs: add README.md and AGENTS.md (#28) 2026-06-28 10:42:24 +00:00
package.json ci(deps): update ci dependencies (#375) 2026-10-25 03:22:15 +00:00
pnpm-lock.yaml fix(deps): update dependency vite to v8.3.5 (#376) 2026-10-25 09:27:49 +00:00
pnpm-workspace.yaml feat: native popovers (#300) 2026-10-03 11:23:10 +00:00
README.md chore: remove prettier (#372) 2026-10-24 10:53:18 +00:00
turbo.json chore: remove prettier (#372) 2026-10-24 10:53:18 +00:00

Events Cash Register

A web-based cash register application for event management, built with SvelteKit.

Features

  • Product management (with options)
  • User management with role-based access
  • Printer management
  • Secure authentication with session management
  • Session tracking and reporting
  • Automated cleanup via cron jobs

Tech Stack

  • Frontend: Svelte 5, Tailwind CSS 4, bits-ui, phosphor-svelte
  • Backend: SvelteKit server functions, Node.js adapter
  • Database: libSQL (SQLite) with Drizzle ORM
  • Validation: valibot
  • Authentication: Custom session-based auth with Argon2 password hashing

Getting Started

Prerequisites:

  • clang++ or g++ (c++23 compiler)
  • cups-dev (cups/cups.h for development) or cups-libs (libcups.so.2 for production)
  • meson (c++ build system)
  • ninja (c++ build system)
  • node.js (js server runtime)
  • pnpm (js package manager)
pnpm install

# Build the project.
turbo setup
turbo build

Project Structure

migrations/          # Database migration files
packages/
├── cups/            # NAPI bindings to libcups 2
└── website/         # SvelteKit application
    ├── src/
    │   ├── assets/  # Static assets (images, icons)
    │   ├── components/  # Reusable Svelte components
    │   ├── lib/     # Shared library code
    │   │   ├── auth/        # Authentication logic
    │   │   ├── entities/    # Domain entities (user, product, printer, session)
    │   │   └── server/      # Server-side utilities (database, logging, cron, etc.)
    │   └── routes/  # SvelteKit routes
    │       ├── admin/       # Admin panel (products, users, printers)
    │       └── auth/        # Authentication (sign-in)
    └── static/      # Static files (favicon, robots.txt)

License

MIT