← 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).

Core Architectural Achievements

1. The Syllabus & Requirements Engine

The most difficult part of this build was translating 48+ traditional forms (Kata, Bunkai, Kumite) into a rigid data schema. I engineered a requirements system that prevents curriculum inconsistencies, ensuring that practitioners only see the forms relevant to their specific rank and lineage.

2. Soft-Delete & Data Integrity

In a training environment, accidental data loss can be demoralizing. I implemented a Soft-Delete system with a dedicated "Trash" management interface. This allows for immediate mistake correction and maintains a permanent audit trail of a practitioner's history without cluttering the active database.

3. Multi-Tenant Data Isolation

The application is designed with security as a priority. Using a multi-tenant architecture with owner-scoped queries and MongoDB indexing, I ensured that every practitioner manages their own training data in total isolation, protected by JWT-based 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.

Refining the Narrative

As an instructor of Okinawan Goju-Ryu, I didn't just build this to "code an app"—I built it to solve a logistical hurdle in my own field. It demonstrates my ability to take a non-linear, traditional human system and organize it into a performant, secure, and user-centric digital architecture.

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