Changelog
Get the latest updates and improvements to our platform.
Notifications, Score Visibility Gate & Admin Fixes
This release fixes the dashboard notification bell (which was rendering as an inert placeholder), tightens score visibility so shooters only see released scores across every endpoint, and resolves a series of admin-panel issues around cross-organisation registrants.
- Notification bell in the dashboard header is now fully wired — shows unread count, opens a dropdown panel, and supports Mark as Read / Mark All as Read / Delete
- Clicking a notification auto-marks it as read; action buttons no longer accidentally trigger link navigation
- All shooter-facing score queries (dashboard, statistics, submissions API) now require releaseStatus = released — unreleased scores no longer leak
- Score entry page updates in real time after Save All Scores — shooter list re-fetches and form repopulates without losing the active selection
- Cross-organisation registrants now appear in /admin/users and their profile/view pages no longer return 404
- Admin registrations list and export now filter by competition.organizationId, fixing the empty list caused by null registration.organizationId
- Complete Payment button is suppressed on the dashboard, competition page, and registration pages when the user already has a pending payment awaiting verification
Score Release Module, Shooter Profile Sidebar & Registration Improvements
A major workflow update giving organisers control over when scores become visible to shooters, plus several registration quality-of-life improvements and eligibility rule fixes.
- Score Release Module — scores stay hidden until an admin explicitly releases them per relay; shooters receive a 'Score Verified — Pending Release' notification on verification and a 'Scores Released' notification on release
- Shooter Profile card moved to the persistent right sidebar on the competition page, visible regardless of registration state
- Cross-organisation registration unblocked — shooters from any organisation can now register for any competition
- NOC document upload is remembered across page abandonment via localStorage and restored on return
- Sight-type eligibility rule scoped to the same event type — Open Sight Rifle + Peep Sight Pistol is now allowed; Open Sight Rifle + Peep Sight Rifle remains blocked
- Dashboard landing page shows the user's active registrations with competition details, competitor number, registration and payment status, and event category badges
- Fixed foreign-key violations on registration and payment creation for users without an assigned organisation
Auth Hardening, Safer Admin Flows, and Reliability Fixes
This release focuses on stability and security across the platform. We resolved onboarding and signup dead ends, tightened user creation and invitation handling, and fixed a number of broken navigation targets that could send users to non-existent pages. We also improved internal tooling reliability so linting can run non-interactively in CI and local automation.
- Signup now reliably provisions and uses a canonical default organization to prevent first-run failures
- Superadmin user creation now enforces password requirements and stores hashed credentials correctly
- Sentinel form values for organization and gender are normalized safely before persistence
- Contact form email delivery is now server-controlled to prevent recipient override abuse
- Invitation token generation now uses cryptographically secure randomness
- Multiple dead-end links and action URLs were updated to valid in-app destinations
- OTP verification endpoints were temporarily disabled with explicit responses while password auth remains the supported path
Enhanced User Management & Image Controls
This update significantly improves the TenDotNine admin experience by introducing comprehensive user profile management capabilities. Administrators can now view detailed user information through an intuitive interface and gain complete control over user-uploaded images. The new image management system integrates directly with AWS S3 storage, ensuring proper resource handling while maintaining data integrity across the platform.
- Detailed user profile view with tabbed interface for better information organization
- Complete AWS S3 integration for user image management (profile, photo, pose photo)
- Secure image deletion functionality with confirmation dialogs to prevent accidental removal
- Improved navigation between user listing, editing and detailed view pages
- Proper cleanup of S3 resources when user images are changed or removed
Reservation System Launch
Introducing a comprehensive reservation system for TenDotNine, enabling shooting clubs to manage lane reservation, schedule training sessions, and optimize venue utilization. This update brings powerful scheduling capabilities to organizations of all sizes while maintaining the platform's intuitive user experience.
- Multi-venue reservation support with customizable lane configurations
- Flexible time slot management with configurable reservation
- Shooter-friendly reservation dashboard for managing bookings
- Admin reservation management portal with oversight capabilities
- Smart capacity controls to prevent overbooking
- Visual calendar interface for availability visualization

First version of our platform
Introducing TenDotNine, the comprehensive platform designed specifically for shooting sports club management. We're excited to launch this first version that brings digital transformation to shooting clubs of all sizes. From competition management to shooter tracking, TenDotNine streamlines operations while enhancing the experience for administrators, coaches, and competitors alike.
- Multi-tenant SaaS architecture supporting isolated organization data
- Hierarchical structure with Organizations → Clubs → Teams
- Role-based access control (ADMIN, COACH, SHOOTER)
- Organization-specific branding and customization
