NOTEZ is an AI-powered math solver that allows users to draw mathematical expressions on a canvas and get instant solutions. The project leverages React, TypeScript, Vite, and FastAPI to provide a seamless and interactive experience.
You can check the frontend repository here and the backend repository here.
- Interactive Canvas: Draw mathematical expressions directly on the canvas.
- AI-Powered Solver: Uses AI to analyze and solve mathematical expressions.
- Real-time Feedback: Get instant solutions displayed on the canvas.
- Keyboard Shortcuts: Use
⌘ + K
to reset the canvas and⌘ + J
to run the solver.
- Node.js (v14 or higher)
- Python (v3.8 or higher)
- npm or yarn
-
Clone the repository:
git clone https://github.com/m3hu1/notez.git cd notez/frontend
-
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Navigate to the backend directory:
cd ../backend
-
Create a virtual environment and activate it:
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
-
Install dependencies:
pip install -r requirements.txt
-
Run the main.py file:
python3 main.py
- Open your browser and navigate to
http://localhost:5173/
. - Draw a mathematical expression on the canvas.
- Press
⌘ + J
to run the solver and see the results on the canvas.
src/main.tsx
: Entry point for the React application.src/screens/home/index.tsx
: Main screen where the canvas and solver logic are implemented.src/components/ui
: Contains UI components likeCommandBox
andCommandBoxRun
.
main.py
: Entry point for the FastAPI application.apps/calculator/route.py
: Contains the API route for processing images.apps/calculator/utils.py
: Utility functions for analyzing images using AI.schema.py
: Pydantic models for request validation.
- Vite Configuration: Located in
vite.config.ts
. - TypeScript Configuration: Located in
tsconfig.json
. - Environment Variables: Configure in
.env.local
file. Example:VITE_API_URL=http://localhost:8900
- Environment Variables: Configure in
.env
file. Example:GEMINI_API_KEY=your_api_key_here
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/your-feature
). - Commit your changes (
git commit -am 'Add some feature'
). - Push to the branch (
git push origin feature/your-feature
). - Create a new Pull Request.