A modern, full‑stack flashcards app for fast learning and spaced repetition.
- Smart study: deck management, interactive flips, difficulty ratings, progress.
- Spaced repetition: configurable scheduling and review statistics.
- Fast DX: Vite dev server, hot reload, and a Windows helper script.
- Clean UI: Tailwind, motion, and iconography.
- Frontend: React 18, Vite, Tailwind CSS, React Router, Framer Motion, Lucide Icons
- Backend: Node.js, Express, SQLite3, CORS, UUID
- Node.js >= 18
- npm >= 9
# Clone
git clone https://github.com/CodeByMed/Educards-flashcards
cd Educards
# Backend deps
cd backend && npm install
# Frontend deps
cd ../frontend && npm install# From repo root
./start-dev.bat- Backend:
http://localhost:5000 - Frontend:
http://localhost:3000
# Backend
cd backend && npm run dev
# Frontend (new terminal)
cd frontend && npm run dev- Create a deck, add cards (front/back), choose difficulty.
- Start study mode, flip cards, rate recall (Easy/Medium/Hard).
- Track accuracy and review queue over time.
GET /api/decks— list decksPOST /api/decks— create deckGET /api/decks/:id— deck by idPUT /api/decks/:id— update deckDELETE /api/decks/:id— delete deckGET /api/decks/:deckId/flashcards— list cardsPOST /api/decks/:deckId/flashcards— create cardPUT /api/flashcards/:id— update cardDELETE /api/flashcards/:id— delete cardPUT /api/flashcards/:id/review— update review stats
# Frontend production build
cd frontend && npm run build
# Start backend (production)
cd ../backend && npm startEducards/
├─ backend/
│ ├─ server.js
│ ├─ package.json
│ └─ educards.db
├─ frontend/
│ ├─ src/
│ │ ├─ components/
│ │ ├─ context/
│ │ ├─ App.jsx
│ │ ├─ main.jsx
│ │ └─ index.css
│ ├─ index.html
│ ├─ package.json
│ ├─ vite.config.js
│ └─ tailwind.config.js
└─ README.md
- Fork, branch, commit, and open a pull request. Keep commits focused.
- Use clear naming and descriptive messages.
MIT — see LICENSE.
- Node.js: >= 18 recommended
- React: 18.x
- Vite: 5.x
- Tailwind CSS: 3.x
- Express: 4.x
- SQLite3: 5.x
All pinned with caret ranges to receive compatible minor/patch updates. Update with npm install in each folder to pick up the latest compatible versions.





