Skip to content

KamilKrol5/learning-cards

Repository files navigation

learning-cards

CircleCI

A simple web application which helps learning using flashcards.
API description can be found here: https://github.com/KamilKrol5/learning-cards/blob/master/backend/API_description.md

Technologies

  • Python 3.7,
  • Django 2.2.20 and Django REST Framework 3.12.4,
  • React with Redux,
  • Bootstrap 4.4.1,
  • JWT authentication.

How to run?

Backend - Django application
  1. Install python 3.7.
    $ sudo apt-get update
    $ sudo apt install python3.7
  2. Install pip for Python 3.
    $ sudo apt-get install python3-pip
  3. Install requirements.
    $ sudo python3.7 -m pip install -r backend/requirements.txt
  4. Create migrations and make migrations.
    $ python3.7 backend/manage.py makemigrations
    $ python3.7 backend/manage.py migrate
  5. Run Django development server (not for production purposes).
    $ python3.7 backend/manage.py runserver 8000
Frontend - React application
  1. Install NodeJS
  2. Enter 'front' directory and initialize project.
    $ cd front
    $ npm install
  3. Start React application
    $ npm start

Screenshots

Start page:
Screenshot Registering new user. The password has to be at least 8 characters long and is stored in hashed form in DB:
Screenshot Main user panel - after logging in: Screenshot Creating new learning set named "Trees". Empty sets are allowed: Screenshot Viewing "Trees" set. A user can choose between two modes to learn the definitions from this set: Screenshot Editing "Trees" learning set. Every item can be removed, changed or deleted. The set name is also changeable: Screenshot "Flashcard" (first) learning mode. User can see all flashcards in the set one by one: Screenshot "Writing" (second) learning mode. User needs to write the definition in the field. If the answer is not correct, the card will apear again while learning. Statistics can be seen at the bottom: Screenshot