Repository navigation
FlashLearn v5.0.1
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.txtand installs the required dependencies to host the site.
- Create environment file:
- Create a file called
.env - Copy the contents of
.env.exampleto.env
- Create a file called
- 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
- The URL looks similar to:
-
SUPABASE_URL- The URL looks similar to:
https://[DB ID Here].supabase.co - Can be found at: Connect
$\to$ App Frameworks
- The URL looks similar to:
-
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
- In Line 7 of
-
SUPABASE_ANON_KEY- In Line 8 of
index.html, update the key with the same one as in.env
- In Line 8 of
-
- 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:8080in your browser
- Run
⭐ 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