A modern, responsive web portal for inquiring about student profiles, achievements, and tournament history for Okinawa Shorin Kai Karate Do. This system provides a streamlined interface for parents, students, and administrators to access performance records.
- Student Search: Fast, fuzzy-search enabled directory to find students by name or unique ID (e.g., SK-0001).
- Comprehensive Profiles: Detailed views showcasing belt ranks, dojo affiliation, and participation history.
- Tournament Records: Track medals (Gold, Silver, Bronze) and event participation over time.
- Responsive Design: Optimized for both mobile devices and desktop screens.
- Theme Support: Includes a dark/light mode toggle for comfortable viewing in any environment.
- Framework: Next.js (React)
- Styling: Tailwind CSS
- Database: Supabase
- Search Engine: Fuse.js
This is an open source project. We welcome the community to review the code and suggest improvements.
Repository: https://github.com/ull0sm/HonorLog.git
-
Clone the repository:
git clone https://github.com/ull0sm/HonorLog.git cd HonorLog -
Install dependencies:
npm install
-
Environment Setup: Create a
.env.localfile in the root directory with your Supabase credentials:NEXT_PUBLIC_SUPABASE_URL=your_supabase_url NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
Note: Database schema is available in
schema.sql. -
Run Development Server:
npm run dev
Open http://localhost:3000 with your browser to see the result.
These notes are for deploying the /portal admin/registrar workflows safely.
Set all of the following in your deployment environment:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_service_role_keyImportant:
SUPABASE_SERVICE_ROLE_KEYis server-only and must never be exposed viaNEXT_PUBLIC_*.- Portal registrar creation and password reset require the service-role key.
In Supabase Authentication settings:
- Set the Site URL to your production app URL.
- Add Redirect URLs used by portal login/logout flows.
- Include password recovery URLs:
/portal/forgot-password/portal/reset-password
- Keep email/password auth enabled for staff login.
Before enabling portal users in production:
- Apply
migrations/001_phase1_portal_schema.sql. - Verify portal tables exist (
profiles,event_access,event_import_*,event_categories,event_registrations,event_results,audit_logs). - Ensure at least one active
super_adminprofile row exists.
Current portal import flow parses uploads in-memory and writes normalized preview rows to DB tables.
- No Supabase Storage bucket is required for current JSON/XLSX import behavior.
- If you later persist uploaded files, create a private bucket and update server actions accordingly.
- Confirm
npm run buildsucceeds in production mode. - Verify
/portal/loginworks for both super admin and registrar accounts. - Verify registrar cannot access unrelated event URLs.
- Verify lock/unlock controls and audit log page (
/portal/audit) work for super admin. - Verify locked events reject result edits from stale registrar tabs.
For inquiries regarding the project or the karate school, please contact us:
📧 Email: contact@shorinkai.in
© 2026 Okinawa Shorin Kai Karate Do. All rights reserved.