
Discord: https://discord.gg/2xkMPmcGZh
- Spaced Repetition: Implements the SM-2 algorithm for optimal review scheduling
- Cloze Deletions: Create flashcards by hiding parts of text
- Image Occlusions: Create flashcards from images by hiding parts of them
- Incremental Reading: Process large texts by extracting key information
- Similar Content: Automatically fetch related information from Oxford and Wikipedia APIs
- Customizable Interface: Dark mode, zen mode, and adjustable layouts
- Keyboard Shortcuts: Fully customizable keyboard shortcuts for efficient workflow
- Data Export/Import: Save and restore your learning database
- Hierarchical Organization: Folder-based structure for organizing learning materials
- Bun (package manager and runtime)
- Node.js (v18 or higher)
-
Clone the repository:
git clone https://github.com/your-username/neurapath.git cd neurapath
-
Install dependencies:
bun install
-
Set up environment variables: Create a
.env
file based on.env.example
:cp .env.example .env
Edit the
.env
file to add your configuration values. -
Run the development server:
bun run dev
-
Build for production:
bun run build
-
Creating an Account
- Visit the login page
- Enter a username and password
- The system will automatically create an account if it doesn't exist
-
Creating Learning Items
- Cloze Deletions: Select text and press
Ctrl+C
(default) - Text Extracts: Select text and press
Ctrl+X
(default) - Image Occlusions:
- Drag and drop an image into the main window
- Draw rectangles over areas to hide
- Press
Ctrl+Z
(default) to create the occlusion
- Cloze Deletions: Select text and press
-
Learning Mode
- Click the "Engage!" button in the left sidebar
- Review items using the spacebar to reveal answers
- Rate your recall with
Ctrl+1
(very hard) toCtrl+5
(very easy)
-
Organizing Content
- Right-click in the left sidebar to create folders
- Drag and drop items to reorganize
- Right-click items to rename or delete them
The application can be configured through environment variables in your .env
file:
JWT_SECRET
: Secret key for JWT token generationSIMULATE_LOGGED_IN_USER
: Set to 'true' for development testing- Database configuration variables for SQLite, PostgreSQL, or MySQL
Neurapath uses a Cloudflare Worker backend for data storage and user management. The API endpoints include:
POST /user/register
: Register a new userGET /user/data
: Fetch user's databasePOST /user/data
: Save user's databaseGET /public/data
: Fetch public databasesGET /user/data/{username}
: Fetch another user's public databasePOST /leaderboard
: Get leaderboard data
For detailed API documentation, please refer to the backend service implementation.
We welcome contributions to Neurapath! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Please ensure your code follows the existing style and includes appropriate tests.
If you find a bug or have a feature request, please:
- Check if the issue already exists in our GitHub issues
- If not, create a new issue with:
- A clear title and description
- Steps to reproduce (for bugs)
- Expected and actual behavior
- Screenshots (if applicable)
This project is licensed under the Apache-2.0 license.
For support, feature requests, or general questions:
- Email: hi@neurapath.shop
- Discord: Join our channel
- Report bugs in the bugs channel on Discord
- Built with SvelteKit
- Uses Tailwind CSS for styling
- Implements Quill.js for rich text editing
- Leverages pdfjs-dist for PDF processing
- Inspired by evidence-based learning research