Skip to content

Optimize your learning with SmartFlow. A modern flashcard platform using the Leitner system and spaced repetition for maximum retention.

License

Notifications You must be signed in to change notification settings

vincedsb1/smartflow

Repository files navigation

SmartFlow Cover

SmartFlow

An intelligent spaced-repetition platform designed to optimize learning and memory retention through a modern, fluid user experience.


SmartFlow Interface

✨ Core Features

  • 🧠 Spaced Repetition Engine: Automatically schedules reviews based on performance to maximize long-term retention.
  • 🗂️ Smart Organization: Manage knowledge with intuitive decks, color-coded categories, and visual tags.
  • 📊 Progress Tracking: Visual insights into mastery levels with detailed statistics and daily review queues.
  • 🎨 Modern UI/UX: A responsive, dark-mode ready interface built with NextUI and Framer Motion for smooth interactions.
  • 🔐 Secure Authentication: Robust custom JWT authentication system including email verification and password recovery flows.

🛠️ Tech Stack


🚀 Getting Started

Follow these steps to get a local development environment up and running in minutes.

Prerequisites

  • Node.js (v18 or higher)
  • PostgreSQL (Local instance or cloud provider like Supabase/Neon)

1. Installation

Clone the repository and install dependencies:

git clone https://github.com/your-username/smartflow.git
cd smartflow
npm install

2. Environment Variables

Create a .env file in the root directory.

⚠️ Important: Never commit your .env file to version control.

# Database Connection
DATABASE_URL="postgresql://user:password@localhost:5432/smartflow?schema=public"

# Authentication Secrets
APP_SECRET="your-super-secure-jwt-secret-key"

# Application Settings
BASE_URL="http://localhost:3000"
NEXT_PUBLIC_ENV="local" # Use 'prod' for production

# Email Services (Resend)
RESEND_API_KEY="re_123456789"

3. Run the Development Server

Start the application locally:

npm run dev

The application will be available at http://localhost:3000.


⚙️ Configuration

Database Setup

This project uses Prisma for database management. Before running the app, ensure your database schema is pushed and seeded with initial data.

  1. Push Schema to DB:

    npx prisma db push
  2. Seed Initial Data: Populates the database with default languages, colors, and test users.

    npm run seed

📄 License

Distributed under the MIT License. See LICENSE for more information.

About

Optimize your learning with SmartFlow. A modern flashcard platform using the Leitner system and spaced repetition for maximum retention.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •