A modern, interactive flashcard application built with React and Vite for studying topics like AWS, DevOps, and general knowledge.
- Interactive Flashcards: Create, edit, and delete custom flashcards with flipping animations
- Quiz Mode: Test your knowledge with randomized quiz sessions
- Score Tracking: Track your progress with detailed score history and statistics
- Local Storage: All data is automatically saved to your browser's local storage
- Import/Export: Backup and restore your flashcards as JSON files
- Categories: Organize flashcards by topic (AWS, DevOps, General Knowledge)
- Difficulty Levels: Set difficulty levels (Easy, Medium, Hard) for each card
- Tags: Add custom tags to organize and categorize your cards
- Responsive Design: Works great on desktop, tablet, and mobile devices
- Clone or download this repository
- Navigate to the project directory
- Install dependencies:
npm install
- Start the development server:
npm run dev
- Open your browser and visit
http://localhost:5173
- Click the "Add Card" button in the navigation
- Fill in the question, answer, category, and difficulty
- Optionally add tags for better organization
- Click "Create Flashcard" to save
- Click on any flashcard to flip it and reveal the answer
- Use the category filter to focus on specific topics
- Edit or delete cards using the action buttons
- Select a category or use "All Categories"
- Click "Start Quiz" to begin
- Read each question and flip the card to see the answer
- Mark yourself as correct or incorrect
- View your results at the end
- Click "Scores" in the navigation to see your quiz history
- View statistics like average score, best score, and total quizzes taken
- Track your improvement over time
- Export: Click "Export" to download your flashcards as a JSON file
- Import: Click "Import" to upload a previously exported JSON file
src/
├── components/ # React components
│ ├── Flashcard.jsx # Individual flashcard component
│ ├── FlashcardForm.jsx # Form for creating/editing cards
│ ├── Quiz.jsx # Quiz mode component
│ └── ScoreBoard.jsx # Score history and statistics
├── hooks/ # Custom React hooks
│ └── useFlashcards.js # Main state management hook
├── utils/ # Utility functions
│ └── storage.js # Local storage operations
├── data/ # Sample data and constants
│ └── sampleData.js # Pre-loaded flashcards
└── styles/ # CSS files for components
The app comes pre-loaded with flashcards in three categories:
- AWS: Amazon Web Services concepts and services
- DevOps: Development operations practices and tools
- General Knowledge: Programming and technology concepts
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint
- React - UI framework
- Vite - Build tool and development server
- Lucide React - Icon library
- CSS3 with modern features like CSS Grid and Flexbox
All flashcards and quiz scores are automatically saved to your browser's local storage. This means:
- Your data persists between sessions
- No internet connection required
- Data is private to your browser
- Use export/import to backup or transfer data
- Flipping Animation: Smooth 3D flip animation reveals answers
- Color-coded Difficulty: Visual indicators for Easy (green), Medium (yellow), Hard (red)
- Rich Metadata: Categories, tags, and creation timestamps
- Randomized Questions: Cards are shuffled for each quiz session
- Self-Assessment: You determine if your answer was correct
- Progress Tracking: Visual progress bar and question counter
- Detailed Results: Score percentage, time taken, and category
- Historical Data: Keep track of all past quiz attempts
- Statistics: Average score, best score, total quizzes
- Visual Progress: Color-coded scores and progress indicators
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is open source and available under the MIT License.
- Cloud synchronization
- Spaced repetition algorithm
- Collaborative study sessions
- Advanced analytics and insights
- Voice recording for pronunciation
- Image support in flashcards
- Study streaks and achievements+ Vite
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Currently, two official plugins are available:
- @vitejs/plugin-react uses Babel for Fast Refresh
- @vitejs/plugin-react-swc uses SWC for Fast Refresh
If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the TS template for information on how to integrate TypeScript and typescript-eslint in your project.