Tι θέλουμε να φτιάξουμε
Μια εφαρμογή καταγραφής των αποδείξεων λιανικής πώλησης
Γιατί?
1. Για να παίξουμε με την Python
2. Για να κάνουμε πιο εύκολη μια εξαιρετικά βαρετή δουλειά που καλώς ή κακώς την κάνουν πλέον οι πάντες (οι φοιτητές που δεν κάνουν φορολογική δήλωση δε μετράνε, εκτός και αν τους χώνουν οι γονείς τους
)
3. Για να κάνουμε πιο γνωστό το
www.TasPython.eu
4. To take over the world!
Είναι χρήσιμο?
Ναι διότι λίγο ως πολύ κάθε νοικοκυριό, ψωνίζει από τα ίδια και τα ίδια μαγαζιά, οπότε από τη στιγμή που περάσεις τα στοιχεία μιας επιχείρησης μετά δε χρειάζεται να την ξαναπερνάς, απλά την διαλέγεις από μια λίστα και βάζεις ημερομηνία και ποσό.
Δε ξέρω πόσοι από εσάς το έχουν κάνει, αλλά το καλοκαίρι που πέρασα μερικές χιλιάδες ευρώ αποδείξεις στο excel τα είδα όλα. Δυστυχώς ήμουν στο χωριό και όταν τέλειωσα δεν έβρισκα πρέζα να χτυπήσω...
Τι πρέπει να έχει
Δυστυχώς αυτό δεν το ξέρουμε ακόμα ακριβώς, οπότε το βλέπουμε στην πορεία και το ρυθμίζουμε αναλόγως. Εν ολίγοις θέλουμε μια φόρμα μεσω της οποίας θα γίνεται η εισαγωγή των δεδομένων της κάθε επιχείρησης. Τα δεδομένα αυτά σε πρώτη φάση μπορούν να είναι τα εξής:
1. Επωνυμία
2. Διεύθυνση
3. ΑΦΜ / ΔΟΥ
4. Τηλέφωνο
Στη συνέχεια σε μια άλλη καρτέλα, διαλεγεις μια από τις επιχειρήσεις που έχεις καταχωρήσει μέσω της φόρμας και συμπληρώνεις ημερομηνία και ποσό.
Τέλος θα πρέπει να μπορεις να εκτυπώνεται μια συγκεντρωτική κατάσταση.
Ποιοι?
Μέχρι στιγμής έχουμε δηλώσει ενδιαφέρον εγώ και ο Έktoras. Όποιος άλλος ενδιαφέρεται, ευπρόσδεκτος.
Licence
Εφόσων δεν παίζουν χρήματα, πρακτικά οποιαδήποτε open-source licence νομίζω μας καλύπτει. Καθώς δεν δημιουργούμε κάποια βιβλιοθήκη, αλλά τελική εφαρμογή, μικρή σημασία έχει η επιλογή της, αλλά δε νομίζω να έχουμε κάποιο λόγο να μην είναι GPL v3.
Code Style
Προκειμενου να υπάρχει κοινή "γλώσσα", καλό είναι ο κώδικας που θα γράφουν όλοι οι συμμετέχοντες να ακολουθεί το ίδιο πρότυπο. Συναφή είναι το
PEP 8 καθώς και το
Google Python Style Guide. Δεν τα έχω συγκρίνει ενδελεχώς, αλλά από ότι θυμάμαι έχουν κάτι ψιλές διαφορές. Μικρή σημασία έχει η επιλογή αρκεί να είναι συνεπής η χρήση.
GUI
Η βιβλιοθήκη που θα χρησιμοποιηθεί για το GUI, επηρρεάζει, άμεσα την επιλογη της έκδοσης της Python που θα χρησιμοποιηθεί (2 ή 3). Δυνατές επιλογές είναι οι:
1) TKinter
2) wxPython
3) PyQt
4) PyGTK
Προσωπικά θα απέρριπτα την PyGTK γιατί νομίζω ότι δε δείχνει native παντού. Από εκει και πέρα, η TKinter σου επιτρέπει να χρησιμοποιήσεις οποιαδήποτε έκδοση της Python καθώς ανήκει στην standard libray. Από την άλλη, εγώ προσωπικα, έχω κάποια εμπειρία με wxPython, αλλά εφεξής θα με ενδιέφερε να μάθω την PyQt η οποία και νομίζω ότι σα βιβλιοθήκη είναι η καλύτερη.
Προβλήματα με τη Licence της PyQt δεν υπάρχουν καθως πρόκειται για μη εμπορική εφαρμογή (και να υπήρχαν προβλήματα πια υπάρχει και η PySide που είναι ουσιαστικά η PyQt με LGPL).
Python Version
Αν και η 3 είναι το μέλλον, νομίζω ότι για πολλά χρόνια ακόμα θα συνεχίσουν να συνυπάρχουν οι 2 εκδόσεις. Αν μας το επιτρέπει η βιβλιοθηκη για το GUI και οι λοιπές βιβλιοθήκες 3 αλλιώς python 2.7 με "from __future__ imports" όπου είναι εφικτό.
Other Libraries
Για να έχει όντως λόγο ύπαρξης μια εφαρμογή πρέπει να τη χρησιμοποιεί ο κόσμος. Κοινώς να έχεις έκδοση για windows. Κατά συνέπεια να φτιάξεις και *.exe γιατί οι μη developpers σιγά να μην έχουν ή σιγά που θα κάτσουν να βάλουν python στον υπολογιστή τους. Άρα το py2exe δεν το γλυτώνουμε (όχι ότι είναι και κάτι δύσκολο).
Αν τελικά αποφασιστεί να χρησιμοποιηθεί κάποια βάση δεδομένων (πχ mysql) μπαίνει και αυτή στα προαπαιτούμενα. Λέω αν τελικά γιατί μάλλον γίνεται η δουλειά και με λίστες και dictionaries. Μπορεί φυσικά να ενσωματωθεί για λόγους εκμάθησης της βιβλιοθήκης.
Για την εκτύπωση, υπάρχουν αρκετοί τρόποι που μπορει να γίνει. Είτε να χρησιμοποιείται ένα template στο open-office, είτε η report-lab, έίτε rst2pdf. Αυτό είναι εύκολο και το βλέπουμε στην πορεία.
Αυτά για την ώρα.