Prototype for Tools.EFL.Coach ("TEFLC"), a concept for a subdomain of my site EFL.Coach. This project intends to provide English as a Foreign Language (EFL) teachers with a platform to teach vocabulary lists with dynamically-generated activities and materials.
To peruse all screeenshots of this project, please navigate to /TEFLC/static/screenshots
- Interactive web-apps for teaching vocabulary
- "No Prep Apps" accessible without login (pictured above)
- "Vocabulary Apps" use connected user word lists (requires login) (pictured above)
- "Print Apps" allow generating printable assets for lessons
- Customizable user account profile pictures (pictured above)
- Custom editable word lists (pictured above)
- Poggle: Boggle clone that generates boards with a pausable timer (pictured below)
- Visual Story Generator: generates story prompts via Lorem Picsum
- Unscramble: mini-game that scrambles active word list and records high scores (pictured below)
- Word Lotto: a simple EFL game for young learners to practice reading and writing vocabulary (pictured below)
- Word Search Generator: unlike other word searches, this one generates filler characters based on the relative letter frequency in the English language
- Flask Jinja2 templatized HTML
- All custom HTML/CSS organized with SMACSS
- Web-apps built with JavaScript and/or Python served with Flask
- Flask-SQLAlchemy database of user information (including word lists)
- wordInfo.py generates detailed information about a word and stores it in JSON
- This script uses a combination of API calls (DataMuse, GoogleTrans, ENG_to_IPA) and web-scraping with BeautifulSoup
- All SVG image assets created by me with Inkscape/GIMP
{
"word": "apple",
"wordV": 0,
"ipa": "/ˈæpəl/",
"audio": "https://lex-audio.useremarkable.com/mp3/apple_us_1.mp3",
"type": "noun",
"typeV": 0,
"definition": "a round fruit with red, yellow, or green skin and firm white flesh",
"definitionV": 0,
"images": [
"https://live.staticflickr.com/1708/24591388896_bb7bec70c1_b.jpg",
"https://images.unsplash.com/photo-1568702846914-96b305d2aaeb?ixlib=rb-1.2.1",
"https://purepng.com/public/uploads/large/big-red-apple-xad.png"
],
"imagesV": 0,
"imageSelected": "",
"syllables": 2,
"syllablesV": 0,
"sentence": "The rotten apple injures its neighbours.",
"sentenceV": 0,
"related": [
"applaud",
"applause",
"applet",
"appliance",
"applicable",
"applicant",
"application",
"applied",
"applique",
"apply"
],
"relatedV": 0,
"synonyms": [
"aquamarine",
"beryl",
"blue-green",
"chartreuse",
"fir",
"forest",
"grass",
"jade",
"kelly",
"olive"
],
"synonymsV": 0,
"antonyms": [
"experienced",
"expert",
"old",
"skilled",
"withered"
],
"antonymsV": 0,
"rhymes": [
"appel",
"appell",
"chapel",
"chappel",
"chappell",
"chapple",
"grapple",
"kappel",
"snapple",
"stapel"
],
"rhymesV": 0
}
This project was guided by Corey Schaefer's Flask Tutorials series. This was my big pandemic lockdown project and was all self-taught through YouTube, documentation, and experimentation. I learned a lot about using Python for web development and templatizing code.
I have left most of my files unedited to include my detailed comments, concerns, and to-dos. Though I consider this project unfinished and this version limited, everything included above is functional. I hope to rebuild this project later into my current studies as a Software Development student.