A simple flash card application built with Django to help with learning and memorization through spaced repetition.
This project is a web-based flash card system that allows users to:
- Create and manage decks of flash cards
- Add cards with questions and answers
- Review cards using spaced repetition
I developed this project just to learn Python and Django. It is a simple application that demonstrates the use of Django for building web applications, and it can be extended with more features in the future.
Here's a visual overview of the application:
View your decks
Back side of the flash card, allowing us to click to flip
Front side of a flash card, showing the feedback options
The following dependencies are needed:
- Python 3.11.4 (but should work with newer versions)
- Django 5.2
For development purposes, you need to install:
- Django Debug Toolbar
- Pytest
- Pylint
- Pylint Django
- Python Dotenv
-
Clone the repository.
-
Navigate to the project directory:
cd django-flash-cards- Create and activate a virtual environment:
python -m venv .venv
source .venv/bin/activate # works on unix environments- Install dependencies:
pip install -r requirements.txt
# Just for development
pip install -r requirements-dev.txt- Run migrations:
python manage.py migrate- Start the development server:
python manage.py runserver- Create
.envfile Configure the following variable to the.envfile:
APP_TIME_ZONE=YOUT_TIMEZONEReplace YOUR_TIMEZONE by your timezone. You can find a list of timezones here. This configuration you display correctly the time in the application.
Also, you can configure the following variables:
APP_DATABASE_FILE=/path/to/database/file
APP_DEBUG=False/TrueThe objective of the APP_DATABASE_FILE variable is to change the location of the SQLite database file. By default, it is created in the root directory of the project. You can change it to any other location.
- Create an account or log in into Django Admin
# If you need to create a Django admin user
python manage.py createsuperuser- Create a new deck
- Add cards to your deck
- Start reviewing!


