Skip to content

medreseli/namedar

Repository files navigation

Nâmedâr

Lightning-fast, privacy-first OMR (Optical Mark Recognition) grading web app for teachers.

Nâmedâr allows educators to design custom bubble sheets, distribute them to students, and grade them instantly using a smartphone camera.

Zero images are uploaded to the cloud. All image processing and grading are done entirely in the user's browser using a custom-built WebAssembly (WASM) engine written in Rust.


Features

  • Drag & Drop Form Builder: Design custom OMR layouts tailored to specific exam formats.
  • Easy Distribution: Export forms as PDFs or images, print them, and hand them out to students.
  • Snap & Grade: Take photos of completed exams with any smartphone camera.
  • 100% Private (Browser-Based): Images never leave the device. A high-performance Rust WASM module handles all optical mark detection locally.
  • Universal Exports: Export grade results instantly to CSV, JSON, XML, or Markdown.
  • Offline Tolerant: Once the app loads, the WASM engine can grade exams even on a slow or disconnected network.

Tech Stack

Nâmedâr is built with a modern, edge-first stack:

  • Frontend Framework: TanStack Start (React)
  • Styling: Tailwind CSS v4
  • Image Processing Engine: WebAssembly (WASM) compiled from Rust. (Note: The pre-compiled .wasm binary is included in this repository. The Rust source code for the engine is maintained in a separate repository).
  • Database: Cloudflare D1 (SQLite at the Edge for user accounts & form templates)
  • Hosting/Deployment: Cloudflare Workers

Status

⚠️ Currently under active development. We are in the process of migrating the application from Next.js to TanStack Start. The core WASM grading engine is operational, but some dashboard and routing features are currently being rebuilt.

(An interactive demo is planned for the landing page soon!)

Local Development

Prerequisites

To run this project locally, you will need:

Installation

  1. Clone the repository:

    git clone https://github.com/medreseli/namedar.git
    cd namedar
  2. Install frontend dependencies:

    npm install
  3. Set up local Cloudflare D1 database:

    npx wrangler d1 migrations apply namedar-db --local
  4. Start the TanStack development server:

    npm run dev
  5. Open http://localhost:3000 in your browser.

Contributing

We welcome contributions from the community! Whether you are a Rustacean who wants to optimize our OMR anchor-detection algorithms, or a React developer who wants to improve the UI, feel free to open an issue or submit a Pull Request.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

Built for educators, to reclaim their weekends.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors