N Nizar Djassim Software developer

Case study 01 / 02

Quartz360

Time tracking, projects and file storage for freelancers and teams, on web and mobile.

  • Web & app development
  • UI engineering & design systems
  • AI integration & workflows
Type
Multi-tenant SaaS
Scope
Database to mobile app
Platform
Web + mobile app
Billing
Stripe, per seat
Quartz360 — dashboard
Quartz360 dashboard with the running timer, today's totals and the task list.
Quartz360 timer screen on a phone.
German interface, demo data

What it does

I built Quartz360, a time-tracking and workspace app for freelancers and teams. Staff clock in and out, log breaks and travel time, and book hours to projects. Owners and managers plan shifts, approve absences and read monthly reports.

  • Clock in on web or phone, with breaks, travel time and a project per session
  • Shift schedules, absence requests with approval, and monthly reports
  • Projects with tasks, rich-text documents and spreadsheets
  • File storage with per-person access and public share links
  • In beta: German e-invoices (ZUGFeRD) and an AI assistant

Worth mentioning

The server owns the clock.

The apps only display time calculated from server timestamps, so closing or reloading never loses or double-counts time.

Files upload straight from the browser to storage.

The server then re-checks the real size, so storage limits can't be bypassed.

The AI assistant works with each user's own key.

The Anthropic key is stored encrypted, and the assistant can only read files that user is allowed to open.

Tech stack

Frontend
React, TypeScript, Vite, HeroUI, Tailwind CSS, Jotai, TipTap, Univer, Astro (marketing site)
Backend
Node.js, Express, TypeScript
Database
PostgreSQL
Mobile
Expo, React Native
Auth
JWT, bcrypt
Payments
Stripe
AI
Anthropic Claude API
Testing
Jest, Supertest, Playwright

Infrastructure

Docker and Coolify
One image per service, deployed with Coolify on a Hetzner server.
CI/CD pipeline
Builds and deploys each service automatically.
Hetzner Object Storage
Private file storage (S3-compatible, EU), reached through short-lived signed links.
Brevo
Transactional email for verification, password reset, invitations and notifications.
Stripe
Per-seat subscriptions with checkout, customer portal and webhooks.
KoSIT validator
A separate Java service that checks e-invoices against the EN 16931 standard.