Finglish is a learning language app that helps users learn new Farsi words using a flashcard system. Inspired by the lack of pronunciation feature in google translate for Farsi language, Finglish brings you pronunciation, translation and phonetic of most common Farsi words using flashcards. Once you are ready, you can take a quiz on each lesson and get an instant result.
Tech Stack
Requirements
Installation
Features
Future Features
Backend: Python, Flask, SQLAlchemy, PostgreSQL, AJAX
Frontend: Javascript, Jinja, jQuery, Bootstrap, Html, Css
Libraries: Beautiful Soup,
APIs: https://api.forvo.com/
I built a Postgres database of scraped Farsi words and their translations using beautiful soup library. As an auditory learner, I integrated the pronunciation feature for the Farsi words using an API called forvo.com which crowdsources correct pronunciation. I queried my database using SQL alchemy to create on-demand user lessons that come with a set of flashcards. I used JQuery to demonstrate the flashcards content, and finally, integrated a combination of javascript and CSS to create and animate the flashcards and provide quiz results.
- Flask==1.0.2
- Flask-DebugToolbar==0.10.1
- Flask-SQLAlchemy==2.3.2
- Jinja2==2.10
- MarkupSafe==1.0
- psycopg2==2.7.5
- SQLAlchemy==1.2.8
- beautifulsoup4
- RequestsSetup
- Pay for forvo.com basic plan and get a Secret KEY and save your Forvo Secret key in secret.sh file
- Create a virtual environment:
-$ virtualenv env
- Activate virtual environment:
-$ source env/bin/activate
- Install requirements:
-$ pip install -r requirements.txt
- Create database:
-$ createdb Finglish
- Create your database tables:
-$ python3 model.py
- Seed your data:
-$ seed.py
- Move your forvo key to secret.sh file and run it :
-$ source secrets.sh
- Run the app:
-$ python3 server.py
- view your app at :
- http://localhost:5000/
- Add searched words to lessons
- Have lessons to reflect the result of the quizes into creation of new lessons
- Add a notification for words with no pronouciation available