A Math & Physics Notepad for the 21st century
GaussNotes is a modern Flutter application designed for creating and editing mathematical and physics documents. It features a sophisticated block-based editor with LaTeX support, real-time math rendering, and collaborative editing capabilities.
- Block-based Document Structure: Different types of blocks (Title, Theorem, Body, Abstract, Math blocks)
- Advanced Math Editor: LaTeX-based equation editing with real-time rendering
- Document History: Full undo/redo support
- Cross-platform: Runs on iOS, Android, macOS, Windows, Linux, and Web
- Flutter SDK: Version 3.2.4 or higher
- Dart SDK: Included with Flutter
- IDE: VS Code, Android Studio, or IntelliJ IDEA with Flutter plugins
-
Install Flutter
Follow the official Flutter installation guide for your platform:
-
Clone the Repository
git clone <repository-url> cd gaussnotes
-
Install Dependencies
flutter pub get
-
Run the Application
For development:
flutter run
For web:
flutter run -d chrome
For specific platforms:
flutter run -d ios # iOS flutter run -d android # Android flutter run -d macos # macOS flutter run -d windows # Windows flutter run -d linux # Linux
-
Enable Developer Mode
flutter config --enable-web # For web development flutter config --enable-macos-desktop # For macOS desktop flutter config --enable-windows-desktop # For Windows desktop flutter config --enable-linux-desktop # For Linux desktop
-
Check Your Setup
flutter doctor
-
Run Tests
flutter test
The main application code is located in the lib/ directory:
auth/- User authentication and account managementblocks/- Core block system for document structurehistory/- Document history and undo/redo functionalitykeyboard/- Keyboard shortcuts and input handlingnav/- Application navigation and routingnode/- Math equation representation and renderingnotebook/- Notebook management (future feature)pages/- Application screens (login, editor, settings, etc.)tex_parser/- LaTeX parsing and conversionutils/- Utilities and server communication
GaussNotes uses a Go backend server for:
- User account management
- Database access
- Collaborative editing (planned)
The backend repository is separate and handles authentication, data persistence, and real-time collaboration features.