A visual, markdown-powered note-taking application that organizes your thoughts as an interactive knowledge graph. Create, connect, and visualize your notes in a dynamic network where each node represents a note and links represent relationships.
- Interactive Knowledge Graph - Visualize your notes as an interconnected network using an interactive force-directed graph
- Markdown Support - Write notes in Markdown with live preview, syntax highlighting, and GitHub Flavored Markdown support
- Hierarchical Organization - Create parent-child relationships between notes to build structured knowledge trees
- Real-time Graph Updates - Watch your knowledge graph grow and reorganize as you create and edit notes
- Split-pane Editor - Simultaneously edit and preview your markdown with synchronized scrolling
- Responsive Design - Clean, modern UI that works across devices
- Frontend: React 18, React Router v6
- Visualization: react-force-graph-2d
- Styling: Tailwind CSS
- Markdown: react-markdown with remark-gfm
- Code Highlighting: react-syntax-highlighter
- HTTP Client: Axios
- Node.js (v14 or higher)
- npm or yarn
- Clone the repository:
git clone https://github.com/yourusername/neuronotes.git
cd neuronotes- Install dependencies:
npm install- Create a
.envfile in the root directory:
VITE_API_URL=http://localhost:3000/api- Start the development server:
npm run devsrc/
βββ pages/
β βββ Home.jsx # Main graph view
β βββ Landing.jsx # Landing page
β βββ LoginSignup.jsx # Authentication page
βββ components/
β βββ Navbar.jsx # Navigation with create/logout
β βββ NoteModal.jsx # Markdown editor with preview
β βββ CreateNodeModal.jsx # Node creation dialog
βββ utils/
β βββ api.js # Axios instance with auth interceptor
βββ ProtectedRoute.jsx # Route protection wrapper
βββ App.jsx # Main router configuration
- Nodes represent individual notes
- Links represent parent-child relationships
- Root nodes (notes without parents) appear larger
- Click any node to open and edit its content
- Create new notes with optional parent relationships
- Edit notes with real-time Markdown preview
- Delete notes with confirmation
- Reorganize notes by changing parent relationships
- Headers (h1, h2, h3)
- Lists (ordered and unordered)
- Blockquotes
- Tables with styling
- Code blocks with syntax highlighting
- Images
- GitHub Flavored Markdown support
The app uses JWT-based authentication:
- Login/Register through the
/authroute - Protected routes redirect unauthorized users
- Tokens stored in localStorage
- Automatic token refresh on expiration
Expected backend endpoints:
GET /graph - Fetch all nodes and links
GET /notes/:id - Fetch single note
POST /notes - Create new note
PUT /notes/:id - Update note
DELETE /notes/:id - Delete note
POST /auth/login - User login
POST /auth/register - User registration
POST /auth/refresh - Refresh access token
- Smooth Animations - Modal transitions and graph interactions
- Keyboard Shortcuts - Enter to create node, Escape to close modals
- Scroll Sync - Editor and preview scrolling stay in sync
- Visual Feedback - Hover effects, shadows, and scaling transforms
- Dark/Light Mode - Clean, readable interface with proper contrast
- react-force-graph for the amazing visualization library
- Tailwind CSS for the utility-first styling
- React Markdown for markdown rendering
Built with β€οΈ for knowledge workers and visual thinkers
