This is a little website I've put together to allow me to easily make flash cards and quiz myself for memorization of:
- general cs knowledge
- vocabulary
- definitions of processes
- powers of 2
- design patterns
- code
- data structures
- algorithms
- solving problems
- bitwise operations
Will be able to use it on: - desktop - mobile (phone and tablet)
It uses:
- Python 3
- Flask
- SQLite
- Clone project to a directory on your web server.
- Edit the config.txt file. Change the secret key, username and password. The username and password will be the login for your site. There is only one user - you.
- Follow this long tutorial to get Flask running. It was way more work than it should be:
https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-uwsgi-and-nginx-on-ubuntu-16-04
wsgy.py
is the entry point. It callsflash_cards.py
- This is my systemd file
/etc/systemd/system/flash_cards.service
: view- you can see the paths where I installed it, and the name of my virtualenv directory
- when done with tutorial:
sudo systemctl restart flash_cards sudo systemctl daemon-reload
- When you see a login page, you're good to go.
- Uncomment the commented block in
flash_cards.py
- Restart Flask. You have to use
sudo systemctl restart flash_cards
. - Hit the URL /initdb on your web server. You'll see a message that the database has been initialized.
- Comment that code again.
- Restart Flask.
- Go to / on your webserver.
- Log in.
- Click the "General" or "Code" button and make a card!
- When you're ready to start memorizing, click either "General" or "Code" in the top menu.
Provided by @Tinpee - tinpee.dev@gmail.com
Make sure you already installed docker
- Clone project to any where you want and go to source folder.
- Edit the config.txt file. Change the secret key, username and password. The username and password will be the login for your site. There is only one user - you.
- Build image:
docker build . -t cs-flash-cards
- Run container:
docker run -d -p 8000:8000 --name cs-flash-cards cs-flash-cards
- Go your browser and type
http://localhost:8000
If you already had a backup file cards.db
. Run following command:
Note: We don't need to rebuild image, just delete old container if you already built.
docker run -d -p 8000:8000 --name cs-flash-cards -v :<path_to_folder_contains_cards_db>:/src/db cs-flash-cards
.
<path_to_folder_contains_cards_db>
: is the full path contains cards.db
.
Example: /home/tinpee/cs-flash-cards/db
, and cards.db
is inside this folder.
For convenient, if you don't have cards.db
, this container will auto copy a new one from cards-jwasham.db
. So you don't need to initdb
.
We just need store cards.db
file, and don't need any sql command.
- If you run container with
-v <folder_db>:/src/db
just go tofolder_db
and storecards.db
anywhere you want. - Without
-v flag
. Type:docker cp <name_of_container>:/src/db/cards.db /path/to/save
- Delete old container (not image):
docker rm cs-flash-cards
- Build a new one with
-v flag
:docker run -d -p 8000:8000 --name cs-flash-cards -v <path_to_folder_contains_cards_db>:/src/db cs-flash-cards
- Voila :)
Happy learning!