Skip to content

Releases: Juniorduc44/muster-buddy-check

v4.0.2

03 Jul 01:34
3f5fe1a

Choose a tag to compare

Muster Buddy Check v4.0.2 Release Notes

🐛 Bug Fix: Copy Button Functionality for Hash Receipts

🚨 Issue

Copy buttons for attendance hash receipts were not working properly across different browsers and contexts. Users could not copy receipt codes or hash values from the attendance logs.

🔧 Technical Fixes

Clipboard API Implementation

  • Modern Clipboard API: Implemented navigator.clipboard.writeText() with proper async/await handling
  • Secure Context Check: Added window.isSecureContext validation for modern clipboard API usage
  • Legacy Fallback: Implemented document.execCommand('copy') fallback for older browsers and non-secure contexts
  • Error Handling: Enhanced error handling with proper try-catch blocks and user feedback

Fallback Mechanism

  • Temporary Textarea: Created invisible textarea element for legacy copy method
  • Selection & Focus: Proper text selection and focus management for reliable copying
  • Cleanup: Automatic removal of temporary DOM elements after copy operation
  • Success Validation: Verification of copy operation success before user feedback

📱 Affected Components

AttendancePage.tsx

  • Copy Receipt Button: Fixed copy functionality for attendance hash displayed after sign-in
  • User Feedback: Added toast notifications for successful copy and error states
  • Context Support: Works on localhost, HTTPS, and HTTP environments

ResultsPage.tsx

  • Copy Hash Button: Fixed copy functionality for individual hash values in attendance logs
  • Creator Access: Ensures creators can copy receipt codes from attendance records
  • Silent Operation: Copy operation with error logging for debugging

VerifyReceiptPage.tsx

  • Copy Receipt Button: Fixed copy functionality for verified receipt codes
  • Verification Context: Copy works after successful receipt verification
  • User Feedback: Toast notifications for copy success and failure states

🛡️ Compatibility Improvements

Browser Support

  • Modern Browsers: Chrome, Firefox, Safari, Edge with modern clipboard API
  • Legacy Browsers: Internet Explorer, older versions with execCommand fallback
  • Mobile Browsers: iOS Safari, Chrome Mobile, Firefox Mobile support

Environment Support

  • HTTPS: Full clipboard API support with secure context
  • Localhost: Development environment with modern clipboard API
  • HTTP: Legacy fallback for non-secure contexts
  • Mixed Content: Graceful degradation when secure context unavailable

🔍 Technical Details

Modern Clipboard API

if (navigator.clipboard && window.isSecureContext) {
  await navigator.clipboard.writeText(text);
  // Success handling
}

Legacy Fallback

const textArea = document.createElement('textarea');
textArea.value = text;
textArea.style.position = 'fixed';
textArea.style.left = '-999999px';
document.body.appendChild(textArea);
textArea.focus();
textArea.select();
const successful = document.execCommand('copy');
document.body.removeChild(textArea);

✅ Testing & Verification

  • Cross-Browser Testing: Verified on Chrome, Firefox, Safari, Edge
  • Context Testing: Tested on localhost, HTTP, and HTTPS environments
  • Mobile Testing: Verified on iOS and Android browsers
  • Error Scenarios: Tested permission denied and unsupported browser scenarios

🎯 User Impact

  • Improved UX: Users can now reliably copy receipt codes and hash values
  • Better Accessibility: Copy functionality works across all supported environments
  • Reduced Friction: No more manual text selection required for receipt codes
  • Professional Feel: Consistent copy behavior across all app components

🔄 Migration Notes

  • No Database Changes: Pure frontend fix, no migration required
  • No Configuration: Automatic detection and fallback, no user setup needed
  • Backward Compatible: All existing functionality preserved
  • Immediate Effect: Fix applies immediately after deployment

Version: 4.0.2
Release Date: July 2, 2025
Branch: temp
Type: Bug Fix
Compatibility: All existing features maintained

What's Changed

Full Changelog: v4.0.0...v4.0.2

What's Changed

Full Changelog: v4.0.1...v4.0.2

v4.0.1

03 Jul 01:14
2486afc

Choose a tag to compare

Muster Buddy Check v4.0.1 Release Notes

🎉 Major Feature: Digital Attendance Receipts with Hash Verification

✨ New Features

🔐 Digital Attendance Receipts

  • Unique SHA256 Hash Generation: Every attendance sign-in (user or anonymous) now generates a unique SHA256 hash receipt
  • Server-Side Hash Generation: Implemented Supabase Edge Function for reliable, secure hash generation
  • QR Code Receipts: Attendees receive a QR code containing their unique receipt hash
  • Receipt Verification System: Teachers/facilitators can verify attendance receipts by entering or scanning hash codes

📱 Enhanced User Experience

  • Immediate Receipt Display: Attendees see their receipt immediately after signing in
  • Receipt Verification Page: New dedicated page for verifying attendance receipts
  • Navigation Integration: Added links to receipt verification throughout the app
  • CSV Export Enhancement: Attendance exports now include receipt hash codes

🛡️ Security & Reliability

  • Fallback Hash Generation: Client-side fallback when server-side generation fails
  • RLS Policy Updates: Fixed Row Level Security policies to allow anonymous users to update attendance records
  • Unique Hash Components: Each hash includes database ID, timestamps, personal info, and secret salt

🔧 Technical Improvements

Backend Enhancements

  • Supabase Edge Function: generate-hash function for server-side hash generation
  • Database Schema: Added attendance_hash column to musterentries table
  • RLS Policies: Updated policies to support anonymous user hash updates
  • TypeScript Types: Updated types to include hash-related fields

Frontend Improvements

  • Hash Utilities: Enhanced hash generation utilities with fallback support
  • Attendance Flow: Updated attendance submission to generate and store hashes
  • UI Components: Added receipt display and verification components
  • Error Handling: Improved error handling for hash generation failures

🐛 Bug Fixes

  • Anonymous User Hash Storage: Fixed issue where anonymous user hashes weren't being stored in database
  • RLS Policy Gap: Added missing UPDATE policy for anonymous users on musterentries table
  • Hash Generation Reliability: Resolved crypto.subtle.digest availability issues with fallback

📋 Database Changes

  • New Column: attendance_hash (TEXT) added to musterentries table
  • Index: Added index on attendance_hash for efficient lookups
  • RLS Policies: Updated policies to allow anonymous users to update their attendance records

🚀 Deployment Notes

  • Supabase Edge Function: Deployed generate-hash function
  • Database Migration: Applied RLS policy updates
  • Environment: No additional environment variables required

📱 User Guide Updates

  • Receipt Verification: Users can now verify attendance receipts using hash codes
  • QR Code Scanning: Receipt verification supports QR code scanning
  • Export Features: CSV exports now include receipt information

🔄 Migration Steps

  1. Database migration applied automatically
  2. Supabase Edge Function deployed
  3. RLS policies updated
  4. No user action required

🎯 What's Next

  • Enhanced receipt verification UI
  • Bulk receipt verification features
  • Receipt history and management
  • Advanced reporting with receipt analytics

Version: 4.0.1
Release Date: July 2, 2025
Branch: temp
Compatibility: All existing features maintained

What's Changed

Full Changelog: v3.5.0...v4.0.1

v4.0.0

03 Jul 00:34
2486afc

Choose a tag to compare

Release v4.0.0 - Attendance Verification & UI Enhancements

🎉 Major Release: Complete Attendance Verification System

This release introduces a comprehensive attendance verification system with tamper-proof receipts, along with significant UI improvements and security enhancements.

✨ New Features

🔐 Attendance Hash Receipts & Verification System

  • SHA256 Hash Generation: Each attendance submission now generates a unique, tamper-proof hash
  • QR Code Receipts: Attendees receive QR code receipts for proof of attendance
  • Receipt Verification Page: Teachers/facilitators can verify attendance by entering or scanning receipt codes
  • Hash Display: Results page shows attendance hashes in a dedicated "Receipt" column
  • CSV Export Enhancement: Export now includes receipt codes for record-keeping

🎯 Enhanced User Experience

  • Simplified QR Code Page: Removed complex modal in favor of streamlined "Add Signee" button
  • Improved Navigation: Added direct links to receipt verification from main navigation
  • Better Error Handling: Enhanced error messages and logging for debugging

🔧 Technical Improvements

Database Schema Updates

  • Added attendance_hash column to musterentries table
  • Created database index for efficient hash lookups
  • Updated TypeScript types to include hash field

Code Quality

  • New hash-utils.ts utility library with comprehensive hash functions
  • Improved error handling and logging throughout the application
  • Better separation of concerns with dedicated utility functions

🗑️ Removed Features

Guest Account System

  • Removed Guest Button: Temporarily disabled guest account development
  • Cleaned Up Auth Flow: Simplified authentication interface

Legacy Modal System

  • Removed Add Signee Modal: Replaced with direct attendance page access
  • Streamlined UI: Cleaner, more intuitive interface

🔒 Security Enhancements

Row Level Security (RLS)

  • Applied comprehensive RLS policies for data protection
  • Enhanced permission controls for attendance data access
  • Improved security for anonymous attendance submissions

📱 User Interface Updates

Results Page Enhancements

  • Receipt Column: New column to display attendance hashes
  • Hash Visibility Toggle: Show/hide receipt codes as needed
  • Copy Functionality: Easy copying of receipt codes for verification

Navigation Improvements

  • Verify Receipts Link: Direct access to receipt verification
  • Cleaner Header: Simplified navigation structure

🐛 Bug Fixes

  • Fixed attendance submission issues with proper RLS policies
  • Resolved hash generation timing issues
  • Improved error handling for database operations
  • Fixed CSV export to include all attendance data

📋 Migration Notes

Database Migration Required

Users need to apply the new database migration to enable hash functionality:

-- Add hash column to musterentries table
ALTER TABLE public.musterentries 
ADD COLUMN IF NOT EXISTS attendance_hash TEXT;

-- Create index on attendance_hash for verification queries
CREATE INDEX IF NOT EXISTS idx_musterentries_attendance_hash ON public.musterentries(attendance_hash);

Breaking Changes

  • Guest account functionality temporarily disabled
  • Old "Add Signee" modal removed in favor of direct attendance page access

🚀 Getting Started

  1. Apply Database Migration: Run the SQL migration in your Supabase dashboard
  2. Update Dependencies: Run npm install to get latest packages
  3. Test Hash Generation: Submit test attendance to verify hash generation
  4. Verify Receipts: Test the receipt verification system

📊 Performance Improvements

  • Optimized database queries with proper indexing
  • Reduced bundle size by removing unused modal components
  • Improved loading times with better error handling

🔮 Future Considerations

  • Guest account system may be re-enabled in future releases
  • Additional receipt verification methods may be added
  • Enhanced reporting features planned for v4.1.0

Version: 4.0.0
Release Date: July 2, 2025
Compatibility: Requires Supabase database migration
Breaking Changes: Yes - Guest accounts disabled, modal system removed

What's Changed

Full Changelog: v3.5.0...v4.0.0

v3.5.0

02 Jul 04:11
b1c28da

Choose a tag to compare

Muster Buddy Check – Release Notes

Version 3.5.0 · "Mobile Menu & Multi-Delete"

Release date: 2024-06-25


✨ Highlights

Area Summary
Mobile UI Major overhaul for mobile: header now uses a menu button (hamburger) for both users and guests, eliminating overflow and voids on small screens.
Delete Mode Added a new "Delete Mode" to the dashboard, allowing users to select and delete multiple muster sheets at once, similar to email UIs.
Guest Mode Consistency Guest mode now uses the same header/menu layout as logged-in users for a seamless experience.

🆕 New Features

Feature Details
Hamburger Menu on Mobile The header now shows a menu button on mobile for all users. All actions (Sign Out, Services, Donate, etc.) are inside the menu, keeping the UI clean and preventing horizontal scrolling.
Multi-Delete for Sheets Users can enter Delete Mode, select multiple muster sheets, and delete them in bulk. Checkboxes and a delete button appear in this mode.

🛠 Improvements & Fixes

  • Responsive Layout – No more overflow or voids on mobile; header and menu adapt to all screen sizes.
  • Guest Mode UI – Guest users see "Guest Mode" in the header with the menu button, just like logged-in users see their email.
  • Bug Fixes – Fixed issues with guest mode not updating the UI immediately after login, and ensured consistent state propagation.
  • CSS Polish – Added global overflow-x: hidden and responsive menu panel width to prevent horizontal scrolling.


🙌 Thank You

Special thanks to all testers and contributors who provided feedback on mobile usability and multi-delete workflows.

Happy mustering!

What's Changed

Full Changelog: v3.3.0...v3.5.0

v3.4.0

27 Jun 02:38
811e0d9

Choose a tag to compare

📢 Muster Buddy Check – Release v3.4.0

Release date: 26JUN2025

Fast, QR-powered attendance for classrooms, events, and formations.
This milestone brings powerful sheet-management tools, a refreshed onboarding flow, and dozens of quality fixes.


✨ New Features

Area Description
Sheet Cloning 🔄 • “Fully functional clone” button on every sheet card.
• Duplicates title, description, required fields, time format, expiry & active state.
• New copy is immediately Active so you can publish its QR code in seconds.
Sheet Editing ✏️ Edit button appears only on active + non-expired sheets.
• Opens /edit/{sheetId} with a full form to update title, description, required fields, time format, expiry, and active flag.
• Live Supabase validation & toast confirmations.
Revamped Login & Onboarding 🎨 • First-visit splash with larger logo and multi-step tour.
• “Don’t show again” stored in localStorage.
GitHub OAuth 🔑 Added Sign in with GitHub via Supabase Auth, alongside email & Google.

🛠 Improvements & Fixes

Category Highlights
Templates • Icons moved from preloaded-sheets.tspreloaded-sheets.tsx to support JSX.
• Created bridge file preloaded-sheets.ts to re-export, preventing build errors.
• Added badge_number (Student ID) to Class template and aligned field lists.
Conditional Edit Button Disabled on expired or inactive sheets to prevent accidental edits.
Public Attendance Flow Fixed “Sheet Not Found” errors when scanning QR from anonymous devices by updating RLS policies and improving error messages.
Row-Level Security Helper New scripts/apply-rls-policies.js (ESM) + SQL migrations.
Run npm run apply-rls once to expose public attendance endpoints securely.
Local LAN Testing README now explains vite --host, finding your IP, and scanning QR from phones on the same Wi-Fi.
UI Polish Larger splash logo, consistent Lucide icons, cleaner hover states, color-coded badges, unified toast messages.
House-Keeping • Added .env.example + .gitignore update.
• Updated package.json scripts (apply-rls, build:dev).
• Browserslist DB update reminder.
• Vulnerability audit hint (npm audit fix).

🔧 Developer Notes

  • Breaking: If you previously imported from src/data/preloaded-sheets.ts, keep using the same path—the new bridge file handles it automatically.
  • RLS Migration: Ensure your Supabase project has run both migration files in supabase/migrations/* or execute npm run apply-rls.
  • Environment: Add GITHUB_CLIENT_ID and GITHUB_SECRET to Supabase and .env.
  • LAN Dev: npm run dev -- --host exposes Vite on your local network.

⬆️ Upgrade Steps

# 1. Pull latest main
git checkout main && git pull

# 2. Install updated deps
npm install

# 3. Apply (or re-apply) RLS policies
npm run apply-rls   # requires SUPABASE_SERVICE_KEY

# 4. Add GitHub OAuth env vars
echo "VITE_GITHUB_CLIENT_ID=..." >> .env
echo "VITE_GITHUB_SECRET=..." >> .env

🚀 Contributors

Thanks to everyone who reported issues, tested QR flows on real classrooms, and reviewed PRs for this release. Your feedback drives Muster Buddy Check forward. 🙌


Happy mustering! 🎓

What's Changed

Full Changelog: v3.3.0...v3.4.0

pre-release_v3.4.0

25 Jun 16:16
f9909d1

Choose a tag to compare

pre-release_v3.4.0 Pre-release
Pre-release

What's Changed

Full Changelog: v3.3.0...pre-release_v3.4.0

v3.3.0

24 Jun 22:22
069abf9

Choose a tag to compare

🎉 Muster Buddy Check — Release v3.3.0

Release date: 2025-06-24

This release turns Muster Buddy Check into a fully open-source project and adds the most-requested productivity boost for instructors: one-click sheet cloning. Thanks to everyone who tested and provided feedback. 🚀


✨ New Features

Feature Description
Clone Button 🔄 • Duplicate any existing muster sheet in one click.
• Copies title, description, required fields, time format, expiry, active status.
• Prepends “Copy of …” to keep dashboards organised.
• Instant toast feedback & auto-refresh.
MIT License 📜 • Entire repository relicensed under MIT.
• Free to use, modify, fork, and contribute back — commercial projects welcome.

🛠 Technical Implementation

Area Details
Frontend MusterSheetCard.tsx
• Added handleCloneSheet() using Supabase insert.
• Auth check via useAuth(); guests prompted to sign in.
• Toasts for success/error.
• New <Copy /> icon replaces analytics button in the action group.
Backend / DB No schema change required — clone is a simple INSERT with copied values.
RLS policies from v3.2.0 already permit creators full CRUD on their own sheets.
Package package.json bumped to 3.3.0.
• Added LICENSE file (MIT).
Docs • README updated with cloning instructions.
• CHANGELOG updated through v3.3.0.

🩹 Minor Fixes & Tweaks

  • Unified toast styling across pages.
  • Updated .gitignore & .env.example for open-source hygiene.
  • Locked tailwind-merge to stable version to avoid style regressions.

⏭ What’s Next

  1. Analytics Dashboards 📊 — real-time charts & CSV export.
  2. Role-Based Permissions 🛡 — delegate sheet management to TAs.
  3. Offline PWA 📶 — capture attendance without connectivity.

Thank you for your ongoing support. If you build something cool with Muster Buddy Check, submit a PR or open an issue — we’d love to see it!

Happy mustering! 🎓

What's Changed

Full Changelog: v3.2.0...v3.3.0

v3.2.0

24 Jun 16:45
e7f057f

Choose a tag to compare

🎉 Muster Buddy Check v3.2.0 Release Notes

Release date: 2025-06-24

Welcome to v3.2.0! This is a polish & stability update focused on bug-fixes discovered after the 3.1.0 “Teacher Toolkit” drop, plus a small round of documentation and environment-setup tweaks. No breaking changes — just a smoother experience. 🛠️✨


🐞 Bug Fixes

Fix Impact
QR Code & Attendance 📱 Resolved “Sheet Not Found” / blank-screen issues when anonymous users visited attendance links on mobile & incognito browsers.
URI Malformed 🛠️ Fixed a Vite dev-server crash caused by an invalid decodeURI call during hot-module reload.
UI Tweaks 🎨 Removed accidental white backgrounds on icon buttons and unified toast messaging for copy-link actions.

📚 Documentation

  • README – Added QR-code LAN-testing tips and local network advice.
  • CHANGELOG – Now tracks changes through v3.2.0.
  • .env.example – New template plus security guidance for service-role keys.

⚙️ Environment & Configuration

  • Added .env.example template for safer local setup.
  • .gitignore updated to exclude local credential files.
  • apply-rls npm script ensures RLS stays in sync during deployments.

Thank you to all contributors and testers who helped make this release possible. Have feedback? Open an issue or join the discussion on our community channel.

Happy mustering! 🎓

What's Changed

Full Changelog: v3.1.0...v3.2.0

v3.1.0

23 Jun 03:02
9d4e194

Choose a tag to compare

Muster Buddy Check v3.1.0 – Local-Dev Love 💻✨

Release date: 22-JUN-2025


✨ Highlights

Category Description
Local Development One-command script (npm run setup-local-auth) auto-registers localhost redirect URLs in Supabase → zero manual dashboard clicking.
GitHub OAuth In addition to Google, users can now Sign in with GitHub.
Clean-Slate Schema Brand-new create_tables_and_policies.sql builds the mustersheets / musterentries schema, indexes, triggers and all 8 RLS policies from scratch.
DX & Docs Revamped README + in-depth Netlify + Supabase Auth Guide with troubleshooting matrix.
Security Converted admin script to pure ESM + dotenv; .env added to .gitignore.

1 Changes Since v3.0.0

New Features

  • GitHub Login

    • Added Sign in with GitHub button in AuthForm.tsx.
    • Supabase provider wired; respects new redirect URL list.
  • Automatic Local Auth Setup

    • scripts/setup-local-auth.js adds
      http://localhost:3000/* and /auth/v1/callback to your project via Supabase Management API.
    • Run once with SUPABASE_SERVICE_KEY → saves minutes of dashboard work.
  • Fresh Schema Script

    • supabase/migrations/create_tables_and_policies.sql now:
      • Creates mustersheets & musterentries
      • Adds indexes, updated_at trigger
      • Enables RLS + installs 8 policies
    • Designed for clean installs – no legacy migrations necessary.

Improvements & Fixes

  • Error Handling
    • Attendance & QR pages display Access Restricted, Network Error, etc. with richer logging.
  • Documentation Overhaul
    • NETLIFY_AUTH_TROUBLESHOOTING.md rewritten – step-by-step Supabase + provider setup, LAN testing tips, issue matrix.
    • README upgraded with local dev “Auth Tip”, LAN QR instructions, new ToC.
  • Security & Tooling
    • Converted apply-rls-policies.js to ESM (import syntax).
    • Added dotenv for secure key loading (.env.example provided).
    • .gitignore updated to exclude .env.
  • Package Scripts
    • setup-local-auth, apply-rls, postbuild hooks added for CI/CD.
  • Version bumppackage.json3.1.0.

2 Technical Implementation Details

Area Detail
Schema Postgres SQL script creates tables with gen_random_uuid(), cascade FK, unique composite constraint on [sheet_id, first_name, last_name, email].
Indexes mustersheets_* (creator, active, expires_at) & musterentries_* (sheet, user, timestamp, name) indexes for query speed.
Triggers update_timestamp() keeps updated_at fresh on every sheet update.
RLS 8 clearly-named policies: public read of active sheets, creator CRUD, QR inserts, creator view/update/delete, anon read entries on active sheet.
Auth Script Uses Supabase Management API (/auth/settings) with PAT (SUPABASE_SERVICE_KEY) → merges redirect URLs idempotently.
Build Hooks postbuild runs apply-rls so fresh deployments always have RLS applied.

3 Setup & Migration

Fresh Install

# clone, install
git clone ... && cd muster-buddy-check
npm i

# 1. Provision DB
supabase sql < supabase/migrations/create_tables_and_policies.sql

# 2. Configure auth redirects
npm run setup-local-auth   # adds localhost URLs automatically

# 3. Populate .env
cp .env.example .env  &&  edit keys

# 4. Dev server
npm run dev

Upgrading from v3.0.0

  1. Pull latest: git pull origin main
  2. Re-apply schema (safe, idempotent): run supabase sql with the new script or execute npm run apply-rls.
  3. Add GitHub provider:
    • Supabase Dashboard → Auth → Settings → GitHub → paste Client ID/Secret
    • Ensure redirect list matches script.
  4. Run local auth script once so new redirect URLs are registered.
  5. Restart dev server / redeploy Netlify.

4 Breaking Changes ⚠️

Change Impact Migration
New clean schema script Projects relying on legacy tables (mustersheets_original, attendance_records) must export/migrate data manually. Insert old rows into new tables or keep backups.
GitHub provider requires redirect URLs Omitted URLs ⇒ OAuth error 400. Run npm run setup-local-auth + add Netlify URLs in dashboard.
ESM-only admin scripts Node < 13 or CommonJS wrappers will fail. Use Node ≥ 18 and call with node file.js (ESM supported).

5 Documentation Updates

  • README.md – new local dev guide, LAN testing, updated ToC, version bump
  • NETLIFY_AUTH_TROUBLESHOOTING.md – 2,000-word deep dive into Supabase + provider configs, common issues, debugging
  • .env.example – clarified keys & scopes
  • CHANGELOG.md – appended 3.1.0 section
  • SQL scripts – comments, section headers, safety notes

6 Contributors

  • @Juniorduc44 – product direction, testing, schema decisions
  • Factory AI Assistant – automation, scripting, docs
  • Supabase team – upstream library & dashboard improvements

Thank You ❤️

v3.1.0 focuses on polishing the developer experience while keeping the attendee flow friction-free.
Clone, run npm run dev, scan a QR, and muster on!

Full Changelog: v3.0.0...v3.1.0

v3.0.0

22 Jun 05:28
476cda0

Choose a tag to compare

Muster Buddy Check – Release v3.0.0

Release date: 22-JUN-2025


1 Version & Release Metadata

Item Value
Version 3.0.0
Previous Version 2.0.0
Release Date 19-JUN-2025
Git Tag / SHA v3.0.0 / <commit-sha>
Environment Production & Staging
Migration Script supabase/migrations/20250621_rls_policies.sql

2 Executive Summary

v3.0.0 is a stability-focused release that makes QR-code attendance fully public, introduces GitHub single-sign-on, and eliminates the “Sheet Not Found” errors caused by table-name mismatches. It also converts Node scripts to ESM, adds comprehensive RLS policies, and updates documentation for seamless deployment on Lovable or local networks.


3 Detailed Change Log

Area Change Impact
QR Code Flow • Fixed race condition in QRCodePage.tsx so QR renders after sheet fetch.
• Updated AttendancePage error handling for clearer messages.
Attendees can reliably scan & submit without login.
Database Schema • Standardised table names to mustersheets & musterentries across code & SQL.
• Added index idx_musterentries_sheet_id.
Prevents 404s and improves query performance.
Row Level Security • New explicit policies (TO authenticated, anon).
• Public SELECT on active sheets, public INSERT on entries.
• Creator-only SELECT / UPDATE / DELETE on results.
Secure public sign-in while safeguarding results.
Auth Improvements • GitHub OAuth login in AuthForm.tsx.
• Guest mode refinements & session handling.
• Logout 403 resolved by correcting global scope request.
Smoother sign-in options; fewer auth errors.
Scripts & Tooling scripts/apply-rls-policies.js refactored to ES Modules, loads .env via dotenv.
• Added npm run apply-rls convenience command.
.env.example template committed.
Easy, repeatable database policy deployment.
Docs • New MUSTER_BUDDY_QR_FIX.md and SUPABASE_SOP.md.
• Expanded README with local-network QR testing, env setup, and GitHub SSO guide.
Faster onboarding & clearer troubleshooting.
UX Polish • Dashboard, Sheet Card, Results page use consistent badges & copy.
• Added CSV export button.
Better visual clarity and data export convenience.
Versioning Bumped package.json to 3.0.0. Aligns app & npm versions.

4 Technical Changes

4.1 Database

  • Tables: mustersheets, musterentries (no underscores).
  • Indexes: idx_musterentries_sheet_id for faster look-ups.
  • RLS Policies: see supabase/migrations/20250621_rls_policies.sql – 8 total policies.
  • Script Execution: npm run apply-rls (requires SUPABASE_SERVICE_KEY).

4.2 API / Front-end

  • Updated Supabase queries to match new table names.
  • Added GitHub OAuth call:
    supabase.auth.signInWithOAuth({ provider: 'github', options:{ redirectTo: window.location.origin }});
  • All Node scripts converted to ESM (import syntax).

4.3 Dependencies

  • @supabase/supabase-js → ^2.50.0
  • dotenv for local script env vars.
  • Minor bumps: React 18.3.1, Vite 5.4.1 etc.

5 Deployment / Upgrade Instructions

  1. Pull latest main

    git checkout main && git pull
  2. Install deps

    npm ci
  3. Environment

    • Copy .env.example.env
    • Fill SUPABASE_URL, SUPABASE_PUBLISHABLE_KEY, SUPABASE_SERVICE_KEY.
  4. Apply DB migration (one-time):

    npm run apply-rls      # or run SQL in Supabase dashboard
  5. Build & deploy

    • Local: npm run dev then access http://<LAN-IP>:3000.
    • Lovable: push to main, auto-deploy triggers.
  6. Cache busting

    • Confirm new environment variables on hosting platform.
    • Clear service-worker cache if QR images still stale.

6 Known Issues

ID Description Workaround
#42 Supabase PGRST301 errors on very first cold start in anon mode. Hard-refresh or retry after 2 s.
#45 Large CSV exports (>1 MB) may freeze browser tab on mobile Safari. Export from desktop.
#50 Google OAuth occasionally conflicts with Guest mode localStorage. Clear storage and re-login.

7 Contributors

GitHub Handle Area
@Juniorduc44 Product owner, front-end
@Factory-AI Code automation & release engineering
@supabase Upstream library maintainers

(Add any additional contributors who helped on v3.0.0.)


8 Future Roadmap

  • Offline PWA mode – cache QR & form for poor connectivity.
  • Custom QR styling – brand logos & colors.
  • Email confirmations – send attendee confirmation emails.
  • Role-based analytics – separate instructor vs. TA permissions.
  • Mobile app wrapper – native scanning & push notifications.

End of Release v3.0.0 Template

Full Changelog: v2.0.0...v3.0.0