Heartbeat Pharmacy Platform
Lead Developer
Πλήρης πλατφόρμα e-commerce για ελληνικό φαρμακείο, ιδιόκτητη (όχι SaaS χρεώσεις ανά συναλλαγή), με AI να συντομεύει το SKU enrichment από μέρες σε ώρες.
Αποτελέσματα
- προϊόντα στον πρώτο πλήρη συγχρονισμό
- 10.417
- μεσοδιάστημα ενημέρωσης αποθέματος
- 1 λεπτό
- εργαλεία καταλόγου που καλεί απευθείας ένας AI βοηθός
- 69

Η κατάσταση
Το Heartbeat είναι ελληνικό φαρμακείο με φυσικό κατάστημα, όπου το απόθεμα ζούσε ήδη στο σύστημα του ταμείου. Ήθελαν δικό τους ηλεκτρονικό κατάστημα, χωρίς προμήθεια ανά παραγγελία προς πλατφόρμα τρίτου, και χωρίς να χρειαστεί δεύτερος υπάλληλος μόνο για να πληκτρολογεί περιγραφές. Με προσέλαβαν ως τον μοναδικό developer του έργου. Αντί για ένα μεγάλο πρόγραμμα παρέδωσα ξεχωριστά συστήματα που δουλεύουν μαζί, ώστε το καθένα να μπορεί να σταματήσει ή να ενημερωθεί χωρίς να πέσει το υπόλοιπο.
Ένα κατάστημα που τους ανήκει
Ο κώδικας, η βάση και ο server είναι του φαρμακείου. Καμία πλατφόρμα δεν κρατάει ποσοστό από κάθε παραγγελία, και καμία αλλαγή στην τιμολόγηση τρίτου δεν μπορεί να ανεβάσει το κόστος λειτουργίας του καταστήματος από τη μια μέρα στην άλλη.

Μια σελίδα προϊόντος πρέπει να απαντά σε όσα ρωτάει ο κόσμος στον πάγκο. Τιμή με τον ΦΠΑ καθαρά, αν υπάρχει σήμερα, σε πόσο έρχεται, και πόσο θα κοστίσουν τα μεταφορικά στη διεύθυνσή σας.

Πώς λειτουργεί
- Κατάστημα: storefront σε Next.js 16 πάνω σε backend Medusa 2, με PostgreSQL, Redis και Meilisearch.
- Αναζήτηση: Meilisearch μέσω InstantSearch, με αποτελέσματα όσο πληκτρολογεί ο πελάτης.
- Ταμείο και επικοινωνία: ενσωμάτωση τραπεζικού gateway, Turnstile στις φόρμες και email παραγγελίας μέσω Resend με React Email templates.
- Παρακολούθηση: PostHog για τη χρήση και Sentry μόνο για σφάλματα, με τα προσωπικά δεδομένα να αφαιρούνται πριν φύγει οποιαδήποτε αναφορά.
Ένας άνθρωπος, χιλιάδες κωδικοί
Δεκαεννέα βασικές κατηγορίες, καθεμία με τις δικές της υποκατηγορίες, είναι πολύ ράφι για να το κρατάει τακτοποιημένο ένα φαρμακείο που έχει και πάγκο να δουλέψει.

Ο κατάλογος έχει δικό του σύστημα, χωριστό από το κατάστημα. Ένα άτομο διαλέγει προϊόντα, ζητάει προσχέδιο περιγραφής, ελέγχει κείμενο και εικόνες, και μόνο τότε το προϊόν φτάνει στη βιτρίνα.
Το ζητούμενο δεν ήταν να γράφει η μηχανή αντί για άνθρωπο, αλλά να μη χρειάζεται ο άνθρωπος να ξεκινάει από λευκή σελίδα σε κάθε κωδικό.

Πώς λειτουργεί
- Backend καταλόγου: Express 5 με TypeORM πάνω σε δύο ξεχωριστές βάσεις PostgreSQL, μία για τα δεδομένα και μία μόνο για τα logs, ώστε ο θόρυβος των audit records να μην επιβαρύνει τον κατάλογο.
- Εμπλουτισμός: Anthropic SDK και Google GenAI για τα προσχέδια, Puppeteer 25 με δικές μας τεχνικές αποφυγής ανίχνευσης για καταλόγους χωρίς API, ουρές BullMQ πάνω σε Redis για τις μαζικές εργασίες και S3 για τις εικόνες.
- Admin: React 19 με Vite και TanStack Router, Query και Table, επεξεργαστής κειμένου Tiptap και γραφήματα Recharts.
- Έλεγχοι: τα integration tests σηκώνουν πραγματική PostgreSQL σε Docker με Testcontainers σε κάθε εκτέλεση, χωρίς mocks.
Το ράφι και η οθόνη λένε το ίδιο
Το απόθεμα ζει στο σύστημα του φαρμακείου, όχι στο site. Μια υπηρεσία το διαβάζει και το στέλνει στο κατάστημα κάθε λεπτό, ώστε να μην πουληθεί κάτι που δεν υπάρχει στο ράφι.

Πώς λειτουργεί
- Πρώτος συγχρονισμός: πλήρης, και τα 10.417 προϊόντα· στη συνέχεια ταξιδεύουν μόνο όσα άλλαξαν από την προηγούμενη φορά.
- Ανθεκτικότητα: επαναλήψεις με αυξανόμενη αναμονή, κλείδωμα ώστε να μην τρέχουν δύο συγχρονισμοί μαζί, διακόπτης κυκλώματος, DRY_RUN για δοκιμή χωρίς εγγραφές και logs που εναλλάσσονται καθημερινά.
- Συσκευασία: ξεχωριστή υπηρεσία ρωτάει κάθε 30 δευτερόλεπτα για νέα voucher και τα τυπώνει στον θερμικό εκτυπωτή του πάγκου· η λίστα συλλογής φέρει μόνο το όνομα του πελάτη, ποτέ τη διεύθυνση.
- Τιμές: όλη η αριθμητική των τιμών ζει σε ένα ξεχωριστό πακέτο χωρίς εξαρτήσεις, κλειδωμένο σε έκδοση, που μοιράζονται backend και admin· έτσι δεν υπάρχουν δύο εκδοχές του ίδιου υπολογισμού.
Σύνδεσμοι
- Live: theheartbeat.gr (pre-launch)
Παρόμοια έργα
- Kleidarakos B2B & Papanikolaou Doors: άλλη μεγάλη commerce build, αλλά B2B αντί B2C
- pooq.gr: commerce engineering σε WooCommerce, που επεκτείνει ένα κατάστημα αντί να το αντικαθιστά