A modern, premium web-based flashcard application built with React & Vite. Turn your CSV notes into interactive study cards instantly.
- 📂 CSV Import: Drag & drop support for any CSV file.
- 🔄 Smart Column Mapping: flexible mapping for Front (Question), Back (Answer), and Category columns.
- 💾 Local Persistence: Your cards and progress are automatically saved to your browser's local storage.
- 📊 Library View: Overview of your deck statistics with powerful filtering options.
- 🎯 Advanced Review: Filter study sessions by Category or Difficulty (e.g., "Review only Hard cards").
- 🧠 Spaced Repetition Style: Rate cards as Easy, Medium, or Hard. "Hard" cards are automatically requeued in the current session.
- 🎨 Premium UI: Beautiful glassmorphism design, 3D card flips, and fully responsive layout for mobile & desktop.
- ⌨️ Keyboard Shortcuts: Optimized for power users (Space to flip, Arrows to navigate, 1-3 for rating).
- Framework: React
- Build Tool: Vite
- Styling: Vanilla CSS (Custom Glassmorphism Design System)
- Deployment: GitHub Actions & GitHub Pages
- Node.js (v16 or higher)
- npm or yarn
-
Clone the repository
git clone https://github.com/YOUR_USERNAME/flashcard-app.git cd flashcard-app -
Install dependencies
npm install
-
Start the development server
npm run dev
Open http://localhost:5173 to view it in the browser.
- Upload Data: Drag and drop a CSV file containing your flashcard data.
- Map Columns: Select which columns correspond to the Front (Question), Back (Answer), and optionally Category.
- Study:
- Space / Click: Flip card
- Left / Right Arrow: Previous / Next card
- 1 / 2 / 3: Rate as Easy / Medium / Hard
- Review: Go to the Library view to see stats and start targeted review sessions (e.g., "Math" category, "Hard" difficulty only).
This project is configured for automatic deployment to GitHub Pages.
- Push your code to a GitHub repository.
- Go to Settings > Pages in your repository.
- Under Build and deployment, select GitHub Actions as the source.
- The included
.github/workflows/deploy.ymlwill automatically build and deploy your app on every push tomain.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.