This application will help teachers of English deliver dynamic lessons to their students.
I built it to support my own services. You may use this code as you see fit but I offer ZERO support.
It's a work in progress. I hope it will be useful to others.
The app should run on any python3 compliant device.
- python3
- pysimplegui
There are lots of TODOs in the code. If you want to participate, please do.
- strip empty spaces from files
- sort text files
- strip txt files of empty lines
- set python script to run BASH
cat verbs.txt | sort | uniq>outv.txt
to quickly sort and get uniq values only. ) - Save/Load student data from JSON file
- add usage license
- negotiation tab: randomly chosen text should take focus or find a better way to get text to display
- print full DAY in timeline tab = strftime("%Y %B %d %A")
- automatically generate ten text input fields from a text file source
This is automatically generated from a text file! It currently saves to file as json partially. It should load from json eventually but it doesn't yet. The grammar tracker tab is generated from a text file. The keys for the generated input and sliders should also be generated as well e.g.
if event == "generated key": pass
see form_generator_description.md
- load data based on date
- started Read and write to json file
- save vocabulary data to json file
- create a graph of the student data
- create list of adverbs past
- see /grammar_adverbs_of_time.md
You can edit the source files and hit the reload button and the application will load the new files.
This is a great tab for groups as you can get people discussing pros and cons ad nauseum. Think about SCRUM and story point values.
Currently can save the file as csv.
1. press the shuffle the images button to get random imagesdisplays random pictures and the name of the picture
The images are prefixed with adjective, noun, verb etc. The images' prefixes are stripped before loading the image name.
encourage students to make up new sentences
buttons at top go to unique web pages with examples of text
The idea here is that students will work through a negotiation process using some of the randomly chosen phrases.
All of the items have buttons that will allow you to edit the files in real time.
This tab generates random dates e.g. SUN December 19th
The dates will be from past to present(now) to future
Random events will be displayed
The teacher instructs the learner to use the time stamp and tell a story with the event.
load tab
load timestamp function
prompt user for start date
prompt user for end date
populate date fields if date_field < NOW then populate before_now fields
if date_field > NOW then populate after_now fields
-
randomly display issue
-
get student response for pro and con
-
estimate cost of pro and con
-
perform analysis of pro and con
-
save all values to file (csv? yaml? ?)
-
if teacher wants to reload file again in future, file format is tab friendly
- display issue 'get ice cream'
- student describes pro and con issue of get ice cream
- teacher records issues
- T prompts S for analysis
- If conditionals
- Modal situations
- save content to file
Trying to get question tab working in development version. Much to do there yet. Thinking hard about what forces are behind creating a web UI. I can't copy and paste working bits to get them working elsewhere. Too much repetition in the code!
TODO on save notify user that sentence was saved in adj noun verb tab
TODO clear all text fields contents in pros_cons
bug report
on saving new student grammar track
error
File "/home/dgd/Desktop/python_storyboard_flashcards/working.development_python_storyboards.py", line 1628, in <module>
window["input2"].update(hold_json[most_recent_date]["articles"][0])
KeyError: 'articles'```
# 2022 Jan 6
found my word list folder was missing!
I don't remember if I had pushed my most recent changes to github before ending my day yesterday.
# 2022 Jan 5
Got the grammar tracker save and load JSON to work.
It's important to think through the save and load process! All of the save/load code could have been generated at the beginning.
Test often is also important.
Sensical naming structures is critical e.g. 'input' is just useless when having to refactor!
# bash tip sort
cat verbs.txt | sort | uniq>outv.txt
quickly sort and get uniq values only.
# bash tip change upper case to lower
tr '[:upper:]' '[:lower:]' < linking_words_reason.txt > output.txt
# language teacher?
Check out the tips page in the app. It's not complete but it'll get your started.
# thanks
Thanks go to Horst Jens who was instrumental in teaching me how to build this application.