A tool to turn PDF slides into interactive flashcards for studying. It extracts images and titles from your lecture slides and presents them in a modern web application with a flip-card interface.
- Automatic Extraction: Converts PDF slides into flashcards.
- Local PDF Import & Management: [NEW] Drag and drop PDF files directly in the browser to create new decks. Manage your library by deleting unwanted decks instantly.
- Smart Detection: Identifies titles and content images, ignoring backgrounds.
- Web Interface: Mobile-friendly, responsive design with smooth animations and Collapsible Sidebar.
- Review Mode: Shuffle cards and track your progress.
- Quiz Mode: Test yourself with detailed scoring, speed analysis (Reflex/Thinker), and mistake tracking. Customize settings with typable inputs for length and timing.
- Dictionary Mode: Searchable plant database extracted from lecture PDFs. Includes a Daily Recommendation feature.
- Stats Dashboard: Visual analysis of your "Weakest Decks" and improvements over time.
- Python 3.x: For data extraction scripts.
- Node.js: For the web application.
- Clone or Download this repository.
- Install Python Dependencies:
pip install -r requirements.txt
- Install Web App Dependencies:
cd docs npm install
- Place your lecture slide PDFs in
pdfs/. - Run the card extraction script:
This creates
# Run from the root directory python pdf_to_data.py pdfsdocs/public/cards/anddocs/src/data/cards.json.
- Place your dictionary/textbook PDFs in
dictionary/. - Run the dictionary extraction script:
This creates
python dictionary_to_data.py
docs/src/data/dictionary.json.
- Start the app and click Import PDF in the sidebar.
- Drag and drop any PDF file to create a deck.
- Scroll down to see your "Local Decks" list, where you can delete decks you no longer need.
- Go to the docs directory:
cd docs - Start the local server:
npm run dev
- Open the link (usually
http://localhost:5173) in your browser.
To view this app on your phone, deploy it to GitHub Pages using these steps:
- Build the Project:
cd docs npm run build - Deploy the
distfolder:cd dist git init git add . git commit -m "Deploy update" git push -f https://github.com/Annie04082020/ReviewCardMaker.git gh-pages
- Enable Pages: Go to your GitHub Repository Settings -> Pages, and ensure it's serving from the
gh-pagesbranch.