← Back to Projects

DOJO APP

Engineering Traditional Discipline

The Vision

Traditional Goju-Ryu martial arts relies on a complex, hierarchical syllabus that is often managed through paper logs and manual tracking. I built the Dojo App to modernize this process—creating a digital mirror of a physical practice. It is a full-stack forms management system that handles the rigorous progression from 10th Kyu (White Belt) to 8th Dan (Black Belt).

Three Engineering Decisions That Mattered

Syllabus Engine — translating 48+ traditional forms (Kata, Bunkai, Kumite) into a rigid data schema was the hardest part. The requirements system prevents curriculum inconsistencies: practitioners only see forms relevant to their rank and lineage.

Soft-Delete — accidental data loss in a training environment is demoralizing. A dedicated Trash interface allows immediate correction while maintaining a permanent audit trail without cluttering the active database.

Multi-Tenant Isolation — owner-scoped queries and MongoDB indexing ensure every practitioner's data is completely isolated, protected by JWT authentication and bcrypt hashing.

Technical Deep Dive

Progress Analytics Dynamic completion tracking by rank, visualized via Chart.js integration.
Smart Navigation A custom combobox with type-to-filter functionality for handling large datasets of authentic form names.
Performance Response compression and strategic indexing to ensure high-speed data loading for requirements and charts.
Security Middleware Integrated Helmet.js for header protection and custom auth-guard middleware for all protected routes.

As an instructor of Okinawan Goju-Ryu, I built this to solve a real problem in my own field — not to code an app.

Project Type

Full-Stack CRUD Application

Tech Stack

Backend: Node.js, Express.js, MongoDB (MEN Stack)
Security: Bcryptjs, Express-session, Helmet
Frontend: EJS (Server-side rendering), Custom CSS, Chart.js

Role

Full-Stack Developer & Domain Expert

Methodology

RESTful CRUD, Soft-delete patterns, Database seeding