Skip to content

xhandlr/note-forge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

252 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“š Note Forge

๐ŸŒ Leer en Espaรฑol

Boost productivity for students and educators with centralized study material

React TypeScript Node.js License: MIT

Note Forge is a web app where you store exercises, tag them by subject and difficulty, and drag them into exportable LaTeX study guides.

๐ŸŽฎ Live Demo ยท โœจ Features ยท ๐Ÿ“– Docs ยท ๐Ÿ› Issues


๐ŸŽฏ Overview

Note Forge was born out of a real need: as a tutor at my university, I found myself spending too much time searching for exercises, images, and references to assemble study guides for my students. With materials of varying difficulty, format, and source, the process was inefficient. Note Forge solves that.

Perfect for

Role How it helps
๐ŸŽ“ Students Centralize all study material โ€” exercises, images, and answers โ€” in one place
๐Ÿ‘จโ€๐Ÿซ Teaching Assistants Build study guides from an existing exercise bank with drag-and-drop
๐Ÿ‘จโ€๐Ÿ’ผ Professors LaTeX support for distributing exercises across subjects and exporting guides effortlessly

Highlights

  • ๐ŸŽจ Modern UX โ€” rose, amber, and slate color palette with clean, animated UI
  • ๐ŸŒ i18n support โ€” full English and Spanish translations
  • ๐ŸŽฎ Interactive demo โ€” no registration, no Docker, no backend needed. Try it here

โœจ Key Features

๐Ÿ“ Exercise Management

  • LaTeX Editor โ€” real-time rendering for equations, matrices, and scientific notation with syntax highlighting
  • Rich Metadata โ€” 5-level difficulty rating, duration estimates, multi-tag support, custom images, and references
  • Advanced Search โ€” filter exercises by subject, difficulty, or whether they include images

๐ŸŽฏ Study Guide Builder

  • Drag & Drop Interface โ€” intuitive reordering with smooth animations
  • Unified Workspace โ€” three-panel layout: exercise library, guide metadata, and live preview
  • Smart Metrics โ€” automatic total time calculation (15 min/exercise) and average difficulty with visual indicators
  • Export Options โ€” save drafts and export to LaTeX (.tex) format

๐Ÿ“ Category System

  • Flexible Organization โ€” subject-based categories with custom images, rich descriptions, and unlimited nesting
  • Dedicated Views โ€” hero sections with cover images, tabbed interface (exercises vs. guides), and pinnable favorite subjects

๐ŸŒ Internationalization & Demo

  • Complete i18n with English and Spanish
  • Full-featured interactive demo with pre-loaded mock data โ€” no setup required

๐ŸŽจ Screenshots

Dashboard Dashboard

Categories Categories

Guides Guides

Export Export


๐Ÿ› ๏ธ Tech Stack

Frontend

Technology Version Purpose
React 18.3 UI library with hooks and functional components
TypeScript 5.5 Type safety and enhanced developer experience
Vite 5.0 Lightning-fast build tool with instant HMR
TailwindCSS 3.4 Utility-first CSS for rapid development
React Router 6.x Client-side routing with nested routes
react-i18next 16.0 Complete i18n solution with language detection

Backend

Technology Version Purpose
Node.js 22+ JavaScript runtime with ES modules
Express 4.x Fast, minimalist web framework
MySQL 8.0+ Relational database with JSON support
JWT 9.x Stateless authentication tokens
bcrypt 6.0 Password hashing and security

Architecture & DevOps

  • Context API for global state management
  • Custom React hooks for reusable logic
  • Docker & Docker Compose for containerization
  • GitHub Pages for demo deployment

โšก Getting Started

Quick Start (Demo)

The fastest way to explore Note Forge โ€” no setup needed:

  1. Visit xhandlr.github.io/note-forge
  2. Click "Probar sin registrarse" on the landing page
  3. Explore full functionality with pre-loaded mock data

The demo includes pre-configured categories, sample exercises with LaTeX, study guides with drag-and-drop, and full search capabilities.


Prerequisites

For local development:

  • โœ… Node.js v22.x+ โ€” Download
  • โœ… MySQL 8.0+ โ€” Installation Guide
  • ๐Ÿณ Docker/Podman (optional) โ€” Get Docker
  • ๐Ÿ“ฆ npm or pnpm โ€” comes with Node.js

Manual Installation

1. Clone the repository

git clone https://github.com/xhandlr/note-forge.git
cd note-forge

2. Set up the database

mysql -u root -p
source db/init.sql

3. Configure environment variables

cp note-forge-api/.env.example note-forge-api/.env
# Edit .env with your database credentials:
# DB_HOST=localhost
# DB_USER=root
# DB_PASSWORD=your_password
# DB_NAME=note_forge
# JWT_SECRET=your_secret_key

4. Start the backend

cd note-forge-api
npm install
node index.js
# API running at http://localhost:5000

5. Start the frontend

cd note-forge-ui
npm install
npm run dev
# App running at http://localhost:5173

Docker Installation

git clone https://github.com/xhandlr/note-forge.git
cd note-forge
docker-compose up -d
# Visit http://localhost:5173

To stop:

docker-compose down

๐Ÿ“ Project Structure

note-forge/
โ”‚
โ”œโ”€โ”€ db/                          # Database layer
โ”‚   โ”œโ”€โ”€ init.sql                 # Initial schema and tables
โ”‚   โ””โ”€โ”€ init_test.sql            # Test schema
โ”‚
โ”œโ”€โ”€ note-forge-api/              # Backend (Node.js + Express)
โ”‚   โ”œโ”€โ”€ config/                  # Database and auth configuration
โ”‚   โ”œโ”€โ”€ controllers/             # Request handlers
โ”‚   โ”œโ”€โ”€ services/                # Business logic layer
โ”‚   โ”œโ”€โ”€ models/                  # Data models and SQL queries
โ”‚   โ”œโ”€โ”€ routes/                  # API endpoint definitions
โ”‚   โ”œโ”€โ”€ middleware/              # JWT authentication
โ”‚   โ”œโ”€โ”€ .env.example             # Environment template
โ”‚   โ””โ”€โ”€ index.js                 # Server entry point
โ”‚
โ”œโ”€โ”€ note-forge-ui/               # Frontend (React + TypeScript)
โ”‚   โ”œโ”€โ”€ public/                  # Static assets
โ”‚   โ””โ”€โ”€ src/
โ”‚       โ”œโ”€โ”€ assets/              # Images, fonts
โ”‚       โ”œโ”€โ”€ components/
โ”‚       โ”‚   โ”œโ”€โ”€ UI/              # Reusable components
โ”‚       โ”‚   โ””โ”€โ”€ Dashboard/       # Navbar, Footer
โ”‚       โ”œโ”€โ”€ contexts/            # React Context (Demo, Notifications)
โ”‚       โ”œโ”€โ”€ pages/               # Route-based views
โ”‚       โ”‚   โ”œโ”€โ”€ Auth/            # Home, Login, Registration
โ”‚       โ”‚   โ”œโ”€โ”€ Categories/      # Category views and forms
โ”‚       โ”‚   โ”œโ”€โ”€ Exercises/       # Exercise views and forms
โ”‚       โ”‚   โ”œโ”€โ”€ Guides/          # Guide builder workspace
โ”‚       โ”‚   โ”œโ”€โ”€ Dashboard/       # Main dashboard
โ”‚       โ”‚   โ””โ”€โ”€ Search/          # Search page
โ”‚       โ”œโ”€โ”€ services/            # API services
โ”‚       โ”œโ”€โ”€ mocks/               # Mock data for demo mode
โ”‚       โ””โ”€โ”€ i18n/                # EN/ES translations
โ”‚
โ”œโ”€โ”€ docker-compose.yml
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ README_ES.md
โ””โ”€โ”€ LICENSE

๐Ÿ“„ License

This project is licensed under the MIT License.


Built with ๐Ÿฉท๐Ÿ’›๐Ÿฉท by xhandlr

If you find this project useful, consider giving it a โญ on GitHub!

โฌ† Back to Top

About

Modern educational platform for organizing study materials with LaTeX support, drag-and-drop interface, and interactive demo mode. Features a polished UI/UX with i18n, real-time preview, and advanced filtering. Perfect for students, teachers, and teaching assistants.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors