Best Flask open-source libraries and packages

FlashCardApp

An application which implements flashcards for memory training. It has some core functionalities such as rest api, user login, dashboard, review, deck management, validations, server sent events, async deck exports, discord webhook for daily notifications, Redis and Celery for backend jobs, visually aesthetic and responsive UI using Tailwindcss.
Updated 6 months ago

About The Project

dashboard

  • A flashcard is a card bearing information on both sides, which is intended to be used as an aid for memorization.
  • The front portion of a flashcard contains a cue or a question or a hint and the back portion of the flashcard contains the answer to it.
  • A deck is a collection of related cards. For example, a Japanese Deck contains Cards related to the Japanese language where the front portion of each card could be a word in English and the back portion of the card is the Japanese translation of the English word.
  • In this project a Single Page Application and an accompanying API has been created which implements Flashcards. This web app has been created using Flask and VueJS. It has some core functionalities such as user login, dashboard, review, deck management, validations, server sent events, async exports, webhooks, Redis and celery for backend jobs, and uses Tailwindcss for styling.

Frameworks and Technologies Used

  • The Flask framework was used for developing the backend. Especially for the API.

  • The API endpoints of Flask-Security were used for implementing the Login/Logout/Register system.

  • Flask-SQLAlchemy and SQLite were used for the Database.

  • Flask-RESTful was used for implementing the RESTful API.

  • Redis and Celery were used for implementing task workers, message queues and job scheduling in the backend.

  • Docker was used in order to containerize the frontend and backend.

  • Discord webhooks have been used for sending daily remainders.

  • The VueJS ecosystem of frameworks, namely Vue 3, Vue-Router for routing and Pinia for state management were used for building the frontend.

  • Tailwindcss and DaisyUI for styling.


Getting Started

You need Docker in order to run this application. Since this application uses Redis and Celery which are not supported on Windows, you need to have Docker and WSL installed in Windows in order to run this application.

Running the application

Since I have created a docker-compose.yml file with all the necessary instructions for the application, starting the application should be fairly simple. Docker will pull all the necessary images and dependencies for running the application so no prior setup is required. Just run the below command in the terminal at the root directory of the project.

docker-compose up -d

After a few seconds, you should now be able to access the app at http://localhost:8080

In order to stop the running application, run the below command

docker-compose down

Usage

After the application is up and running, you can start using and play around with its features. For any doubts related to using the app, please watch the presentation video.