Spanish Flash Card Web App
A bespoke flash card web app built with Django used to teach myself Spanish vocabulary quickly using data to analyse my progress.

Contents
Key Points
- A
Djangoweb app deployed onHerokuusing aPostgresdatabase. - Applies 'spaced repetition' theory and data tracking to present words at the perfect time.
- Aided in my journey to becoming proficient in Spanish at a C1 level.
Features
At first glance this app looks like a simple flash card app like any other. Underneath, however, it's powered by a sophisticated data analytical powerhouse used to track your progress and optimise your learning. Well that's a bit exaggerated, but it is cool.

No fancy `JS` frameworks here, just good old `HTML` and `Ajax` calls.
Fill the app with the phrases you want learn and the app cleverly feeds you new phrases once you've begun to master old ones. This spaced repetition technique has found to be effective in learning vocabulary.
Some key features:
- View phrases in a random language or choose one specifically.
- It sports a voice synthesiser (with real accents!) for listening practice.
- Isolate phrases based how easy/medium/hard they are according to your past performance.
- Use keyboard shortcuts to quickly mark words and other actions.
- Group phrases in sets and activate specific sets and/or phrases that you wish to practice.
- Import 100s of phrases in one go via a text parser interface.

Includes a multi-parameter filter, pagination, and lovely CRUD operations.

Check out your overall performance or dive into specific stats for each phrase.
The Tech
This web app was built in Django and deployed on Heroku with a Postgres database. This was built for web in order to practise web development, but also to be able to access the data and progress from any device, anywhere in the world.
Django
- A
Pythonbased server framework used to serveHTML, handle DB calls, and front APIs used by the front end. - Is DB agnostic so tests are setup with
SQLiteand production withPostgres. - Ships with niceties like user auth, safeguards against SQL injection, powerful admin screens, and much more.
- The 'd' is silent.
Heroku
- A PaaS used to host the
Djangoserver andPostgresDB. - Makes deployment is super easy. Simply push to a
Gitrepo andHerokuhandles the rest. - The app was built for me and is hosted privately. Their free and dev tiered products are perfect for this use case.
Frontend
HTMLis built dynamically throughDjangoand its templates. No frontend libraries are used for rendering.jQueryis used for interactivity and handling server API calls throughAjaxusingJSON.- Phrases are returned in batches and the API is called in advanced in order to eliminate lag under heavy use.
