Skip to content

GaussNotes/gaussnotes

Repository files navigation

GaussNotes

A Math & Physics Notepad for the 21st century

Overview

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.

Design

  • 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

Getting Started

Prerequisites

  • Flutter SDK: Version 3.2.4 or higher
  • Dart SDK: Included with Flutter
  • IDE: VS Code, Android Studio, or IntelliJ IDEA with Flutter plugins

Installation

  1. Install Flutter

    Follow the official Flutter installation guide for your platform:

  2. Clone the Repository

    git clone <repository-url>
    cd gaussnotes
  3. Install Dependencies

    flutter pub get
  4. 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

Development Setup

  1. 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
  2. Check Your Setup

    flutter doctor
  3. Run Tests

    flutter test

Project Structure

The main application code is located in the lib/ directory:

  • auth/ - User authentication and account management
  • blocks/ - Core block system for document structure
  • history/ - Document history and undo/redo functionality
  • keyboard/ - Keyboard shortcuts and input handling
  • nav/ - Application navigation and routing
  • node/ - Math equation representation and rendering
  • notebook/ - Notebook management (future feature)
  • pages/ - Application screens (login, editor, settings, etc.)
  • tex_parser/ - LaTeX parsing and conversion
  • utils/ - Utilities and server communication

Backend

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.

About

Basic Equation Editor

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published