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.
Το σύστημα
Το 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)
Σύνδεσμοι
- Live: tasks.jimrarras.space
Παρόμοια έργα
- Multi-tenant Calendar SaaS: άλλο multi-tenant SaaS, αλλά για κρατήσεις ραντεβού αντί για task dispatch
- Γηροκομείο collection-app: άλλο offline-first mobile workflow, αλλά native Android scanner αντί για PWA