Προσωπικό Παραδομένο 2024–present

TaskFlow

Lead Developer

Offline-first task-dispatch PWA για ομάδες φιλοξενίας. Realtime updates μέσω Socket.IO, BullMQ scheduler για επαναλαμβανόμενες εργασίες, IndexedDB mutation queue ώστε η εφαρμογή να δουλεύει όταν πέφτει το Wi-Fi. Multi-tenant SaaS, live και δωρεάν στο tasks.jimrarras.space.

Stack

  • Fastify
  • PostgreSQL + Drizzle
  • Redis + BullMQ
  • Socket.IO
  • React 19
  • TanStack Query
  • IndexedDB
TaskFlow

Το σύστημα

Το TaskFlow είναι ένα offline-first task-dispatch PWA σχεδιασμένο για ομάδες φιλοξενίας (housekeeping ξενοδοχείου, prep εστιατορίου, event venues) όπου το προσωπικό κινείται μεταξύ ζωνών με κακό Wi-Fi και stale συνδέσεις. Η εφαρμογή συνεχίζει να δουλεύει όταν πέφτει το δίκτυο: εργασίες που δημιουργούνται offline μπαίνουν σε queue στο IndexedDB της συσκευής και reconcile με τον server όταν επιστρέψει η σύνδεση. Realtime updates μέσω Socket.IO κρατούν όλους συγχρονισμένους όταν είναι online. Multi-tenant ώστε πολλές ομάδες να μοιράζονται το ίδιο deployment με isolated data. Live και δωρεάν στο tasks.jimrarras.space.

Αρχιτεκτονική

  • API: Fastify (Node 22) + PostgreSQL + Drizzle ORM + Redis
  • Worker: BullMQ για scheduled task generation και notification jobs
  • Realtime: Socket.IO με room-based broadcasting ανά tenant
  • Frontend: React 19 + Vite + TanStack Query ως PWA με service worker
  • Offline: IndexedDB mutation queue με last-write-wins reconciliation
  • Multi-tenancy: row-level με tenant_id σε όλα τα data tables
  • Deployment: Coolify, single instance, vanilla container

Η συνεισφορά μου

Έχτισα το σύστημα μόνος μου. Η αρχιτεκτονική απόφαση που μέτρησε περισσότερο ήταν το IndexedDB mutation queue με last-write-wins reconciliation. Όταν ένας χρήστης δημιουργεί ή ενημερώνει εργασία offline, το mutation μπαίνει σε queue τοπικά με client-generated ID, όταν επιστρέψει το δίκτυο το queue ξαναπαίζει έναντι του server, και αν υπάρχει conflict ο server κρατά την τελευταία χρονικά. Last-write-wins είναι η σωστή σημασιολογία για single-user task editing σε hospitality shifts, προβλέψιμη, χωρίς UI επίλυσης συγκρούσεων. Ο service worker του PWA κάνει cache το app shell ώστε να φορτώνει σε λιγότερο από δευτερόλεπτο ακόμα και σε cold mobile cache, που είναι η διαφορά ανάμεσα στο να το χρησιμοποιεί το προσωπικό και στο να το παρατάει σε κακό σήμα.

Αποτελέσματα

  • Live multi-tenant SaaS στο tasks.jimrarras.space, δωρεάν για ομάδες που το θέλουν
  • Offline-first ώστε να συνεχίζει να δουλεύει σε κακό hospitality Wi-Fi
  • Realtime updates ανάμεσα στους συναδέλφους μέσω Socket.IO όταν είναι online
  • BullMQ-scheduled επαναλαμβανόμενες εργασίες (καθημερινό room turnover, shift handover checklists)

Σύνδεσμοι

Παρόμοια έργα

  • Multi-tenant Calendar SaaS: άλλο multi-tenant SaaS, αλλά για κρατήσεις ραντεβού αντί για task dispatch
  • Γηροκομείο collection-app: άλλο offline-first mobile workflow, αλλά native Android scanner αντί για PWA
Επικοινωνία