Skip to content

Repository files navigation

Task Box (تسک‌باکس)

🇬🇧 English | 🇮🇷 فارسی

A lightweight, self‑hosted education management platform for tutoring centers, teachers, and small institutes.

Task Box is a fast, mobile‑first web app that helps teachers and small educational institutes run day‑to‑day operations — classes, students, exams, assignments, grades, announcements, and printable reports — from one place. It ships as a Progressive Web App with a fully right‑to‑left Persian interface and the Jalali (Shamsi) calendar.

ℹ️ About this repository. This is a public showcase repo. It documents the product, its architecture, and its security posture so developers and users can understand the project. The production backend source code is intentionally not published here.


The problem it solves

Small tutoring centers and independent teachers usually juggle spreadsheets, chat groups, and paper to track classes and grades. Task Box replaces that with a single, self‑hosted app that is cheap to run (edge/serverless), works well on phones, and speaks Persian natively — including correct Jalali dates and RTL layout.

Main features

  • Class, student, exam, assignment, and grade management
  • Announcements and simple content pages
  • Image uploads with per‑type validation and rate limiting
  • Printable report cards / reports
  • Customizable branding (site name, banner, colors, menus, slider)
  • Role‑aware access (owner/admin vs. regular users)
  • Installable PWA with offline‑friendly shell

See FEATURES.md for the full product tour.

Technology stack

Layer Technology
Runtime Cloudflare Workers (serverless, edge)
Database Cloudflare D1 (SQLite)
File storage Pluggable bot‑based object storage
Frontend Vanilla JavaScript SPA + PWA (service worker)
Localization Persian (RTL) UI, Jalali calendar

High‑level architecture

Task Box is organized into clear layers: a client PWA, a stateless API layer, a relational data layer, an external file‑storage layer, and a cross‑cutting security layer. Full details are in ARCHITECTURE.md.

Demo

A hosted demo is available at https://clonerr.ir. Screenshots and walkthroughs live under docs/screenshots/.

Installation overview

Task Box targets the Cloudflare Workers platform.

  1. Install the Cloudflare CLI (wrangler).
  2. Create a D1 database and bind it as DB.
  3. Copy .env.example and provide your own configuration values.
  4. Deploy with wrangler deploy.

Step‑by‑step guidance is in DEPLOYMENT.md.

Configuration overview

All configuration is provided through environment variables / Workers secrets and a D1 binding. Copy .env.example to .env and fill in your own values — never commit real secrets. Variable names and safe placeholders are documented in .env.example and DEPLOYMENT.md.

Security

Security practices (authentication, authorization, input validation, XSS/CSRF protection, secure headers, upload validation, and responsible disclosure) are documented in SECURITY.md. A high‑level summary of hardening work is in PATCHES.md.

Contributing

Contributions to the documentation and public assets are welcome — see CONTRIBUTING.md.

License

Released under the MIT License. See LICENSE.

About

Task Box is a fast, mobile‑first web app that helps teachers and small educational institutes run day‑to‑day operations — classes, students, and printable reports — from one place. It ships as a Progressive Web App with a fully right‑to‑left Persian interface and the Jalali (Shamsi) calendar.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors