Commit Graph
94 Commits
Author SHA1 Message Date
poprhythm 3a809f18a6 Add EventOccurrence entity and update DbContext
Created the EventOccurrence entity with properties for event details and added it to the AppDbContext. Updated the model snapshot to reflect the new entity and its relationships, ensuring proper database schema generation.
2025-12-27 15:59:48 -05:00
poprhythm eaefdfaedd Refactor Event Calendar component for improved performance and usability
Optimized the Event Calendar component by enhancing the event fetching logic and improving the rendering efficiency. Updated the user interface for better accessibility and responsiveness. Added additional tests to ensure reliability of the event occurrences service integration.
2025-12-27 13:48:04 -05:00
poprhythm 9668ec162d Add Event Calendar feature with event occurrences service integration
Introduced a new Event Calendar component that displays scheduled events using the Heron.MudCalendar. Implemented IEventOccurrenceService to fetch event occurrences, and added mock data for initial testing. Updated navigation menu to include a link to the Event Calendar.
2025-12-27 13:25:17 -05:00
poprhythm 5c1e0b7444 Update padding for MudPaper components across various features
Increased padding from 'pa-4' to 'pa-6' for MudPaper components in Events, MeetingSchedule, Students, and Teams features to ensure consistent styling and improved visual spacing.
2025-12-27 10:43:15 -05:00
poprhythm d19326781a Add loading states to MudDataGrid components
Implemented loading indicators and progress colors for all MudDataGrid instances across Events, Students, Teams, and Registration components to enhance user experience during data loading operations.
2025-12-27 10:39:16 -05:00
poprhythm cb362d6754 Add micro-interactions and transitions for page and table elements
Wrap page content in a new div for animation effects and implement fade-in transitions for table rows.
2025-12-27 10:35:40 -05:00
poprhythm 872a1cae64 Clean up test filenames 2025-12-27 10:29:07 -05:00
poprhythm dbe2b259f6 Clean up test data 2025-12-27 10:25:15 -05:00
poprhythm 58cae98357 Wrap pages in consistent container styling
Remove Back to List
2025-12-26 23:45:32 -05:00
poprhythm 4c05188867 Improve Form Layout 2025-12-26 18:56:24 -05:00
poprhythm 057aa31bf8 Enhance Event Rank Color System 2025-12-26 16:54:16 -05:00
poprhythm ed9487a5ad Consistent Typography in Details pages. 2025-12-26 16:35:09 -05:00
poprhythm 75a64faff0 Improve Table Density and Spacing 2025-12-26 16:02:55 -05:00
poprhythm 768b46da2d Start of some style improvments.
Logout button now matches.
2025-12-26 15:53:48 -05:00
poprhythm e17d15aaff Hover color on the delete buttons 2025-12-26 14:09:49 -05:00
poprhythm f395dba043 Address compiler warnings 2025-12-26 13:58:41 -05:00
poprhythm f2389fa1c1 Moved crud operations to the title field 2025-12-26 10:35:37 -05:00
poprhythm 19a7164b8b Discard in-memory changes when editing 2025-12-26 10:04:37 -05:00
poprhythm 77b5683804 tracks form changes and warns users before navigation 2025-12-25 23:55:04 -05:00
poprhythm 059a16b958 Move action buttons after the forms. 2025-12-25 23:42:18 -05:00
poprhythm 023e6c289a Use PageHeader throughout the system 2025-12-25 21:53:15 -05:00
poprhythm 1e36a5661b PageHeader component introduced. 2025-12-25 20:10:06 -05:00
poprhythm fa13039203 Add class for pre-wrap-text 2025-12-25 20:04:29 -05:00
poprhythm aedf168e8a Update icons for event attributes 2025-12-25 20:03:50 -05:00
poprhythm 1f5aba7f04 Add goals page 2025-12-25 20:03:19 -05:00
poprhythm c77d2117cd Add testing for validation 2025-12-14 11:08:04 -05:00
poprhythmandClaude Sonnet 4.5 73ad730b38 Add comprehensive validation system with runtime configuration
Implements a flexible validation framework for student rankings, team assignments, and team composition with administrator-configurable rules and thresholds.

Validation System:
- Reflection-based rule discovery eliminates manual registration
- Base classes (RequiredEventTypeRuleBase, EventCountThresholdRuleBase) reduce code duplication by ~250 lines
- 12 validation rules covering event requirements, counts, and team constraints
- Configurable severity levels (Warning/Error) per rule type
- ValidationService with caching for optimal performance
- Rules apply contextually (StudentRanking, StudentAssignment, TeamComposition)

Configuration & Admin UI:
- ValidationSettings admin page for editing thresholds and severity levels
- ChapterSettings admin page for editing chapter information
- Settings stored in Data/appsettings.json for runtime configuration
- JSON config works in both development and production environments
- Auto-creates Data directory and config template on first run

User Experience:
- ValidationWarnings component displays inline warnings/errors
- Integrated in Event Ranking, Registration, and Team Assignment pages
- Color-coded severity indicators (warning yellow, error red)
- Includes "Too Many Regional Events" rule (max 3 recommended)

Technical Improvements:
- Template Method pattern for rule base classes
- Singleton rule instances with lazy initialization
- Configuration loaded via IConfiguration with fallback to defaults
- Safe JSON updates preserve other appsettings sections

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-13 22:15:26 -05:00
poprhythm 1c7e704ad3 Add comprehensive validation system with runtime configuration
Implements a flexible validation framework for student rankings, team assignments, and team composition with administrator-configurable rules and thresholds.

Validation System:
- Reflection-based rule discovery eliminates manual registration
- Base classes (RequiredEventTypeRuleBase, EventCountThresholdRuleBase) reduce code duplication by ~250 lines
- 12 validation rules covering event requirements, counts, and team constraints
- Configurable severity levels (Warning/Error) per rule type
- ValidationService with caching for optimal performance
- Rules apply contextually (StudentRanking, StudentAssignment, TeamComposition)

Configuration & Admin UI:
- ValidationSettings admin page for editing thresholds and severity levels
- ChapterSettings admin page for editing chapter information
- Settings stored in Data/appsettings.json for runtime configuration
- JSON config works in both development and production environments
- Auto-creates Data directory and config template on first run

User Experience:
- ValidationWarnings component displays inline warnings/errors
- Integrated in Event Ranking, Registration, and Team Assignment pages
- Color-coded severity indicators (warning yellow, error red)
- Includes "Too Many Regional Events" rule (max 3 recommended)

Technical Improvements:
- Template Method pattern for rule base classes
- Singleton rule instances with lazy initialization
- Configuration loaded via IConfiguration with fallback to defaults
- Safe JSON updates preserve other appsettings sections
2025-12-13 22:15:16 -05:00
poprhythm 215b9dccca Don't display captain for individual events 2025-12-12 14:05:29 -05:00
poprhythm b465235096 Add some local storage to save settings between
page reloads.
2025-12-12 12:48:44 -05:00
poprhythm aeafdcee1a Add a student/team list used for registration 2025-12-12 10:35:37 -05:00
poprhythm 27dc995bb8 Improvements for home page and formatting 2025-12-11 14:17:33 -05:00
poprhythm 8289b7139a Improve Event Ranking Editor 2025-12-07 00:00:57 -05:00
poprhythm abd4840ec1 Improve home page layout 2025-12-06 23:47:27 -05:00
poprhythm 5ea3289d39 Fix Logged In message on the navbar 2025-12-06 23:08:47 -05:00
poprhythm 1c5017bf51 Do not allow team assignment when other teams exist already 2025-12-06 23:08:06 -05:00
poprhythm 56dbd549fd Update settings for production deployment 2025-12-05 14:28:23 -05:00
poprhythm 826eac1372 Database improvement
1.  Separate configuration files
2.  Remove commented code
3.  Improve entity configurations (constraints, indexes, relationships)
2025-12-04 08:09:01 -05:00
poprhythm 2d5d075879 Feature-based folder structure
1. Created feature-based folder structure - Components now organized by domain feature
  2. Moved all components - 20+ files moved to new locations
  3. Updated _Imports.razor - Added all new namespace paths for global component access
  4. Updated CustomThemes.cs namespace - Changed from WebApp.Components.Layout to WebApp.Components.Shared.Layout
  5. Removed old using directives - Cleaned up Login.razor and Routes.razor
  6. Removed empty directories - Cleaned up old folder structure
2025-12-03 22:04:23 -05:00
poprhythm bd04483bed Database migrations are now checked in production. 2025-12-03 15:20:43 -05:00
poprhythm 6fc1ec1192 Remove logs 2025-12-03 14:15:19 -05:00
poprhythm a0313687da 1. Fixed Misleading Property Names
- File: WebApp/ChapterSettings.cs
  - Change: Renamed StateContainer.UserId to ScheduledTeams
  - Impact: Property name now accurately reflects what it stores

  2.  Added Structured Logging with Serilog

  - Packages Added:
    - Serilog.AspNetCore
    - Serilog.Sinks.Console
    - Serilog.Sinks.File
  - Files Modified:
    - Program.cs - Added Serilog configuration with console and file logging
    - appsettings.json - Added Serilog minimum log levels
    - appsettings.Development.json - Added Debug level logging for development
  - Benefits:
    - Structured log output for better parsing/analysis
    - Automatic file rotation (daily, 30 days retention)
    - Logs stored in logs/webapp-.txt
    - Better formatted console output

  3.  Added Global Error Handling

  - File Created: WebApp/Components/Shared/AppErrorBoundary.razor
  - File Modified: WebApp/Components/App.razor
  - Features:
    - Catches unhandled exceptions throughout the app
    - Shows detailed error info in Development environment
    - Shows user-friendly message in Production
    - Logs errors automatically
    - Provides "Return to Home" button

  4.  Enhanced Input Validation

  - File Modified: WebApp/Components/Login.razor
  - Validations Added:
    - Email: Required, valid email format, max 100 chars, regex validation
    - Password: Required, min 8 chars, max 100 chars
  - Benefits:
    - Client-side validation before submission
    - Clear error messages for users
    - Prevents invalid data submission
2025-12-03 14:10:08 -05:00
poprhythm 54875e970c Add more secure form handling 2025-12-02 22:36:41 -05:00
poprhythm 1c38003027 Introduce unit testing on calculation objects 2025-12-02 20:06:05 -05:00
poprhythm 8039e751d8 Refactor/cleanup the EventAssignemnt 2025-12-01 21:38:14 -05:00
poprhythm feaaf76f46 Add an empty layout for the login page.
Move some of the shared components
2025-12-01 20:54:34 -05:00
poprhythm 3461f94854 Refactor TeamScheduler, easier to read and maintain 2025-12-01 06:58:56 -05:00
poprhythm 69dd517d73 Fix a bunch of warnings 2025-12-01 00:11:52 -05:00
poprhythm bfaebfbb13 Fix up CRUD pages a bit. 2025-12-01 00:03:25 -05:00
poprhythm a2857d56e0 Auth configuration in docker 2025-11-30 23:55:34 -05:00
poprhythm e5bf3692f6 Authentication implementation 2025-11-30 23:48:58 -05:00
poprhythm 382fffe1d4 Refactor the Meeting Scheduler 2025-11-30 23:03:52 -05:00
poprhythm 46843fea0f Removed extra title for absent student. 2025-11-24 15:04:19 -05:00
poprhythm 688dfd6d0f Add text box selector for students 2025-11-24 08:21:23 -05:00
poprhythm d8f2a3cf52 Improve team identifier handling 2025-11-23 13:30:24 -05:00
poprhythm 1aaebe5dce Handle absent students in meetin schedule 2025-11-23 11:39:16 -05:00
poprhythm 72da28992f Team scheduler now considers all available students 2025-11-23 11:05:29 -05:00
poprhythm 87be3e9c68 Refinements to auth 2025-11-23 11:04:20 -05:00
poprhythm d188d4fbd1 Add simple auth 2025-11-11 14:41:51 -05:00
poprhythm 307c6e103f Update mudblazor 2025-11-11 14:01:14 -05:00
poprhythm 0228abab01 Fix references for TeamSchedulerTest 2025-11-11 14:00:39 -05:00
poprhythm b7fa7fcbe1 Add recomendations for meeting scheduler 2025-10-31 13:29:43 -04:00
poprhythm cf9949876d Add a TimeSlot object, refactor 2025-10-30 09:35:41 -04:00
poprhythm 967aa567e8 Progress on schedule page formatting 2025-10-27 14:44:11 -04:00
poprhythm ea21406309 Meeting schedule updates
including copy to clipboard
2025-10-27 10:13:54 -04:00
poprhythm 2119de05a8 Update formating for event ranking 2025-10-22 10:11:07 -04:00
poprhythm 5708d846d1 Fix for team comparison in UnassignedStudentScheduler 2025-10-22 09:42:44 -04:00
poprhythm d777b4f67d Update the icons on Ranking and Assignment 2025-10-20 12:54:48 -04:00
poprhythm c42cc43399 Scheduler refinements 2025-10-20 12:03:46 -04:00
poprhythm dd8921f6fe Fix broken tests 2025-10-19 13:34:34 -04:00
poprhythm 054166d7af Redo routes for meeting schedule 2025-10-19 10:05:18 -04:00
poprhythm 349ec09cd7 Scheduler improvements 2025-10-19 10:03:26 -04:00
poprhythm 0ff45f9310 Docker and EF Sqlite adjustments 2025-10-17 14:28:10 -04:00
poprhythm 3964a61794 Team schedule improvements 2025-10-17 07:58:14 -04:00
poprhythm 551688f6fe Add container registry publishing 2025-10-16 15:05:46 -04:00
poprhythm 7c2ba9044a Refactor CrudActions from index pages 2025-10-03 13:48:46 -04:00
poprhythm df27cbc298 Refactor TeamStudents from other components 2025-10-03 13:22:22 -04:00
poprhythm 6407dfca71 Remove Team.Number
Add Team.Identifier
2025-10-03 12:47:05 -04:00
poprhythm 05e5e69d0b Clean up Team page
Add an EventAttributes display
2025-10-03 12:37:11 -04:00
poprhythm 9152c86d41 Refactor Delete
Add Scheduler
2025-10-03 09:29:28 -04:00
poprhythm 338eab0294 Add Title graphic 2025-10-02 15:47:52 -04:00
poprhythm eee377dffc Merge 2025-10-02 15:29:26 -04:00
poprhythm 98f1a4bac5 Add logo graphics 2025-10-02 15:27:23 -04:00
poprhythm 688ca60511 Event definiteion updates 2025-09-26 11:33:25 -04:00
poprhythm 1ea096469b Roll back data migration issue with "TimeSlots" replacing "Teams" 2025-09-26 10:13:00 -04:00
poprhythm 1e2e2724cf Add Dockerfile 2025-09-25 10:09:03 -04:00
poprhythm 227dbcf336 Improve formatting for Event Create 2025-09-25 09:58:56 -04:00
poprhythm 7b1a52d5b3 Merge branch 'master' of https://gitea.kolpacksoftware.com/TSA/chapter-organizer 2025-09-22 12:54:11 -04:00
poprhythm dc83a18d76 Add Team functions 2025-09-22 12:53:46 -04:00
poprhythm 619eeadf13 Update .gitignore
ignore local sql data
2025-09-13 02:24:04 +00:00
poprhythm 3daa3b81b3 Add Blazor WebApp and rework data handling to utilize Entity Framework 2025-09-11 11:49:48 -04:00
poprhythm 5220e61c79 Move Web project to Web-Original 2025-08-15 11:14:17 -04:00
poprhythm d4c46ae0fe Fix a few unit tests 2025-08-15 11:05:38 -04:00
poprhythm cf32cfcbcd first commit 2025-08-01 14:10:44 -04:00