Skip to content

Boooowz/Grid_analyzer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Grid Analyzer

Βοηθητική εφαρμογή υπολογιστή για την ανάλυση αρχείων ωρών εργασίας προσωπικού. Ανεβάζεις το αρχείο της Εργάνης (ή αντίστοιχο spreadsheet) και η εφαρμογή σου βγάζει αυτόματα τα στατιστικά για κάθε εργαζόμενο: μέρες δουλειάς, νυχτερινές ώρες, ώρες Κυριακής και νυχτερινές ώρες Κυριακής.

Τι κάνει

Διαβάζει ένα αρχείο .xlsx με σταθερή δομή (όπως φαίνεται παρακάτω) και υπολογίζει για κάθε εργαζόμενο ξεχωριστά:

  • Σύνολο ημερών εργασίας — πόσες φορές εμφανίζεται ως «ΕΡΓΑΣΙΑ» μέσα στον μήνα.
  • Νυχτερινές ώρες — ώρες που έπεσαν στο διάστημα 22:00–06:00.
  • Ώρες Κυριακής — όλες οι ώρες εργασίας που έγιναν Κυριακή.
  • Νυχτερινές ώρες Κυριακής — η τομή των δύο παραπάνω (Κυριακή ΚΑΙ νυχτερινό ωράριο).
  • Σύνολο Κυριακών — πόσες ξεχωριστές Κυριακές δούλεψε.

Το αποτέλεσμα εμφανίζεται σε πίνακα μέσα στην εφαρμογή και μπορείς να το κατεβάσεις ως Excel ή CSV για να το κρατήσεις/τυπώσεις.

Δομή αρχείου εισόδου

Το αρχείο που ανεβάζεις έχει πάντα την ίδια μορφή — αλλάζουν μόνο ο μήνας, τα ονόματα και τα ωράρια. Οι στήλες είναι:

Στήλη Περιεχόμενο
A ΑΑ Παραρτήματος
B ΑΦΜ
C Όνομα
D Επώνυμο
E Ημ/νία
F Ψηφιακή (Ναι/Όχι)
G Κάρτα Εργασίας (Ναι/Όχι)
H Διάλειμμα (π.χ. «Εντός 20»)
I Απασχόληση (π.χ. «ΕΡΓΑΣΙΑ 10:00-18:00», «ΑΝΑΠΑΥΣΗ/ΡΕΠΟ», «ΜΗ ΕΡΓΑΣΙΑ»)

Η εφαρμογή ξεχωρίζει τις γραμμές «ΕΡΓΑΣΙΑ» από τις «ΑΝΑΠΑΥΣΗ/ΡΕΠΟ» και «ΜΗ ΕΡΓΑΣΙΑ», διαβάζει το ωράριο (π.χ. 19:00-00:00) και υπολογίζει σωστά και τις βάρδιες που περνούν την επόμενη μέρα.

Γλώσσα προγραμματισμού

Python + Streamlit. Διάλεξα αυτόν τον συνδυασμό γιατί:

  • Είναι ο πιο γρήγορος τρόπος να φτιαχτεί τοπική εφαρμογή με upload αρχείου και πίνακα αποτελεσμάτων.
  • Η Python έχει εξαιρετική υποστήριξη για Excel (pandas + openpyxl).
  • Το Streamlit τρέχει τοπικά στον browser σου — δεν χρειάζεται να φτιάξεις GUI από το μηδέν, ούτε να ανεβάσεις τα δεδομένα κάπου στο internet. Όλα μένουν στον υπολογιστή σου.
  • Εγκαθίσταται με μία εντολή και τρέχει σε Windows / macOS / Linux.

Εγκατάσταση

Απαιτείται Python 3.10+ (κατέβασέ τη από python.org αν δεν την έχεις).

# 1. Κάνε clone το repo
git clone https://github.com/Boooowz/Grid_analyzer.git
cd Grid_analyzer

# 2. (Προαιρετικό) Φτιάξε virtual environment
python -m venv .venv
source .venv/bin/activate        # Linux / macOS
.venv\Scripts\activate           # Windows

# 3. Εγκατέστησε τα requirements
pip install -r requirements.txt

Χρήση

streamlit run app.py

Θα ανοίξει αυτόματα ο browser στο http://localhost:8501. Από εκεί:

  1. Πάτα Upload και διάλεξε το .xlsx αρχείο του μήνα.
  2. Η εφαρμογή ανιχνεύει αυτόματα τους εργαζόμενους και υπολογίζει τα στατιστικά.
  3. Δες τα αποτελέσματα σε πίνακα ή κατέβασέ τα ως Excel / CSV.

Κανόνες υπολογισμού

  • Νυχτερινή ώρα: κάθε ώρα ή κλάσμα ώρας στο διάστημα 22:00 έως 06:00 του επόμενου πρωινού.
  • Βάρδια που τελειώνει 00:00: θεωρείται ότι κλείνει στις 24:00 της ίδιας μέρας.
  • Βάρδια που περνάει μεσάνυχτα (π.χ. 19:00-03:00): οι ώρες μετά τα μεσάνυχτα χρεώνονται στην ημέρα έναρξης της βάρδιας. Δηλαδή αν ξεκίνησε Σάββατο, μετράνε ως Σάββατο — όχι Κυριακή.
  • Ώρες Κυριακής: μετράνε μόνο όσες ώρες πέφτουν μέσα στην Κυριακή 00:00–24:00. Αν η βάρδια ξεκίνησε Κυριακή 22:00 και τελειώνει Δευτέρα 06:00, μόνο οι 2 πρώτες ώρες θεωρούνται «Κυριακή».
  • Σύνολο Κυριακών: μετράνε οι ξεχωριστές Κυριακές που εμφανίζουν τουλάχιστον μία ώρα εργασίας.

Δομή project

Grid_analyzer/
├── app.py                # Το Streamlit UI (upload + εμφάνιση πίνακα)
├── analyzer.py           # Η λογική υπολογισμού των ωρών
├── requirements.txt      # Εξαρτήσεις Python
└── README.md

Άδεια

Προσωπική χρήση.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages