Architecture
Wireframe
ERD
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
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