Πίσω στο Portfolio
Prizely — Gamified Lead-Gen SaaS Πολλαπλών Πελατών

Prizely — Gamified Lead-Gen SaaS Πολλαπλών Πελατών

Σχεδιάσαμε και αναπτύξαμε το Prizely, μια SaaS πλατφόρμα πολλαπλών πελατών σε Laravel 12 που μετατρέπει τη συλλογή leads σε branded εμπειρία παιχνιδιού. Οι έμποροι εγγράφονται, δημιουργούν ένα ή περισσότερα brands (το καθένα με δικό του slug, χρωματική παλέτα 2 χρωμάτων, λογότυπο και έως 8 δώρα με εικόνες), ρυθμίζουν τα ποσοστά κέρδους ανά δώρο και ενεργοποιούν τα παιχνίδια Lucky Wheel ή Scratch-to-Win. Κάθε brand ζει σε ένα καθαρό /{brand-slug} URL με τη δική του οπτική ταυτότητα — ο παίκτης βλέπει μόνο αυτό το brand. Πριν παίξουν, οι leads συμπληρώνουν φόρμα με όνομα, email και τηλέφωνο (τα GDPR consent checkboxes είναι ρυθμιζόμενα ανά brand)· ο εντοπισμός διπλότυπων μέσω email+phone αποτρέπει την κατάχρηση. Οι νικητές λαμβάνουν αυτοματοποιημένο email επιβράβευσης με προαιρετικούς redemption codes. Τα πακέτα credits αγοράζονται μέσω Stripe Checkout (χρέωση ανά παιχνίδι), με σελίδα ιστορικού χρεώσεων self-service. Το admin dashboard εμφανίζει διαγράμματα plays ανά ημέρα, στατιστικά κατανομής δώρων, conversion rates και φιλτραριζόμενο, εξαγώγιμο πίνακα leads (.xlsx). Το sandboxed test-games mode επιτρέπει στους ιδιοκτήτες να δοκιμάζουν παιχνίδια χωρίς κατανάλωση credits ή καταγραφή leads. Για φυσικές εκδηλώσεις, το kiosk mode κλειδώνει τη συσκευή σε ένα brand με unlock flow μόνο για τον ιδιοκτήτη. Η πλατφόρμα είναι δίγλωσση (Ελληνικά/Αγγλικά), συμμορφώνεται με WCAG 2.2 AA και περιλαμβάνει GSAP scroll animations, SEO με JSON-LD, hreflang alternates ανά σελίδα και llms.txt για ορατότητα από AI crawlers.

Τεχνολογίες

Laravel 12 PHP 8.5 Tailwind CSS GSAP Stripe MySQL Multilingual (el/en) JSON-LD / SEO WCAG 2.2 AA Responsive Design Kiosk Mode Email Automation

Προκλήσεις

Ο σχεδιασμός μιας multi-tenant αρχιτεκτονικής όπου κάθε brand διατηρεί τη δική του οπτική ταυτότητα (χρώματα, λογότυπο, δώρα) σε μία εγκατάσταση Laravel, η κατασκευή δύο διαφορετικών game engines (wheel vs. scratch) που μοιράζονται κοινό play/reward pipeline και η υλοποίηση metered Stripe billing που αφαιρεί credits ανά παιχνίδι χωρίς ορατό latency στον παίκτη.

Λύσεις

Χρησιμοποιήσαμε tenant-agnostic routing της Laravel με {brand} wildcards και policy-based ownership gates — ένα codebase, άπειρα branded storefronts. Κάθε παιχνίδι υλοποιήθηκε ως αυτοτελές Blade/Alpine component που τροφοδοτεί ένα κοινό PlayController το οποίο επικυρώνει credits, αποτρέπει διπλότυπα, επιλύει δώρα μέσω weighted random selection και αποστέλλει queued confirmation emails. Τα Stripe Checkout sessions μεταφέρουν metadata (pack_id, brand_id, user_id) που ολοκληρώνονται μέσω webhook· μια cache στήλη credit-balance αποφεύγει DB writes ανά play. Το kiosk mode χρησιμοποιεί session flag + unlock PIN flow με rate-limited προσπάθειες. Το admin dashboard χρησιμοποιεί Chart.js για plays/κατανομή δώρων και φιλτραριζόμενο DataTables leads table με εξαγωγή .xlsx.