Skip to content

Pairadux/lapse

Repository files navigation

Lapse - Forget Less. Remember More

A cross-platform flashcard app with spaced repetition, built with Flutter.

This is a school project and is not accepting outside contributions. Pull requests, issues, and comments from non-team members will be closed without review.

Features

  • Spaced Repetition — FSRS algorithm for optimal review scheduling
  • Nested Decks — Organize cards into hierarchical deck structures
  • Offline-First — Local SQLite storage, study anywhere
  • Cross-Platform — Linux, macOS, Windows, Android, iOS
  • Custom Desktop UI — Frameless window with native-themed titlebar buttons

Tech Stack

Layer Technology
Framework Flutter
State Management Riverpod
Routing GoRouter (flat routes, platform-aware transitions)
Database SQLite via sqflite
Scheduling FSRS (Free Spaced Repetition Scheduler)
Desktop Titlebar window_manager + modern_titlebar_buttons

Project Structure

lib/
├── core/
│   ├── database/       # DatabaseHelper, constants
│   ├── routing/        # GoRouter config, page transitions
│   ├── theme/          # Material 3 dark theme, colors, spacing
│   └── widgets/        # Shared components (AppScaffold, dialogs, etc.)
├── features/
│   ├── cards/          # Flashcard CRUD
│   ├── decks/          # Deck management (nested hierarchy)
│   └── study/          # Study sessions, FSRS scheduling
└── main.dart

Getting Started

Prerequisites

  • Flutter SDK
  • Dart SDK

Build & Run

git clone https://github.com/Pairadux/lapse.git
cd lapse
flutter pub get
flutter run

A dev drawer (swipe from left edge) is available in debug builds for navigating screens and loading mock data.

Status

This project is in active development as a school project. See docs/ for AI usage logs and design documentation.

License

This project is licensed under the GNU General Public License v3.0.