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

Installation

macOS (Homebrew)

brew tap Pairadux/lapse
brew install --cask lapse

Arch Linux (AUR)

yay -S lapse-appimage

Windows

Download the latest .zip from GitHub Releases, extract, and run lapse.exe.

Linux (Other)

Download the latest .AppImage from GitHub Releases, make it executable, and run it:

chmod +x lapse-*.AppImage
./lapse-*.AppImage

Building from Source

Prerequisites

  • Flutter SDK
  • Dart SDK
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.