Μενού

Γλώσσα

English

Social

← Όλα τα έργα

Μελέτη περίπτωσης · Olympus Marathon Σε εξέλιξη

Επτά αγώνες, ένα σημείο για να δηλώσεις

Το Olympus Marathon διοργανώνει επτά ορεινούς αγώνες στο Λιτόχωρο, στους πρόποδες του Ολύμπου. Αυτή είναι η νέα ιστοσελίδα και πλατφόρμα εγγραφών που αντικαθιστά την παλιά: δηλώσεις και πληρωμές, η διαχείριση της γραμματείας, αποτελέσματα, μητρώο αθλητών από το 2004 και πιστοποιητικά τερματισμού, ελληνικά πρώτα και αγγλικά δίπλα.

Olympus Marathon

Γιατί δεν υπάρχει σύνδεσμος

Δεν υπάρχει ακόμη κάτι να ανοίξεις. Η πλατφόρμα είναι χτισμένη και δοκιμασμένη, και βγαίνει ζωντανά αμέσως μετά τον χειμερινό αγώνα στις 13 Δεκεμβρίου 2026. Οπότε αυτή η σελίδα δείχνει το ίδιο το έργο: τις οθόνες, τους κανόνες από κάτω και γιατί υπάρχουν.

  • 7ορεινοί αγώνες στο Λιτόχωρο, ο καθένας με τη δική του φόρμα
  • 13.089αθλητές σε μητρώο που φτάνει ως το 2004
  • ~21.000αρχειακά αποτελέσματα, συνδεδεμένα με τους αθλητές τους
  • 1.000ταυτόχρονες πληρωμές στο τεστ φόρτου, καμία θέση παραπάνω

Το ζητούμενο

Μία πλατφόρμα αντί για ένα site και ένα συρτάρι εργαλεία

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

Η νέα πλατφόρμα τα βάζει όλα σε ένα σημείο που η γραμματεία διαχειρίζεται μόνη της: το δημόσιο site, δηλώσεις και πληρωμές, εγκρίσεις και αριθμούς συμμετοχής, λίστες εκκίνησης για την εταιρεία χρονομέτρησης, αποτελέσματα με ενδιάμεσους χρόνους και ζωντανή σελίδα, το μητρώο από το 2004, πιστοποιητικά τερματισμού σε PDF, νέα, φωτογραφίες, χορηγούς και newsletter. Ελληνικά πρώτα, αγγλικά δίπλα, και κάθε παλιό URL οδηγεί στη νέα του σελίδα.

Εγγραφή

Μια δήλωση μετράει μόνο όταν πληρωθεί

Η φόρμα χτίζεται για κάθε διοργάνωση από τη δική της ρύθμιση και αποθηκεύεται στη συσκευή όσο γράφει ο αθλητής, οπότε μια διακοπή σύνδεσης δεν χάνει τίποτα.

Στην πληρωμή η θέση δεσμεύεται για δεκαπέντε λεπτά και η τιμή υπολογίζεται στον server, σε SQL, ποτέ από τον browser. Κάθε πληρωμή έχει το δικό της αναγνωριστικό, και η επιστροφή της τράπεζας είναι υπογεγραμμένη και idempotent, ώστε μια επανάληψη να μην μπορεί να πληρώσει δύο φορές ή να επιβεβαιώσει θέση που δεν δεσμεύτηκε ποτέ.

Η εγγραφή του αθλητή σε πέντε βήματα, από τη φόρμα ως το email επιβεβαίωσης με τον αριθμό συμμετοχής
Η διαδρομή του αθλητή, με τις τέσσερις περιπτώσεις που ήθελαν παλιά τηλεφώνημα να απαντώνται στην οθόνη.

Φόρτος

Δοκιμασμένο για το πρωί που ανοίγουν οι εγγραφές

Η χωρητικότητα, η μοναδικότητα των αριθμών και οι διπλές δηλώσεις ελέγχονται από την ίδια την Postgres, όχι από κώδικα εφαρμογής που δύο αιτήματα μαζί θα μπορούσαν να προσπεράσουν. Κάθε περιορισμός και κάθε συνάρτηση SQL έχει το δικό της τεστ στη βάση.

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

Το μητρώο

Είκοσι χρόνια αποτελέσματα, ένας αθλητής ο καθένας

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

Κάθε αθλητής έχει σελίδα με κάθε αποτέλεσμα από το 2004, και όποιος τερμάτισε κατεβάζει πιστοποιητικό για κάθε αγώνα που ολοκλήρωσε.

Αποτελέσματα ανά έτος, από το 2004 ως το 2026, με φίλτρα για φύλο και κατηγορία
Κάθε χρονιά από το 2004 είναι ένα πάτημα μακριά, και το φιλτράρισμα κρατά τη θέση του αναγνώστη αντί να γυρίζει στην αρχή.

Η γραμματεία

Όσοι τρέχουν τον αγώνα τρέχουν και το site

Το προσωπικό συνδέεται με κωδικό που έρχεται στο email του, με ρόλους διαχειριστή και γραμματείας. Ανοίγει και κλείνει εγγραφές ανά ημερομηνία, ορίζει τέλη και πρόσθετα, εγκρίνει δηλώσεις με προτεινόμενη αντιστοίχιση στο μητρώο και τον επόμενο αριθμό συμμετοχής συμπληρωμένο, εξάγει λίστες εκκίνησης για τη χρονομέτρηση, εισάγει ομάδες από Excel, και διαχειρίζεται νέα, σελίδες αγώνων, χορηγούς, φωτογραφίες και newsletter.

Κάθε αλλαγή καταγράφεται σε ημερολόγιο ελέγχου, οπότε το ποιος άλλαξε τι έχει πάντα απάντηση.

Η οθόνη έγκρισης, με τον επόμενο ελεύθερο αριθμό συμμετοχής συμπληρωμένο και το ελίτ μπλοκ δεσμευμένο
Η έγκριση συμπληρώνει τον επόμενο ελεύθερο αριθμό και κρατά το ελίτ μπλοκ για αριθμούς που δίνονται με το χέρι.

Ιδιωτικότητα

Οι δημόσιες λίστες δείχνουν μόνο ό,τι δέχτηκε ο αθλητής

Οι λίστες συμμετεχόντων δείχνουν μόνο τις στήλες που αποδέχτηκε κάθε αθλητής, και κάθε συναίνεση αποθηκεύεται με την ακριβή έκδοση του κειμένου που αποδέχτηκε. Τίποτα μη απαραίτητο δεν φορτώνει πριν τη συναίνεση στα cookies, και κανένα μυστικό δεν φτάνει ποτέ στον browser.

Οι λογαριασμοί αθλητών είναι προαιρετικοί και δεν απαιτούνται ποτέ για την εγγραφή: με κωδικό στο email ή με συνθηματικό βλέπεις τις δηλώσεις σου, τα αποτελέσματά σου από το 2004 και τα στατιστικά σου, και η φόρμα του επόμενου αγώνα συμπληρώνεται μόνη της.

Πού βρίσκεται

  1. Οκτώβριος 2026 Έγινε

    Υπογραφή σύμβασης. Η πλατφόρμα είναι χτισμένη και δοκιμασμένη: εγγραφές και πληρωμές, διαχείριση, αποτελέσματα, μητρώο και το εισηγμένο αρχείο.

  2. 13 Δεκεμβρίου 2026 Μπροστά

    Ζωντανά αμέσως μετά τον χειμερινό αγώνα, που τρέχει στο παλιό site ως το τέλος.

  3. Ιανουάριος 2027 Μπροστά

    Οι καλοκαιρινές εγγραφές ανοίγουν στη νέα πλατφόρμα, με τεστ φόρτου και πρόβα με τη γραμματεία από πριν.

Χτισμένο με

Site

  • Astro
  • TypeScript
  • Plain CSS
  • Node on Railway
  • Cloudflare

Δεδομένα

  • Supabase Postgres
  • Row Level Security
  • pgTAP
  • Storage

Πληρωμές

  • Piraeus e-POS
  • wrapp.ai myDATA receipts

Email και τεστ

  • Resend
  • Vitest
  • k6

Χτίζεις κάτι αυτού του μεγέθους;

Πες μου πάνω σε τι χρειάζεται να τρέχει η επιχείρησή σου και θα επανέλθω εντός 24 ωρών με ξεκάθαρη προσφορά χωρίς δέσμευση.

Ζήτησε προσφορά