{"id":40504027,"url":"https://github.com/andrinoff/tme","last_synced_at":"2026-01-20T19:13:11.431Z","repository":{"id":309404689,"uuid":"1030882892","full_name":"andrinoff/tme","owner":"andrinoff","description":"An all-in-one web application designed to be the ultimate tool for teaching and learning. TME integrates a powerful suite of tools including an interactive whiteboard, a dynamic graphing calculator, and a real-time markdown notebook, making it easier than ever to visualize concepts, solve problems, and take notes.","archived":false,"fork":false,"pushed_at":"2025-08-20T01:09:37.000Z","size":1084,"stargazers_count":1,"open_issues_count":5,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-08-20T03:30:58.019Z","etag":null,"topics":["desmos","desmos-api","excalidraw","graphs","latex","teaching","teaching-made-easy","teaching-tool","tex","tme","whiteboard"],"latest_commit_sha":null,"homepage":"https://tme.andrinoff.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andrinoff.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"patreon":"andrinoff","ko_fi":"andrinoff"}},"created_at":"2025-08-02T14:32:30.000Z","updated_at":"2025-08-16T16:55:33.000Z","dependencies_parsed_at":"2025-08-11T19:09:09.580Z","dependency_job_id":"0fa91d9a-3132-44bc-81f2-61def926755e","html_url":"https://github.com/andrinoff/tme","commit_stats":null,"previous_names":["andrinoff/tme"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/andrinoff/tme","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrinoff%2Ftme","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrinoff%2Ftme/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrinoff%2Ftme/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrinoff%2Ftme/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andrinoff","download_url":"https://codeload.github.com/andrinoff/tme/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrinoff%2Ftme/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28609904,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T18:56:40.769Z","status":"ssl_error","status_checked_at":"2026-01-20T18:54:26.653Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["desmos","desmos-api","excalidraw","graphs","latex","teaching","teaching-made-easy","teaching-tool","tex","tme","whiteboard"],"created_at":"2026-01-20T19:13:11.333Z","updated_at":"2026-01-20T19:13:11.417Z","avatar_url":"https://github.com/andrinoff.png","language":"TypeScript","funding_links":["https://patreon.com/andrinoff","https://ko-fi.com/andrinoff"],"categories":[],"sub_categories":[],"readme":"\u003e [!WARNING]\n\u003e The project has been moved to [@docerium](https://github.com/docerium) and the website will be turned off at tme.andrinoff.com on 01.09.25 and permanently at [docerium.com](https://docerium.com)\n\n\n\n# Teaching Made Easy\n\n\u003cdiv align=\"center\"\u003e\n\n\u003cimg src = \"public/src/app/favicon.ico\" height=200 width=200\u003e\n\n\u003c/div\u003e\n\n---\n\n\u003cp align=\"center\"\u003e\n    \n  ![CI](https://github.com/andrinoff/tme/actions/workflows/ci.yml/badge.svg)\n  \u003ca href=\"https://github.com/andrinoff/tme/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/andrinoff/tme?style=for-the-badge\u0026logo=github\u0026color=C9CBFF\u0026logoColor=white\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/andrinoff/tme/network/members\"\u003e\u003cimg src=\"https://img.shields.io/github/forks/andrinoff/tme?style=for-the-badge\u0026logo=github\u0026color=C9CBFF\u0026logoColor=white\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/andrinoff/tme/issues\"\u003e\u003cimg src=\"https://img.shields.io/github/issues/andrinoff/tme?style=for-the-badge\u0026logo=github\u0026color=C9CBFF\u0026logoColor=white\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/andrinoff/tme/graphs/contributors\"\u003e\u003cimg src=\"https://img.shields.io/github/contributors/andrinoff/tme?style=for-the-badge\u0026logo=github\u0026color=C9CBFF\u0026logoColor=white\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\n[![MIT License](https://img.shields.io/badge/License-MIT-blue.svg?style=for-the-badge\u0026logo=github\u0026color=C9CBFF\u0026logoColor=white)](https://choosealicense.com/licenses/mit/)\n\u003cimg src=\"https://img.shields.io/github/repo-size/andrinoff/tme?style=for-the-badge\u0026logo=github\u0026color=C9CBFF\u0026logoColor=white\" /\u003e\n\u003cimg src=\"https://img.shields.io/github/last-commit/andrinoff/tme?style=for-the-badge\u0026logo=github\u0026color=C9CBFF\u0026logoColor=white\" /\u003e\n\n\u003c/p\u003e\n\nWelcome to **Teaching Made Easy (TME)**, an all-in-one web application designed to be the ultimate tool for teaching and learning. TME integrates a powerful suite of tools including an interactive whiteboard, a dynamic graphing calculator, and a real-time markdown notebook, making it easier than ever to visualize concepts, solve problems, and take notes.\n\n---\n\n## ✨ Features\n\n- **Interactive Whiteboard:** A fully-featured digital whiteboard powered by Excalidraw. Perfect for drawing diagrams, sketching ideas, and collaborating in real-time.\n- **Dynamic Graphing Calculator:** Plot multiple functions, zoom in and out of the coordinate plane, and analyze mathematical expressions with ease, powered by the **Desmos API**.\n- **Live-Preview Notebook:** A split-screen markdown editor that renders LaTeX equations and markdown syntax as you type, providing immediate visual feedback for your notes.\n- **Persistent State:** Your work on the whiteboard, grapher, and notebook is automatically saved to local storage, so you can pick up right where you left off.\n- **Sleek, Modern UI:** A clean and intuitive interface with a macOS-inspired dock for easy navigation between tools.\n\n---\n\n## 🛠️ Tech Stack\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://nextjs.org/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/Next.js-000000?style=for-the-badge\u0026logo=next.js\u0026logoColor=white\" alt=\"Next.js\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://react.dev/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/React-20232A?style=for-the-badge\u0026logo=react\u0026logoColor=61DAFB\" alt=\"React\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.typescriptlang.org/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/TypeScript-3178C6?style=for-the-badge\u0026logo=typescript\u0026logoColor=white\" alt=\"TypeScript\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://tailwindcss.com/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/Tailwind_CSS-38B2AC?style=for-the-badge\u0026logo=tailwind-css\u0026logoColor=white\" alt=\"Tailwind CSS\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://sass-lang.com/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/SCSS-CC6699?style=for-the-badge\u0026logo=sass\u0026logoColor=white\" alt=\"SCSS\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://jotai.org/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/Jotai-000000?style=for-the-badge\u0026logo=jotai\u0026logoColor=white\" alt=\"Jotai\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nThis project is built with a modern, robust technology stack:\n\n- **Framework:** [Next.js](https://nextjs.org/)\n- **Language:** [TypeScript](https://www.typescriptlang.org/)\n- **UI Library:** [React](https://reactjs.org/)\n- **State Management:** [Jotai](https://jotai.org/)\n- **Styling:** [SCSS](https://sass-lang.com/) and [Tailwind CSS](https://tailwindcss.com/)\n- **Whiteboard:** [Excalidraw](https://excalidraw.com/)\n- **Graphing:** [Desmos API](https://www.desmos.com/api/v1.8/docs/index.html) and [Math.js](https://mathjs.org/)\n- **Markdown \u0026 LaTeX:** [Katex](https://katex.org/)\n\n---\n\n## 🚀 Getting Started\n\nTo get a local copy up and running, follow these simple steps.\n\n### Prerequisites\n\nMake sure you have Node.js (version 20.0 or higher) and npm installed on your machine.\n\n### Installation\n\n1.  **Clone the repository:**\n\n    ```bash\n    git clone https://github.com/andrinoff/tme.git\n    cd tme/public\n    ```\n\n2.  **Install NPM packages:**\n    ```bash\n    npm install\n    ```\n\n### Running the Development Server\n\nOnce the dependencies are installed, you can start the development server:\n\n```bash\nnpm run dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) with your browser to see the result. The page will auto-update as you edit the files.\n\n---\n\n## Usage\n\nNavigate between the three main tools using the icons in the dock:\n\n- **Whiteboard:** Use the various tools to draw, write, and create diagrams. Your canvas is saved automatically.\n- **Graphs:** Enter mathematical expressions (e.g., `sin(x) * x`) into the input fields. You can add or remove functions, and the graph will update in real-time. Use your mouse or trackpad to pan and zoom.\n- **Notebook:** Write in the left pane using markdown and LaTeX syntax. A live preview will be rendered in the right pane.\n\n---\n\n## 📂 Project Structure\n\n```\npublic/\n└── src/\n    ├── app/                  # Next.js App Router pages\n    │   ├── graphs/\n    │   ├── notebook/\n    │   └── whiteboard/\n    ├── components/           # Reusable React components (like Dock)\n    ├── store.ts              # Jotai atoms for global state management\n    └── styles/               # Global and component-specific SCSS files\n```\n\n---\n\n## 🤝 Contributing\n\nContributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.\n\nIf you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag \"enhancement\". For more details, see the [contributing guide](CONTRIBUTING.md).\n\n---\n\n## 📄 License\n\nDistributed under the MIT License. See `LICENSE` for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrinoff%2Ftme","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandrinoff%2Ftme","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrinoff%2Ftme/lists"}