Skip to content

FlashLearn v5.0.1

Choose a tag to compare

@Poqq123 Poqq123 released this 03 Mar 02:35
· 30 commits to main since this release

FlashLearn prototype for bug bash and demo purposes

⚙️ How to Execute the Program:

🚀 Recommended Execution Approach:

  • Click on the available live demo URL: FlashLearn

🛠️ Alternate Execution Approach (Don't do this unless the Live site is Broken):

  • This method allows you to host the website yourself locally
  • Clone the repo to your local machine:
    • git clone https://github.com/Poqq123/FlashLearn.git
  • Enter the project folder:
    • cd FlashLearn
  • Install dependencies (Python 3.11+ is Required):
    • pip install -r requirements.txt
    • This command goes through requirements.txt and installs the required dependencies to host the site.
  • Create environment file:
    • Create a file called .env
    • Copy the contents of .env.example to .env
  • Fill required environment variables in .env (Create a Supabase account & project):
    • DATABASE_URL
      • The URL looks similar to: postgresql://postgres:[PASSWORD]@[aws-0-region.pooler.supa... (URL length is cut for space purposes)
      • Can be found at: Connect $\to$ Connection String $\to$ Method $\to$ Session pooler
    • SUPABASE_URL
      • The URL looks similar to: https://[DB ID Here].supabase.co
      • Can be found at: Connect $\to$ App Frameworks
    • SUPABASE_ANON_KEY
      • This looks like a VERY long string of characters
      • Can be found at: Project Settings $\to$ API Keys $\to$ Legacy anon, service_role API Keys Tab
    • SUPABASE_JWT_SECRET
      • Looks like a long string with character counts of 8-4-4-4-12 (With the dashes in-between)
      • Can be found at: Project Settings $\to$ JWT Keys
  • Update index.html:
    • SUPABASE_URL
      • In Line 7 of index.html, update the URL with the same one as in .env
    • SUPABASE_ANON_KEY
      • In Line 8 of index.html, update the key with the same one as in .env
  • Start backend API by running this command in the same terminal:
    • uvicorn main:app --reload --env-file .env
  • Open frontend:
    • Run python -m http.server 8080
    • Access the server at http://localhost:8080 in your browser

⭐ Key Features:

  • ✅ Assign flashcards to a specific collection
  • ✅ Authentication via Google
  • ✅ Avatar (profile picture) customization with preset choices
  • ✅ Create/Edit/Delete flashcard collections
  • ✅ Create/Edit/Delete flashcards
  • ✅ Deleting a collection preserves flashcards by unassigning them
  • ✅ Display flashcards/collections
  • ✅ Filter study sessions by all cards or a selected collection
  • ✅ Flip the flashcard to show the answer or the question
  • ✅ Header profile menu for quick profile access and logout
  • ✅ Import/Export collections as JSON file
  • ✅ Move to previous or next flashcard
  • ✅ Profile page that shows account info (name, email, member since, total flashcards)
  • ✅ Quiz mode statistics (Total cards, total sets, average mastery, reviewed today)
  • ✅ Quiz mode that allows you to evaluate your knowledge of a collection
  • ✅ Reset progress stats for all cards or the currently selected collection
  • ✅ Search collections on the quiz page and focus on a specific set
  • ✅ Stay logged in across sessions