1. 14.07.2025 6 коммитов
    • Stanislav Radchenko's avatar
      Merge pull request #8 from Radch-enko/develop
      · de60157c
      Stanislav Radchenko создал
      Update on develop
      de60157c
    • Radch-enko's avatar
      Add detailed READMEs for backend and client projects
      · 6f7695f4
      Radch-enko создал
      - Created comprehensive backend documentation covering architecture, setup, deployment, and development workflows.
      - Added client application documentation, including architecture, technology stack, and setup instructions.
      - Updated root README for improved project structure and navigation, linking to component-specific documentation.
      - Introduced monorepo structure overview and Git Flow guideline for streamlined contribution processes.
      6f7695f4
    • Radch-enko's avatar
      Enhance deployment tasks with improved logging and rsync integration
      · 0028ddff
      Radch-enko создал
      - Added detailed logging for deployment processes to improve visibility.
      - Replaced `scp` with `rsync` for faster and incremental file transfers.
      - Included remote JAR cleaning step before transferring files.
      - Updated deployment scripts for both production and development environments.
      0028ddff
    • Radch-enko's avatar
      Add Docker setup for development and production environments
      · 4f994939
      Radch-enko создал
      - Introduced Dockerfiles and `docker-compose.yml` for both development and production configurations.
      - Added `.env.example` files for environment variable templating.
      - Updated `.gitignore` to exclude `.env` and `.jar` files in deployment directories.
      - Removed `jwt` settings from `application.yml` to externalize secrets management.
      4f994939
    • Radch-enko's avatar
      Add pre-commit hook and update .gitignore for streamlined development
      · 9566cc8b
      Radch-enko создал
      - Introduced a Gitleaks-based pre-commit hook to prevent committing secrets.
      - Updated `.gitignore` to exclude outdated scripts and deployment files.
      - Added a script to install Git hooks for consistent developer workflows.
      9566cc8b
    • Radch-enko's avatar
      Remove Docker setup and introduce `application-local.yml` for local development
      · 98756fd3
      Radch-enko создал
      - Deleted `docker-compose.yml` and `Dockerfile` to streamline development setup.
      - Added `application-local.yml` for local profile configuration, enabling development in a disconnected network environment.
      - Updated `.gitignore` to include `.env` file path for local environment variables.
      - Enhanced `build.gradle.kts` with deployment tasks for production and development environments.
      98756fd3
  2. 13.07.2025 2 коммита
  3. 11.07.2025 9 коммитов
    • Radch-enko's avatar
      - Enhance push notification handling with deduplication logic and header-based processing.
      · 214f21c1
      Radch-enko создал
      - Simplify successful update mapping in `RoomRepositoryImpl`.
      - Add debounce to `ResourceDisposerUseCase` for efficient data refresh.
      - Update `.gitignore` to exclude deployment scripts and directories.
      214f21c1
    • Radch-enko's avatar
      Refactor: simplify settings initialization and remove redundant navigation logic
      · 3e138bae
      Radch-enko создал
      - Integrated `CheckSettingsUseCase` in `RootComponent` for settings validation during initialization.
      - Removed `onSettings` callback and associated navigation logic in `MainComponent`.
      - Updated `RoomsResult` to calculate room index based on settings.
      - Eliminated `isSettings` state and redundant settings handling in `State` and `MainScreen`.
      - Improved `SettingsManager` initialization to prevent redundant assignments.
      3e138bae
    • Radch-enko's avatar
      Update UI components, enhance scrolling, and refine lifecycle handling
      · a5e9ce5d
      Radch-enko создал
      - Changed `windowSoftInputMode` in `AndroidManifest.xml` to `adjustResize` for better keyboard behavior.
      - Added vertical scrolling to `BookingEditor` for improved UI usability on smaller screens.
      - Replaced `DropdownMenu` with a custom `Popup` in `EventOrganizerView` for better control over dropdown behavior and positioning.
      - Enhanced dependency management by adding `lifecycle` to `build.gradle.kts`.
      a5e9ce5d
    • Radch-enko's avatar
      Remove outdated files, enhance logging, and update configurations
      · 59d6e45b
      Radch-enko создал
      - Deleted `network_security_config.xml` and removed its reference from `AndroidManifest.xml` to simplify project structure.
      - Enhanced logging in `CalendarSubscriptionScheduler` for better debugging of calendar subscriptions.
      - Improved resource management in `RootComponent` with `ResourceDisposerUseCase` integration and memory leak prevention.
      - Adjusted `docker-compose.yml` configurations for better resilience and dynamic environments.
      - Refactored `ResourceDisposerUseCase` to allow reinitialization and prevent unused job persistence.
      - Simplified message handling in `ServerMessagingService` to avoid unnecessary data conversion.
      59d6e45b
    • Radch-enko's avatar
      Refactor `GoogleCalendarProvider` and `OrganizerRepositoryImpl` for improved...
      · aaaf1517
      Radch-enko создал
      Refactor `GoogleCalendarProvider` and `OrganizerRepositoryImpl` for improved clarity and error handling
      
      - Updated `convertToGoogleEvent` to include optional workspace attendee logic.
      - Simplified `convertToBooking` by removing unused `calendarId` parameter and adding workspace ID handling.
      - Improved `deleteEventByBooking` and event updates to use `defaultCalendar` ID consistently.
      - Fixed user filtering in `OrganizerRepositoryImpl` to correctly map users with `employer` tag.
      - Enhanced error logging and fallback mechanisms for event handling functions.
      aaaf1517
    • Radch-enko's avatar
      Consolidate migration files, enhance configuration, and optimize dependency management.
      · 0df03829
      Radch-enko создал
      - Combined database migration files into a single `V1__create_tables.sql` for clarity and maintainability.
      - Updated application configuration to include Flyway migration settings, improved logging, and refined default values.
      - Fixed `GoogleCalendarConfig` scopes and improved error handling in `GoogleCalendarProvider`.
      - Adjusted build.gradle.kts to enforce consistent dependency versions and exclude conflicting modules.
      - Simplified `docker-compose.yml` with dynamic environment variables and adjusted health checks.
      - Added network security configuration for Android client and updated manifest for secure traffic handling.
      - Refactored `WorkspaceEntity` to remove redundant unique constraint on the `tag` field.
      0df03829
    • Radch-enko's avatar
    • Radch-enko's avatar
      Cleanup: remove unused application configuration files and streamline Docker setup
      · 94a5e529
      Radch-enko создал
      - Deleted `application-dev.yml`, `application-staging.yml`, and `application-live.yml` as they are no longer in use.
      - Updated `Dockerfile` to create a multi-stage build, improving caching and reducing image size.
      - Simplified `docker-compose.yml` by removing redundant `SPRING_PROFILES_ACTIVE` environment variable.
      94a5e529
    • Stanislav Radchenko's avatar
      Merge pull request #5 from Radch-enko/feature/EO-850
      · 45d2b410
      Stanislav Radchenko создал
      [~] update icons and app name
      45d2b410
  4. 10.07.2025 1 коммит
  5. 07.07.2025 2 коммита
    • Stanislav Radchenko's avatar
      Merge pull request #4 from Radch-enko/client-tablet-refactoring
      · 352e8287
      Stanislav Radchenko создал
      Tablet App
      352e8287
    • Radch-enko's avatar
      Refactor: remove `EventManagerRepository` and associated logic
      · 51959edd
      Radch-enko создал
      - Deleted `DefaultEventRepositoryMediator`, `EventManagerRepositoryImpl`, and related interfaces (`EventManagerRepository`, `EventRepositoryMediator`) for improved modularity.
      - Replaced redundant repository implementations with `LocalBookingRepositoryImpl` and `BookingRepositoryImpl`.
      - Introduced specialized use cases (`GetRoomsInfoUseCase`, `GetCurrentRoomInfosUseCase`) to simplify domain logic and reduce coupling.
      - Updated existing components (`FreeUpRoomUseCase`, etc.) to utilize the new repository and use case structure.
      - Removed outdated Xcode scheme configurations to streamline the project build settings.
      51959edd
  6. 06.07.2025 5 коммитов
    • Radch-enko's avatar
      Refactor: replace `EventManager` with `DefaultEventRepositoryMediator` for...
      · 099cd6f7
      Radch-enko создал
      Refactor: replace `EventManager` with `DefaultEventRepositoryMediator` for improved coordination logic
      
      - Removed `EventManager` and introduced `DefaultEventRepositoryMediator` to streamline network and local repository communication.
      - Updated `DataModule` to provide `DefaultEventRepositoryMediator` and a new `EventManagerRepositoryImpl`.
      - Enhanced error handling for repository operations and unified event creation, update, and deletion logic.
      - Added validation to `EventInfo` to ensure `startTime` is before `finishTime`.
      - Simplified `UpdateUseCase` with a consistent `DEFAULT_DELAY` for better readability and maintainability.
      - Refined time rounding logic in `NetworkEventRepository` for accurate event scheduling updates.
      - Updated `iosApp.xcscheme` to include new configurations.
      099cd6f7
    • Radch-enko's avatar
      Refactor: remove modal navigation logic and optimize dependencies
      · dfc32ebd
      Radch-enko создал
      - Removed `modalWindowSlot` navigation in `RootComponent`, `MainComponent`, and related components to simplify logic and improve maintainability.
      - Replaced modal navigation calls with direct method invocations (`openBookingDialog`, `onFastBooking`, and `onOpenFreeRoomModal`) for better modularity.
      - Deleted unused dependencies (`BookingEditorComponent`, `FastBookingComponent`, `SlotUseCase`, etc.) and redundant imports.
      - Updated `build.gradle.kts` files to streamline dependency management for better project organization.
      - Simplified `iosApp.xcscheme` by removing outdated configurations.
      dfc32ebd
    • Radch-enko's avatar
      Enhance error handling and loading states in FastBooking and FreeSelectRoom features
      · 874784e8
      Radch-enko создал
      - Added `isError` state tracking in `State` to improve error identification and handling.
      - Introduced `ErrorView` and updated `FastBooking` composables to display error UI when necessary.
      - Refactored `LoadingView` for better clarity and modularity.
      - Improved `FastBookingComponent` logic for room availability checks, error handling, and state management.
      - Updated `FreeSelectRoomComponent` to use `FreeUpRoomUseCase` directly and removed redundant event handling logic.
      - Added error string resource for better localization handling.
      874784e8
    • Radch-enko's avatar
      Improve date reset logic and fix room index selection
      · d0591192
      Radch-enko создал
      - Added a timer to reset the selected date every minute in `MainComponent`.
      - Fixed `RoomsResult` logic to use the correct room index from the current state.
      d0591192
    • Radch-enko's avatar
      Refactor: optimize date handling, streamline room update logic, and improve Xcode configuration
      · e6835c07
      Radch-enko создал
      - Replaced `first` with `minByOrNull` for safer event list start time handling.
      - Refactored `UpdateUseCase` to remove redundant `Clock` and `TimeZone` usage, simplifying time management logic.
      - Consolidated redundant code and improved readability in `MainComponent` by modularizing state updates and event listeners.
      - Updated `currentInstant` logic in `LocalDateTimeUtils` for better consistency with `LocalDateTime` utilities.
      - Removed fixed button width in `BusyRoomInfoComponent` for more flexible UI design.
      - Simplified `iosApp.xcscheme` by removing unused configurations and streamlining build settings.
      e6835c07
  7. 05.07.2025 1 коммит
    • Radch-enko's avatar
      Enhance error handling and improve booking editor state management
      · bf6326f5
      Radch-enko создал
      - Added error state tracking (`isLoadUpdate`, `isErrorUpdate`, `isLoadCreate`, `isErrorCreate`) to the booking editor.
      - Refactored update and create event logic to handle errors and loading states properly.
      - Updated UI components to display loader or error messages for create and update operations.
      - Improved organizer selection logic with fallback handling for non-matching input.
      - Adjusted date and duration validation to ensure proper time range for events.
      bf6326f5
  8. 04.07.2025 4 коммита
    • Radch-enko's avatar
      Refactor: improve modularization, date handling, and iOS platform integration
      · 111af54d
      Radch-enko создал
      - Modularized platform-specific logic by introducing iOS-specific initializers and root components.
      - Enhanced date handling consistency by standardizing `LocalDateTime` usage across components and fixing `dayOfMonth` references.
      - Exported and updated Gradle dependencies (`decompose`, `datetime`, `calf-ui`).
      - Improved iOS app structure by integrating `RootHolder`, `RootView`, and `AppDelegate`.
      - Updated Xcode scheme settings and project files for enhanced build and test configurations.
      111af54d
    • Radch-enko's avatar
      Update .gitignore to exclude old project files and local configurations
      · 6c206f69
      Radch-enko создал
      - Added `/oldProject/`, `/clients/tablet/composeApp/google-services.json`, and `/local.properties` to ignored files for better repository cleanliness.
      6c206f69
    • Radch-enko's avatar
      Refactor: unify date handling across components and optimize slot update logic
      · 44c800c0
      Radch-enko создал
      - Replaced `LocalDate` with `LocalDateTime` in `SlotComponent`, `MainComponent`, and related intents for better consistency.
      - Improved `updateSlots` logic by migrating to cleaner coroutine handling and state updates.
      - Fixed `DatePickerView` and `DateTimePickerComponent` to standardize month handling and date manipulation.
      - Updated `NetworkEventRepository` to retain hour and minute components when resetting time.
      44c800c0
    • Radch-enko's avatar
      Refactor: update workspace filtering logic and improve booking handling
      · 32fcc2b6
      Radch-enko создал
      - Renamed parameters to clarify workspace filtering by booking periods.
      - Refactored `convertToDto` logic to support optional booking period parameters.
      - Modified descriptions and annotations for workspace API endpoints.
      - Adjusted `NetworkEventRepository` to reset time components for daily events.
      - Fixed `DateTimePickerComponent` month handling for correct date updates.
      32fcc2b6
  9. 03.07.2025 10 коммитов
    • Radch-enko's avatar
      Refactor: modularize slot feature and relocate related logic
      · 70c3dcdb
      Radch-enko создал
      - Extracted `Slot` functionality into a new `slot` module with dedicated DI setup and updated dependencies.
      - Moved `GetSlotsByRoomUseCase` and `SlotUiMapper` into the `slot` module for better modular structure.
      - Updated all references of `Slot` components and mappers for consistent integration across modules.
      - Consolidated and re-organized slot-related UI strings into the `core/ui` module for reuse.
      - Adjusted Gradle files and dependency configurations to support the new `slot` module.
      70c3dcdb
    • Radch-enko's avatar
      Refactor: modularize fast booking feature and relocate DeleteBookingUseCase
      · 29c75771
      Radch-enko создал
      - Moved `DeleteBookingUseCase` to `core/domain` module for better reuse across features.
      - Extracted `FastEvent` logic into a new `fastBooking` module with dedicated DI setup and updated dependencies.
      - Renamed `FastEventComponent` to `FastBookingComponent` for improved clarity and consistency.
      - Updated references and file paths for `FastEvent` to align with the new `fastBooking` module.
      - Adjusted Gradle and DI configurations to support the modularized `fastBooking` feature.
      29c75771
    • Radch-enko's avatar
      Refactor: modularize booking editor and domain logic
      · 4f99cc15
      Radch-enko создал
      - Moved `CreateBookingUseCase` and `UpdateBookingUseCase` to the `core/domain` module for better cross-module reusability.
      - Extracted `BookingEditor` logic into a new `bookingEditor` module with di setup and updated dependencies.
      - Replaced `UpdateEventComponent` with `BookingEditorComponent` across the main module to streamline event management.
      - Consolidated shared UI components into the `core/ui` module to avoid duplication.
      - Updated Gradle files and DI modules for consistent dependency management.
      - Improved naming and organization of string resources for booking-related views.
      4f99cc15
    • Radch-enko's avatar
      Enhance slot rendering and update event logic
      · 040a3209
      Radch-enko создал
      - Added key-based item rendering in `RoomInfoLeftPanel` for efficient slot updates.
      - Introduced `animateItem` modifier for smoother slot animations.
      - Refactored `updateEvent` logic to utilize a dedicated `IO` coroutine scope for better thread handling.
      040a3209
    • Radch-enko's avatar
      Refactor: replace `Instant` with `LocalDateTime` for improved date management...
      · afbce0a0
      Radch-enko создал
      Refactor: replace `Instant` with `LocalDateTime` for improved date management and interface consistency
      
      - Updated all references of `Instant` to `LocalDateTime` in the `Main` module and associated components.
      - Removed unused intents (`OnUpdate`, `OnResetSelectDate`) in `MainComponent`.
      - Enhanced date handling logic with new `currentDate` state and validation to prevent past date selections.
      - Refactored `DateTimeView` structure with reusable composable functions for better readability.
      - Improved date transition animations and formatting in `DateTimeView`.
      afbce0a0
    • Radch-enko's avatar
      Fix: enable button state check on organizer selection in `UpdateEventComponent`
      · b6f63f82
      Radch-enko создал
      - Added `checkEnableButton` call to ensure button state updates dynamically after organizer selection.
      b6f63f82
    • Radch-enko's avatar
      Refactor: improve null safety, optimize dropdown handling, and enhance UI alignment
      · c297b7ba
      Radch-enko создал
      - Added null safety checks in `MainComponent` to prevent potential crashes during room selection.
      - Replaced `ExposedDropdownMenuBox` with a custom `DropdownMenu` implementation for streamlined organizer selection.
      - Adjusted dropdown menu width dynamically based on `TextField` size.
      - Fixed UI inconsistencies in `EventDurationView` by using `stringResource` for all string references.
      - Updated `UpdateEventComponent` to expand dropdown automatically when filtering organizers.
      c297b7ba
    • Radch-enko's avatar
      Refactor: improve null safety, optimize dropdown handling, and enhance UI alignment
      · c05e62ed
      Radch-enko создал
      - Added null safety checks in `MainComponent` to prevent potential crashes during room selection.
      - Replaced `ExposedDropdownMenuBox` with a custom `DropdownMenu` implementation for streamlined organizer selection.
      - Adjusted dropdown menu width dynamically based on `TextField` size.
      - Fixed UI inconsistencies in `EventDurationView` by using `stringResource` for all string references.
      - Updated `UpdateEventComponent` to expand dropdown automatically when filtering organizers.
      c05e62ed
    • Radch-enko's avatar
      Refactor: enhance HTTP request handling, update slot management logic, and improve DI consistency
      · fe570ceb
      Radch-enko создал
      - Updated `HttpRequestUtil`: Added fallback for empty response bodies and support for `SuccessResponse` in HTTP status codes `201` and `204`.
      - Improved `SlotComponent`: Refactored slot update logic into a reusable `updateSlots` function.
      - Modified DI setup: Changed `Collector` to `single` scope and passed it to API implementations (`BookingApiImpl`, `UserApiImpl`, `WorkspaceApiImpl`).
      - Cleaned up redundant initialization in `MainComponent` and `UpdateEventComponent` with improved coroutine scope usage and updated state handling.
      fe570ceb
    • Radch-enko's avatar
      Feature: integrate Firebase Messaging and add kiosk mode functionality
      · de09e41b
      Radch-enko создал
      - Implemented `ServerMessagingService` for handling Firebase push notifications and integrated the `firebaseTopicsModule` for topic subscriptions.
      - Added kiosk mode support in `AppActivity` with device admin and lock task mode setup.
      - Updated `AndroidManifest.xml` with required service and permissions declarations.
      - Enabled Firebase dependencies in Gradle (`firebase-messaging-ktx`, `google-services`) and added signing configurations for debug and release builds.
      - Updated `App` setup to subscribe to Firebase topics dynamically.
      de09e41b