How rebwaromer/flashcard works
FlashCard is a study platform whose main workflow is: users sign in, organize sets and flashcards, take quizzes, and track progress; they can also manage study tasks. The React routes lead to feature pages and components, which use API modules to reach the Express server. Server routes dispatch to authentication, study, quiz, and user logic backed by PostgreSQL. The README documents spaced repetition, guest todos, profile settings, and responsive use; unsampled frontend and backend links are shown only where supported by the README or source index.
Main entry points: routes.js App routes · server.js Express server · db.js PostgreSQL · streak.js Streak tracking
Components 28
Study interface
- App routes
frontend/src/routes.js - Study home
frontend/src/pages/Home.js - Set browser
frontend/src/pages/sets.js - Set details
frontend/src/components/SetDetails .js - Card creation
frontend/src/components/FlashcardCreate.js - Quiz experience
frontend/src/pages/quiz.js - Todo pages
frontend/src/pages/todo.js - Guest todo
frontend/src/pages/todo-guest.js - Profile settings
frontend/src/pages/settings.js - User context
frontend/src/components/UserContext.js - User API
frontend/src/api/apiUser.js
API and access
- Express server
backend/server.js - User routes
backend/routes/userRoutes.js - Card routes
backend/routes/CardsRoutes.js - Set routes
backend/routes/SetsRoutes.js - Todo routes
backend/routes/todoRoutes.js - Quiz routes
backend/routes/quizRoutes.js - Authentication
backend/middleware/authMiddleware.js
Study features
- Card operations
backend/Cards - Set operations
backend/Sets - Todo operations
backend/todo - Quiz and review
backend/routes/quizRoutes.js
Account and progress
- User operations
backend/users - Streak tracking
backend/users/streak.js
Persistence and email
- PostgreSQL
backend/db.js - Verification email
backend/utils/emailSender.js
Other components
- Learner
- Email provider
Connections 37
- Learner → App routes: opens app
frontend/src/routes.js - App routes → Study home: routes to
frontend/src/routes.js - App routes → Set browser: routes to
frontend/src/routes.js - App routes → Set details: routes to
frontend/src/routes.js - App routes → Card creation: routes to
frontend/src/routes.js - App routes → Quiz experience: routes to
frontend/src/routes.js - App routes → Todo pages: routes to
frontend/src/routes.js - App routes → Guest todo: routes to
frontend/src/routes.js - App routes → Profile settings: routes to
frontend/src/routes.js - User context → User API: checks login
frontend/src/components/UserContext.js - Set details → Card operations: uses card API
frontend/src/components/SetDetails .js - Express server → User routes: mounts
backend/server.js - Express server → Card routes: mounts
backend/server.js - Express server → Set routes: mounts
backend/server.js - Express server → Todo routes: mounts
backend/server.js - Express server → Quiz routes: mounts
backend/server.js - User routes → Authentication: protects routes
backend/routes/userRoutes.js - Card routes → Authentication: protects routes
backend/routes/CardsRoutes.js - Set routes → Authentication: protects routes
backend/routes/SetsRoutes.js - Todo routes → Authentication: protects routes
backend/routes/todoRoutes.js - Quiz routes → Authentication: protects routes
backend/routes/quizRoutes.js - Card routes → Card operations: dispatches CRUD
backend/routes/CardsRoutes.js - Set routes → Set operations: dispatches CRUD
backend/routes/SetsRoutes.js - Todo routes → Todo operations: dispatches CRUD
backend/routes/todoRoutes.js - User routes → User operations: dispatches account actions
backend/routes/userRoutes.js - Quiz routes → PostgreSQL: reads and writes
backend/routes/quizRoutes.js - Card routes → Streak tracking: updates streak
backend/routes/CardsRoutes.js - Set routes → Streak tracking: updates streak
backend/routes/SetsRoutes.js - Todo routes → Streak tracking: updates streak
backend/routes/todoRoutes.js - Quiz routes → Streak tracking: updates streak
backend/routes/quizRoutes.js - Streak tracking → PostgreSQL: reads and writes
backend/users/streak.js - User operations → Verification email: sends verification
backend/users/register.js - Verification email → Email provider: sends email
backend/utils/emailSender.js - Card operations → PostgreSQL: queries
backend/Cards/createCard.js - Set operations → PostgreSQL: queries
backend/Sets/createSet.js - Todo operations → PostgreSQL: queries
backend/todo/createTodo.js - User operations → PostgreSQL: queries
backend/users/login.js