b72e9b073c
feat: add CalendarInfo shared DTO, retire GoogleCalendar
...
Creates the new CalendarInfo shared DTO to replace GoogleCalendar with a more
generic name suitable for both Google Calendar and Nextcloud CalDAV integration.
Updates client-side references to use CalendarInfo instead of GoogleCalendar.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 22:37:16 +02:00
a36530b976
chore: upgrade all projects to net10.0
2026-04-10 22:34:52 +02:00
5a34965667
chore: add .worktrees to .gitignore
2026-04-10 22:33:04 +02:00
31464fe0f7
Add Nextcloud calendar sync implementation plan
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 22:31:41 +02:00
43395235e2
Add design spec for Nextcloud CalDAV calendar sync
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 17:24:22 +02:00
Copilot
71717cccc1
Fix timezone offset calculation to respect DST for target dates ( #59 )
...
* Initial plan
* Fix timezone offset calculation and add tests
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
2025-10-04 16:22:29 +02:00
Copilot
252e588375
Refactor export API calls to pass only month/year instead of full data ( #56 )
...
* Initial plan
* Implement cleaner API calls for export methods
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* 4 icons per row
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <c.schaad@pog.ch>
2025-10-04 15:27:13 +02:00
Claudio Schaad
f2b0051183
New shifts ( #57 )
...
* Add new icons for shifts
* add to project
2025-10-04 15:05:37 +02:00
Copilot
335fe9821b
Improve loading speed with parallel transport calls and non-blocking UI ( #52 )
...
* Initial plan
* Implement parallel transport loading and non-blocking UI improvements
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
2025-10-04 14:37:10 +02:00
Claudio Schaad
fddca4e833
Begin pdf with the right position ( #54 )
2025-09-27 12:20:39 +02:00
Claudio Schaad
6f73aca3f6
Fix month selection ( #53 )
...
* Clear old shifts when switching
* Start with monday
2025-09-27 11:34:21 +02:00
Claudio Schaad
a341a5fec0
Fix google calendar time zone ( #50 )
2025-09-06 21:47:47 +02:00
Claudio Schaad
28429d78d0
Fix finding best connection ( #49 )
...
* Log and fix connection
* Update Services/TransportConnectionCalculator.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update Services/TransportConnectionCalculator.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update Services/TransportConnectionCalculator.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* better logging
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-09-06 21:14:44 +02:00
Copilot
5103aecacf
Add Google Calendar integration with direct sync functionality and rate limiting protection ( #45 )
...
* Initial plan
* Implement Google Calendar integration with sync button and calendar selection
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Add Google Calendar sync documentation and finalize implementation
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Fix build errors
* Fix Google Calendar rate limiting issues with retry logic and delays
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* optimize
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <c.schaad@pog.ch>
2025-09-06 16:47:48 +02:00
Copilot
3ed54f51ad
Fix emoji rendering in PDF ( #48 )
2025-09-06 14:39:29 +02:00
Claudio Schaad
a1f9f1313e
Fix find best connection with using of local date time offset ( #46 )
...
* Add logger
* Change strings to date time offset
* Fix logic for best connection
* Fix parsing shift times
* set time zone
2025-09-03 22:17:53 +02:00
3c01b33070
Fix tests
2025-08-30 10:21:26 +02:00
5a5902fefa
Add logging for transport connection logic
2025-08-30 09:29:51 +02:00
f09f57c3dd
UI changes
2025-08-30 09:06:17 +02:00
Claudio Schaad
8471138c06
Update copilot-instructions.md
2025-08-30 08:37:23 +02:00
Copilot
7e556b852c
Add comprehensive README.md with application overview, features, setup instructions, and screenshots ( #43 )
...
* Initial plan
* Add comprehensive README.md with features, configuration, and setup instructions
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Add shift calendar screenshot after login screen in README
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Update README.md
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <clayschaad@users.noreply.github.com>
2025-08-30 08:32:23 +02:00
034b1e3edd
UI optimization
2025-08-29 20:58:58 +02:00
Copilot
1493c459bd
Implement responsive mobile/desktop UI layout for shift scheduler ( #38 )
...
* Initial plan
* Implement responsive mobile/desktop UI layout
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Clean up demo files and finalize mobile UI implementation
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Fix desktop calendar week grouping to properly start weeks on Monday and end on Sunday
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Remove button for shift delete
* Fix desktop week grouping to start weeks on Monday instead of grouping consecutive days
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* UI improvements
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <c.schaad@pog.ch>
2025-08-29 20:41:25 +02:00
a9c5937ce4
Cleanup selection of month/year
2025-08-28 20:15:07 +02:00
Copilot
7f8b2c4b8c
Enhance shift handling: Move storage to file system and add month selection ( #36 )
...
* Initial plan
* Initial setup: Downgrade .NET version to 8.0 for compatibility
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Implement enhanced shift handling with file system storage and month selection
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Move component styles from global app.css to Index.razor.css for proper component isolation
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
2025-08-28 19:47:12 +02:00
Copilot
497379f62b
Save shifts and transport configurations in external files for Docker persistence ( #31 )
...
* Initial plan
* Implement external configuration file persistence for Docker containers
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Add Docker documentation and finalize external config implementation
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Delete the files
* Adapt gitignore
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <c.schaad@pog.ch>
2025-08-28 18:57:15 +02:00
Copilot
1f7df973c1
Fix invalid ICS and PDF export returning validation errors as file content ( #33 )
...
* Initial plan
* Fix client-side export error handling and identify validation root cause
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Complete fix for invalid ICS and PDF export issue
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
2025-08-28 18:48:00 +02:00
Copilot
e8db13191e
Add Google OAuth authentication with configurable authorized emails ( #29 )
...
* Initial plan
* Add Google authentication with authorized email configuration
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Complete Google authentication implementation with documentation
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Fix CORS error by removing [Authorize] from auth user endpoint
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Add authorization attribute to ConfigurationController for security
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Fix JavaScript error in login button by correcting window.location.href usage
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Fix Google OAuth redirect URI configuration to resolve authentication error
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Fix OAuth state validation error by specifying authentication scheme in callback
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Fix OAuth state validation error by improving authentication configuration
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Fix authentication setup documentation with correct redirect URI
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Fix navigation buttons overlapping with authentication header
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Remove unused unsing
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <c.schaad@pog.ch>
2025-08-27 21:18:50 +02:00
Claudio Schaad
d5b123bbd9
Expand coding standards and guidelines section
2025-08-27 15:00:36 +02:00
Copilot
7d8e40b9cf
Add Configuration UI for Transport and Shift Settings with Import/Export ( #27 )
...
* Initial plan
* Complete configuration UI implementation with working dialog, API endpoints, and file import/export
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Refactor to inject IConfigurationService directly instead of using factory singletons
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Remove redundant ShiftService and use IConfigurationService directly
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
2025-08-26 17:17:09 +02:00
Copilot
73abfac988
Implement caching for transport connection results with IMemoryCache ( #26 )
...
* Initial plan
* Implement caching for transport connection results with IMemoryCache
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Change cache duration from minutes to days
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Implement CachedTransportService design with interface separation
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Implement persistent file-based cache to survive application restarts
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Revert persistent file-based cache implementation, restore IMemoryCache usage
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Code cleanup
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <c.schaad@pog.ch>
2025-08-25 21:15:13 +02:00
Copilot
68e2fa4927
Optimize Transport Connection Selection with Enhanced Timing Logic ( #24 )
...
* Initial plan
* Implement enhanced transport connection optimization logic
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Add configuration for new transport optimization parameters and complete implementation
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Address PR feedback: remove comments, old logic, and unnecessary tests
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Fix looking for connection
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: clayschaad <c.schaad@pog.ch>
2025-08-23 20:16:04 +02:00
Claudio Schaad
f5387e7b41
Cleanup transport service ( #22 )
2025-08-23 19:16:40 +02:00
Copilot
991dd5f623
Add comprehensive unit tests for TransportService with xUnit and Shouldly, plus CI/CD automation ( #21 )
...
* Initial plan
* Add comprehensive TransportService unit tests with xUnit and Shouldly
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Add comprehensive edge case tests for TransportService
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Add GitHub Actions CI workflow for automated testing
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
2025-08-23 15:37:08 +02:00
Copilot
a25d8f1cc2
Add PNG icon support for shift types ( #18 )
...
* Initial plan
* Add PNG icon support for shifts with sample coffee cup icon
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Add more icons
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <c.schaad@pog.ch>
2025-08-21 23:09:45 +02:00
d26b3319b9
UI Improvements
2025-08-21 20:44:56 +02:00
Copilot
2530e729ce
Implement transport time improvements: departure station display and break time logic ( #17 )
...
* Initial plan
* Implement transport time improvements: departure station display and break time logic
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Enhance code
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <c.schaad@pog.ch>
2025-08-21 20:04:53 +02:00
Copilot
45fa364368
UI improvements: Add month to title, remove sidebar, move buttons to top navigation, show shift times ( #14 )
...
* Initial plan
* Complete UI improvements: add month to title, remove sidebar, move buttons to top, show shift times, add loading spinner
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Move action buttons to top navigation level as requested
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Some ui changes
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <c.schaad@pog.ch>
2025-08-21 17:38:07 +02:00
Copilot
b41d8d6b36
Fix PDF export filename: Add .pdf extension to downloaded files ( #13 )
...
* Initial plan
* Fix PDF export filename: use JavaScript download with proper .pdf extension
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Remove test PDF file from repository
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Add year and month
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <c.schaad@pog.ch>
2025-08-21 16:41:14 +02:00
Copilot
2dc437ac9c
Add real-time SBB transport integration with enhanced UI feedback and improved timing logic ( #2 )
...
* Initial plan
* Initial project setup - update to .NET 8.0 for compatibility
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Complete SBB transport integration implementation
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Revert to .NET 9 and separate transport info into ShiftTransport class
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Make safety buffer minutes configurable via appsettings
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Migrade pdf export service
* Update gitignore
* Implement new approach: real-time transport data per shift selection with ShiftWithTransport view model
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Refactor export methods to directly use ShiftWithTransport instead of converting to separate parameters
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Move ShiftWithTransport class to its own file
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Code cleanup
* Fix transport timing logic to respect safety buffer and find best available connections
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: clayschaad <c.schaad@pog.ch>
Co-authored-by: Claudio Schaad <clayschaad@users.noreply.github.com>
2025-08-19 22:08:59 +02:00
Copilot
e275cbd240
Add reset button with proper styling and improve export button appearance ( #8 )
...
* Initial plan
* Initial plan for reset button implementation
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Implement reset button with styling and export button improvements
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Remove code comments and clean up .deb file
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
2025-08-19 06:34:29 +02:00
Claudio Schaad
ac6f471511
Update copilot-instructions.md
...
fix formatting
2025-08-19 06:28:00 +02:00
Claudio Schaad
6267c01fc8
Update copilot-instructions.md
...
common instructions
2025-08-19 06:27:21 +02:00
Copilot
76a1531729
Implement localStorage persistence for shift selections ( #6 )
...
* Initial plan
* Fix .NET framework version compatibility from 9.0 to 8.0
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Implement localStorage persistence for shift selections
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Restore .NET 9.0 version and update Index.razor.cs per feedback
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Fix compilation error by making EditMonth and EditYear instance variables
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
* Minor changes
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <c.schaad@pog.ch>
2025-08-18 19:40:52 +02:00
Claudio Schaad
0aebab3d38
Add comprehensive GitHub Copilot instructions for ShiftScheduler development
...
Add comprehensive GitHub Copilot instructions for ShiftScheduler development
2025-08-18 17:52:18 +02:00
78678033f9
Enhance PDF
2025-08-18 17:35:31 +02:00
copilot-swe-agent[bot]
c8b9fd320c
Create comprehensive .github/copilot-instructions.md with validated build and run instructions
...
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
2025-08-17 18:42:47 +00:00
copilot-swe-agent[bot]
0b04c89a9a
Initial exploration and project setup validation
...
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
2025-08-17 18:33:22 +00:00
copilot-swe-agent[bot]
c285007788
Initial plan
2025-08-17 18:24:49 +00:00
88b3237c6c
Initial Version
2025-08-17 20:15:45 +02:00