SmartFlowEducational web app

SmartFlow turns knowledge into question-and-answer cards and schedules reviews based on previous answers, without requiring a manually maintained study plan.

Overview

Learn today, remember tomorrow

The problemCreating flashcards is only the beginning. Learners also need to know what to review, when to revisit it, and how they are progressing without juggling multiple tools.

The solutionOne app combines card creation, organization and recall sessions. A scheduling engine computes due dates, while a dashboard brings together pending cards and progress indicators.

User workflow

Question, category, answer

Enter a question, optionally select a category, then add its answer in a guided flow. The card is saved and can immediately be opened for its first review.

1 / 4: Create a flashcard. Previous step / Next step

Technical architecture

The React interface calls Next.js API routes, where review logic runs and data is read or updated through Prisma and PostgreSQL.

Web interface

Next.js / React

Card creation, review sessions and progress
HTTP requests

API routes

Next.js / TypeScript

Auth, due-date logic and domain actions
Reads and writes

Data access

Prisma ORM

Queries, relations and transactions
SQL transactions

Database

PostgreSQL

Cards, categories, accounts and review history
  • Web interface: Next.js / React. Card creation, review sessions and progress HTTP requests.
  • API routes: Next.js / TypeScript. Auth, due-date logic and domain actions Reads and writes.
  • Data access: Prisma ORM. Queries, relations and transactions SQL transactions.
  • Database: PostgreSQL. Cards, categories, accounts and review history

Technical challenges

01

Keep review due dates consistent

Constraint

Level rules spread across UI screens can produce inconsistent dates, especially around day boundaries.

The solution

A single domain module calculates due dates, overdue days and progression using Europe/Paris as the reference time zone.

02

Preserve reliable review history

Constraint

A card’s latest review date cannot reconstruct historical activity or consistency across sessions.

The solution

Each assessment updates the card and writes a review-log entry within the same Prisma transaction.

03

Tailor reporting to user progress

Constraint

An empty account, a new learner and an active learner each need different progress information.

The solution

A data calculator isolated from database access produces dashboard tiles and states tailored to each account’s situation.

Main technical stack

Next.jsReactTypeScriptTailwind CSSNode.jsPrisma ORMPostgreSQLPlaywright

Outcomes and learnings

An end-to-end review experience

Card creation, organization, daily queues, answer reveals and level-based progression work together in one application.

A contextual progress dashboard

The dashboard shows cards due, mastery levels, categories and indicators built from the review log.

Version-controlled checks

The repository includes Vitest unit tests and Playwright scenarios covering workflows, network states and responsive interfaces.