Skip to content

Latest commit

ย 

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Synapse

Contextual Active Recall Canvas โ€” A hierarchical note-taking tool that preserves the big picture while enabling friction-free active recall.

License: MIT Next.js TypeScript


๐ŸŽฏ The Problem

Medical students (and anyone facing high-volume, interconnected information) are forced to choose between:

  • ๐Ÿ“„ Linear notes (PDFs, Word, OneNote) โ€” Great for context, but completely passive. No built-in way to test yourself.
  • ๐Ÿƒ Flashcards (Anki) โ€” Excellent for spaced repetition, but destroy the big picture. You memorize isolated facts without understanding how they connect.

The result? Fragmented knowledge. You know that magnesium sulfate is used for eclampsia, but you can't recall where it fits in the broader management protocol.


๐Ÿ’ก The Solution

Synapse is a lightweight, local-first hierarchical outliner on an infinite canvas that lets you:

  1. Map interconnected topics as a tree (e.g., Eclampsia โ†’ Management โ†’ Magnesium Sulfate Protocol)
  2. Collapse the entire canvas to test your high-level framework
  3. Expand nodes one-by-one to verify your memory โ€” without losing context
  4. Tag weak areas with visual status flags (red = failed, yellow = review, green = mastered)
  5. See a heat-map of your knowledge gaps when the tree is collapsed

Progressive Disclosure + Contextual Active Recall = No more choosing between structure and testing.


โœจ Core Features (V1)

Feature Description Why It Matters
Hierarchical Nodes Parent-child relationships that preserve topic structure Never lose the "big picture"
Global Toggle Collapse all / expand all with one click Test your mental framework instantly
Individual Collapse Click any node to hide/show its children Drill down exactly where you need practice
Status Tagging Mark nodes as Mastered (๐ŸŸข), Review (๐ŸŸก), or Failed (๐Ÿ”ด) Self-directed metacognition
Heat-Mapping Collapsed parents show aggregated child statuses Visual knowledge gap analysis
Infinite Canvas Pan and zoom to organize large topic maps Scale from a single lecture to an entire syllabus
Local-First Auto-saves to browser storage, zero backend Privacy, speed, offline-first

๐Ÿš€ Quick Start

Prerequisites

  • Node.js 18+ and npm/yarn/pnpm

Installation

# Clone the repository
git clone https://github.com/yourusername/synapse.git
cd synapse

# Install dependencies
npm install

# Run development server
npm run dev

Open http://localhost:3000 in your browser.


๐Ÿ“– How to Use

1. Create Your First Topic Tree

  • Click anywhere on the canvas to create a root node (e.g., "Hypertensive Disorders in Pregnancy")
  • Click the + icon on a node to add a child (e.g., "Pre-eclampsia", "Eclampsia")
  • Build out your hierarchy to match how the topic is structured in your mind

2. Test Yourself with Progressive Disclosure

  • Click "Collapse All" in the toolbar โ€” only your root nodes remain visible
  • Look at "Eclampsia" and try to recall its management protocol mentally
  • Click to expand and verify your answer
  • Keep drilling down level-by-level

3. Tag Your Weak Spots

  • After expanding a node, click the status indicator to cycle through:
    • โšช None (default)
    • ๐Ÿ”ด Failed (couldn't recall)
    • ๐ŸŸก Review (partially remembered)
    • ๐ŸŸข Mastered (confident)

4. See Your Knowledge Heat-Map

  • Collapse parent nodes to see aggregated child statuses
  • A badge shows: 3 failed, 2 review, 5 mastered
  • Focus your next study session on red-heavy branches

5. Your Work Auto-Saves

  • Everything saves to browser localStorage automatically
  • Refresh the page โ€” your canvas loads exactly as you left it

๐Ÿ—๏ธ Tech Stack

Layer Technology Why
Framework Next.js 13+ (App Router) Modern React, built-in routing
Language TypeScript Type safety for complex tree logic
State Zustand Lightweight, no boilerplate
Storage localStorage Local-first, zero backend for V1
Styling Tailwind CSS Rapid UI iteration

๐Ÿ—‚๏ธ Project Structure

synapse/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ app/                   # Next.js pages
โ”‚   โ”‚   โ”œโ”€โ”€ page.tsx          # Canvas list
โ”‚   โ”‚   โ””โ”€โ”€ canvas/[id]/      # Main canvas view
โ”‚   โ”œโ”€โ”€ components/
โ”‚   โ”‚   โ”œโ”€โ”€ Canvas/           # Core canvas components
โ”‚   โ”‚   โ””โ”€โ”€ ui/               # Reusable UI elements
โ”‚   โ”œโ”€โ”€ lib/
โ”‚   โ”‚   โ”œโ”€โ”€ operations/       # Business logic (CRUD, hierarchy)
โ”‚   โ”‚   โ”œโ”€โ”€ store.ts          # Zustand state management
โ”‚   โ”‚   โ”œโ”€โ”€ persistence.ts    # localStorage wrapper
โ”‚   โ”‚   โ””โ”€โ”€ types.ts          # TypeScript definitions
โ”‚   โ””โ”€โ”€ hooks/                # Custom React hooks
โ””โ”€โ”€ tests/                    # Unit tests

๐Ÿ›ฃ๏ธ Roadmap

โœ… V1 (Current) โ€” Core Active Recall Engine

  • Hierarchical node management
  • Global collapse/expand
  • Status tagging + heat-mapping
  • Local persistence

๐Ÿ”œ V2 โ€” Usability Enhancements

  • Markdown / rich text support
  • Drag-to-reparent nodes
  • Keyboard shortcuts (collapse with Space, expand with Enter)
  • Undo/Redo
  • Search within canvas

๐Ÿ”ฎ V3+ โ€” Ecosystem Features

  • Export to Anki / PDF
  • Cloud sync (optional, self-hosted)
  • Mobile app (React Native)
  • Plugin system (community extensions)
  • Shared canvases (study groups)

๐Ÿงช Testing

# Run unit tests
npm test

# V1 Manual Test Checklist
- [ ] Create 3-level node hierarchy
- [ ] Collapse all โ†’ only roots visible
- [ ] Expand individual node
- [ ] Tag node as "Failed" โ†’ parent shows red badge
- [ ] Refresh page โ†’ state restored
- [ ] Pan canvas, zoom in/out

๐Ÿค Contributing

We welcome contributions! This project is built for students, by students (and developers who care about learning tools).

How to Contribute

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Code Guidelines

  • Write TypeScript (no any types unless absolutely necessary)
  • Test your changes manually against the V1 checklist
  • Keep it simple โ€” resist scope creep (see SCOPE.md)

๐Ÿšซ Anti-Scope Creep Policy

Synapse is NOT:

  • โŒ A clone of Roam/Obsidian (no bi-directional links)
  • โŒ A spaced repetition scheduler (use Anki for that)
  • โŒ A collaborative whiteboard (use Miro/FigJam)
  • โŒ A drawing tool (we're text-first)

We intentionally focus on:

  • โœ… Preserving hierarchical context
  • โœ… Enabling friction-free active recall
  • โœ… Visual metacognitive feedback

See our design philosophy doc for details.


๐Ÿ“„ License

MIT License โ€” see LICENSE for details.

TL;DR: Use it for free, modify it, share it. We only ask that you credit the project.


๐Ÿ™ Acknowledgments

Built for medical students grinding through NEET PG, USMLE Step 1/2, PLAB, and any other exam that demands both deep understanding and rapid recall.

Inspired by:

  • Anki โ€” for proving spaced repetition works
  • Roam Research โ€” for showing outlining could be spatial
  • Workflowy โ€” for hierarchical simplicity
  • The frustration of forgetting where clinical facts fit in the bigger diagnostic picture

๐Ÿ“ฌ Contact


๐ŸŒŸ Star History

If this project helps you ace your exams, consider giving it a โญ โ€” it helps other students find it!

Star History Chart


Made with โค๏ธ and far too much coffee during exam season


๐Ÿ“ธ Screenshots

Coming soon! Drop screenshots here after V1 build:

  • Canvas with expanded hierarchy
  • Collapsed view with heat-map badges
  • Status tagging in action

Pro tip: Start by mapping out one high-yield topic (e.g., "Shock" or "Acid-Base Disorders"). If you can collapse it, recall the framework, expand to verify, and tag your weak spots โ€” you've just built a better study system than 90% of your classmates. ๐ŸŽ“

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages