Οδηγοί

Πώς να φτιάξετε εφαρμογή καταγραφής χρόνου: χρονόμετρα, δελτία και αναφορές

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

Αποφασίστε για ποιο λόγο καταγράφετε χρόνο

Η ίδια εφαρμογή φαίνεται διαφορετική ανάλογα με τον λόγο πίσω της:

  • Χρέωση πελατών. Ώρες ανά πελάτη, ένα ποσό ανά άτομο ή έργο, και μια καθαρή εξαγωγή για τα τιμολόγια. Η ακρίβεια και το ίχνος ελέγχου μετράνε περισσότερο.
  • Μισθοδοσία για ωρομίσθιους. Καταγραφή ώρας προσέλευσης και αποχώρησης, διαλείμματα, κανόνες υπερωριών και έγκριση από διαχειριστή. Ισχύουν τοπικοί κανόνες εργασίας, οπότε ελέγξτε ποια αρχεία είστε υποχρεωμένοι να κρατάτε.
  • Κατανόηση του πού πηγαίνει ο χρόνος. Προσωπική ή ομαδική εικόνα, εκτιμήσεις έναντι πραγματικών. Η ταχύτητα καταχώρισης μετράει περισσότερο από τις ροές έγκρισης.

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

Τι χρειάζεται η εφαρμογή

Δεδομένα

ΠίνακαςΚύρια πεδία
ΠελάτεςΌνομα, προεπιλεγμένη ωριαία τιμή, ενεργός ναι/όχι
ΈργαΠελάτης, όνομα, προϋπολογισμός σε ώρες (προαιρετικό), χρεώσιμο από προεπιλογή ναι/όχι
Εργασίες ή κατηγορίεςΈργο, όνομα (σχεδιασμός, συναντήσεις, υποστήριξη) — προαιρετικό στην αρχή
Καταχωρίσεις χρόνουΆτομο, έργο, εργασία, ώρα έναρξης, ώρα λήξης, διάρκεια, σημείωση, χρεώσιμο ναι/όχι, κατάσταση (πρόχειρο, υποβλήθηκε, εγκρίθηκε), τιμολογήθηκε ναι/όχι
ΆτομαΌνομα, email, ρόλος, κόστος ή τιμή χρέωσης

Αποθηκεύστε την ώρα έναρξης και λήξης σε κάθε καταχώριση και υπολογίστε τη διάρκεια από αυτές. Καταχωρίσεις που πληκτρολογούνται ως «2ω 15λ» χωρίς ώρες μπορούν να αποθηκεύσουν μόνο τη διάρκεια, αλλά κρατήστε ημερομηνία.

Σελίδες

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

Δικαιώματα

Γράψτε πριν χτίσετε ποιος μπορεί να κάνει τι:

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

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

Αποφάσεις και trade-offs

Χρονόμετρο, χειροκίνητη καταχώριση ή και τα δύο

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

Πού ζει το τρέχον χρονόμετρο

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

Στρογγυλοποίηση

Συνηθισμένοι κανόνες είναι η στρογγυλοποίηση κάθε καταχώρισης προς τα πάνω στο πλησιέστερο 6, 15 ή 30 λεπτά. Κρατήστε τις ακριβείς ώρες στη βάση δεδομένων και εφαρμόστε τη στρογγυλοποίηση μόνο στις αναφορές και στα τιμολόγια. Δείξτε και τους δύο αριθμούς στις αναφορές, ώστε κανείς να μην εκπλαγεί.

Κλείδωμα και εγκρίσεις

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

Ζώνες ώρας και μεσάνυχτα

Αποθηκεύστε τις ώρες σε UTC και εμφανίστε τις στη ζώνη ώρας του ατόμου. Αποφασίστε σε ποια ημέρα ανήκει μια καταχώριση που τρέχει από τις 23:00 έως την 01:00. Η συνήθης απάντηση είναι η ημέρα που ξεκίνησε.

Ένα πρώτο prompt που δουλεύει

Φτιάξε μια εφαρμογή καταγραφής χρόνου για ένα στούντιο σχεδιασμού με έξι άτομα. Δεδομένα: πελάτες (όνομα, ωριαία τιμή), έργα (πελάτης, όνομα, προϋπολογισμός ωρών) και καταχωρίσεις χρόνου (άτομο, έργο, έναρξη, λήξη, σημείωση, χρεώσιμο ναι/όχι, κατάσταση πρόχειρο/υποβλήθηκε/εγκρίθηκε). Σελίδες: μια σελίδα Σήμερα με χρονόμετρο εκκίνησης και διακοπής και επιλογέα έργου που αποθηκεύει την ώρα έναρξης στη βάση δεδομένων ώστε το χρονόμετρο να επιβιώνει την ανανέωση· μια σελίδα Εβδομάδα με τα έργα ως γραμμές, Δευτέρα έως Κυριακή ως στήλες, όπου τα άτομα πληκτρολογούν ώρες απευθείας· μια σελίδα Αναφορών με ώρες ανά πελάτη, έργο και άτομο για ένα χρονικό διάστημα, χωρισμένες σε χρεώσιμες και μη χρεώσιμες, με εξαγωγή CSV· και μια σελίδα Διαχείρισης για πελάτες, έργα και άτομα. Μόνο ένα χρονόμετρο μπορεί να τρέχει ανά άτομο. Οι εγκεκριμένες καταχωρίσεις δεν επεξεργάζονται. Αποθήκευσε τις ώρες σε UTC και εμφάνισέ τες στη ζώνη ώρας του χρήστη. Καθαρός, γρήγορος σχεδιασμός, φιλικός προς το πληκτρολόγιο.

Το prompt ονομάζει τους πίνακες, τις σελίδες, τη συμπεριφορά του χρονομέτρου και τον κανόνα κλειδώματος, δηλαδή τα πράγματα που ένα AI θα μάντευε αλλιώς.

Βήματα κατασκευής

  1. Πρώτα έργα και χειροκίνητες καταχωρίσεις. Πελάτες, έργα, μια φόρμα για προσθήκη καταχώρισης και μια λίστα. Βεβαιωθείτε ότι τα σύνολα προστίθενται σωστά.
  2. Χρονόμετρο. Εκκίνηση, διακοπή, ένα ενεργό χρονόμετρο ανά άτομο, αποθηκευμένη ώρα έναρξης. Δοκιμάστε ξεκινώντας ένα χρονόμετρο, κλείνοντας την καρτέλα και ανοίγοντάς την ξανά.
  3. Πλέγμα εβδομάδας. Πληκτρολογώντας ώρες σε ένα κελί δημιουργείται ή ενημερώνεται μια καταχώριση.
  4. Σύνδεση και ρόλοι. Προσθέστε τα πριν τα χρησιμοποιήσουν πραγματικοί άνθρωποι, ώστε κανείς να μην βλέπει τιμές ή καταχωρίσεις άλλων κατά λάθος.
  5. Υποβολή και έγκριση. Εβδομαδιαία υποβολή, έγκριση από διαχειριστή, μόνο για ανάγνωση μετά την έγκριση.
  6. Αναφορές και εξαγωγή. Χρονικό διάστημα, ομαδοποίηση, διαχωρισμός χρεώσιμων ωρών, CSV.
  7. Τιμές και σημεία σύνδεσης τιμολόγησης, αν χρεώνετε πελάτες. Κρατήστε τη δημιουργία τιμολογίων σε ξεχωριστό βήμα ή εφαρμογή· δείτε πώς να φτιάξετε εφαρμογή τιμολόγησης.
  8. Δοκιμάστε τις ακραίες περιπτώσεις. Καταχώριση που περνά τα μεσάνυχτα, εβδομάδα αλλαγής ώρας, δύο χρονόμετρα από δύο συσκευές, επεξεργασία εγκεκριμένης καταχώρισης.

Συνηθισμένα λάθη

  • Μέτρηση του χρόνου μόνο στο πρόγραμμα περιήγησης. Λειτουργεί στην επίδειξη και χάνει ώρες στην πραγματική χρήση.
  • Στρογγυλοποίηση αποθηκευμένων τιμών. Δεν μπορείτε ποτέ να πάρετε πίσω την ακριβή ώρα.
  • Χωρίς κλείδωμα για εγκεκριμένες εβδομάδες. Οι αναφορές παύουν να ταιριάζουν με τα τιμολόγια.
  • Όλοι βλέπουν τις τιμές όλων. Κρύψτε τις τιμές ανά ρόλο από την πρώτη μέρα.
  • Πάρα πολλά υποχρεωτικά πεδία. Αν η καταχώριση χρόνου παίρνει περισσότερο από λίγα δευτερόλεπτα, οι άνθρωποι σταματούν να την κάνουν και τα δεδομένα γίνονται μυθοπλασία. Κάντε την εργασία και τη σημείωση προαιρετικές στην αρχή.
  • Χτίζοντας πλήρη διαχείριση έργων μέσα στο εργαλείο καταγραφής. Κρατήστε τα έργα ως απλές ετικέτες. Αν χρειάζεστε εργασίες, πίνακες και προθεσμίες, αυτό είναι ένα εργαλείο διαχείρισης έργων, ξεχωριστή κατασκευή.

Πότε είναι καλύτερο ένα έτοιμο εργαλείο καταγραφής

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

Φτιάξτε τη δική σας όταν οι κανόνες σας δεν ταιριάζουν, όταν θέλετε ώρες συνδεδεμένες με δεδομένα που ήδη κρατάτε (δουλειές, εντολές εργασίας, retainers, τιμολόγια), όταν η τιμολόγηση ανά θέση για μια μεγάλη ομάδα αθροίζεται, ή όταν η καταγραφή χρόνου είναι ένα μέρος ενός μεγαλύτερου εσωτερικού εργαλείου. Ο οδηγός μας για την επιλογή μεταξύ κατασκευής και αγοράς λογισμικού εξετάζει το trade-off, και αν οι ώρες σας ζουν σήμερα σε κοινό υπολογιστικό φύλλο, δείτε πώς να μετατρέψετε ένα υπολογιστικό φύλλο σε εφαρμογή.

Φτιάχνοντάς το με το Mythex

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

Η σύνδεση για την ομάδα σας είναι κάτι που προσθέτετε με τη δική σας προσέγγιση ταυτοποίησης (συνταγή προσθήκης σύνδεσης). Οι λογαριασμοί Mythex είναι για τους ανθρώπους που φτιάχνουν, όχι για αυτούς που θα χρησιμοποιούν την εφαρμογή σας. Μόλις δουλέψει η βασική ροή, η εντολή /test βάζει τον πράκτορα να περιηγηθεί στην προεπισκόπηση (ξεκινά χρονόμετρο, προσθέτει καταχώριση, τρέχει αναφορά) και να αναφέρει τι σπάει. Για οπτικό σημείο εκκίνησης, δείτε τα πρότυπα εφαρμογών.

Ερωτήσεις

Ποια χαρακτηριστικά χρειάζεται μια εφαρμογή καταγραφής χρόνου;

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

Πώς εμποδίζω ένα χρονόμετρο να χάνει χρόνο όταν κλείνει το πρόγραμμα περιήγησης;

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

Πρέπει να στρογγυλοποιείται ο χρόνος;

Αποθηκεύστε τις ακριβείς ώρες έναρξης και λήξης και εφαρμόστε τη στρογγυλοποίηση μόνο στις αναφορές και στα τιμολόγια. Έτσι μπορείτε να αλλάξετε τον κανόνα στρογγυλοποίησης αργότερα χωρίς να ξαναγράψετε το ιστορικό.

Αξίζει να φτιάξω τη δική μου εφαρμογή καταγραφής χρόνου;

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

Mythex · Pricing · Χτίστε οτιδήποτε με AI · Πρότυπα ιστοσελίδων και εφαρμογών · Το Mythex σε σύγκριση · Γλωσσάρι δημιουργίας εφαρμογών με AI · Δωρεάν εργαλεία δημιουργίας εφαρμογών με AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)