- Έχετε θέματα οργανωμένα σε κατηγορίες, στις οποίες μπορείτε να ορίσετε πόσες επιλογές θέλετε από κάθε μια κατηγορία, ώστε να επιλεχθούν τυχαία τόσες ερωτήσεις από κάθε θέμα
- Τα θέματά σας μπορείτε να τα μετατρέψετε εύκολα σε markdown μορφή σύμφψνα με το ακόλουθο link
- Αν θέλετε μπορείτε να συμπεριλάβετε εικόνες στα θέματα (δείτε το παράδειγμα
assets/questions/maths/maths_4.md) - Μπορείτε να ετοιμάσετε μια εικόνα όπως η
assets/files/images/ds_-2-20-logo.pngπου να περιλαμβάνει το logo και το όνομα του μαθήματός σας και να ρυθμίσετε το αρχείοthemagen/tests.pyστη μέθοδο_generate_file()ώστε να το συμνπεριλάβει στην αρχή του αρχείου. Δείτε το δείγμα θεμάτων. - Τα θέματα παράγονται σε pdf μορφή με τη βοήθεια του προγράμματος pandoc. Μπορείτε να ρυθμίσετε το font στο αρχείο
themagen/pdf.pyαρκεί να διαθέτετε το font στον υπολογιστή σας. - Τα θέματά σας θα δημιουργηθούν στον κατάλογο
assets/filesκαι δεν θα ανέβουν στο git repo λόγω του.gitignore
- Δημιουργία ενός αρχείου με usernames φοιτητών (users.txt)
- Αντιγραφή του
config.yml.exampleσεconfig.yml
cp config.yml.example config.ymlκαι παραμετροποίησή του σύμφωνα με τις ανάγκες σας. Το αρχέιο config.yml δεν ανεβαίνει στο git repo.
- Καθορισμός καταλόγων κάτω από τον κατάλογο questions με τις κατηγορίες των θεμάτων, δώστε ένα κωδικό όνομα για κάθε κατηγορία, π.χ.
arch - Σε κάθε κατηγορία δημιουργήστε με το ίδιο όνομα και κατάληξη
<όνομα_κατηγορίας>_<Αύξων-αριθμός>.md, π.χ.arch_1.md, arch_2.mdκτλ - Για κάθε κατηγορία σημειώστε το πλήθος των ερωτήσεων που θέλετε να επιλεχθούν
- Αντιγράψτε το αρχείο config.yaml.example και ορίστε εκεί τις παραμέτρους που αφορούν τις κατηγορίες, τις ερωτήσεις σε κάθε κατηγορία και το πόσες επιλογές θα γίνουν από αυτές τις ερωτήσεις Παράδειγμα:
# categories
categories:
history:
size: 5
select: 2
maths:
size: 5
select: 2Στη συνέχεια δημιουργήστε ένα CSV αρχείο που να περιέχει τα usernames των χρηστών ανά γραμμή, π.χ. users.csv, μπορείτε να δείτε ένα παράδειγμα με την εντολή
cat users.csv.example- Για να δημιουργήσουμε τα θέματα, εκτελούμε το
python3 main.py gentestsΣτον κατάλογο files δημιουργήθηκαν τα θέματα σε md. Τα μετατρέπουμε σε pdf με
python3 main.py genpdfαφού βεβαωθούμε ότι έχουμε τη γραμματοσειρά που αναφέρεται σε αυτό το αρχείο.
- Ρυθμίζουμε τις παραμέτρους mail με τις παραμέτρους σύνδεσης στον mail server και τις παραμέτρους messages για το κείμενο που θα σταλεί με email Τα στέλνουμε με email με
python3 main.py sendmailsΤο συγκεκριμένο script ψάχνει τον κατάλογο images και για όσα pdf βρει, σχηματίζει το email με βάση το όνομα του pdf αρχείου και την κατάληξη "@domain.com" και τα στέλνει.
- αν θέλετε μπορείτε να τρέξετε την εντολή
python3 main.py plot <logfilename>και να έχετε στον κατάλογο assets/samples την κατανομή των θεμάτων.
Προαπαιτούμενα:
- python3
- bash
- pandoc
- xelatex
- NotoSans Nerd Font
Python libraries:
- matplotlib
Δείγμα θεμάτων σε pdf μορφή
