This PR introduces significant architectural enhancements and new features to the announcement workflow within the application. Key enhancements include integration with a new API endpoint /messages, a redesigned repository/data source layer architecture, and the addition of date filters to refine announcement queries. Additionally, unnecessary state management variables, such as indices used in loops, have been streamlined or removed for cleaner, more efficient code.
This PR for issue: #1037
Description
Riverpod Integration and State Management: Streamlined state management in AnnouncementWorkflowNotifier by removing unnecessary index tracking and enhancing Riverpod utilization for reactive UI updates.
New API Integration: Integrated new /messages API endpoint for fetching announcements. This includes setup of AnnouncementRepository, AnnouncementLocalDataSource, and AnnouncementRemoteDataSource to handle data fetching and caching.
Architectural Overhaul: Implemented a clean architecture approach by separating concerns into distinct layers—repositories, data sources, and service layers have been clearly defined and utilized.
Date Filtering: Added functionality to filter announcements based on start and end dates to ensure that only current announcements are shown to the user.
Enhanced Error Handling: Improved error handling across the network and local data fetching processes to enhance app resilience and user experience during offline use or server issues.
Tests
🧪 Use case 1
💬 Description: Test the retrieval and display of announcements from the new /messages endpoint with and without network connectivity.
📷 Screenshots or GIFs (if applicable): N/A (Please attach screenshots for frontend changes if applicable)
Checklist:
[x] Coding Standards: I have reviewed my code to ensure it follows the project's coding standards.
[x] Testing: I have tested the changes and they work as expected.
[x] Merge Conflicts: I have resolved any merge conflicts with the latest main/development branch.
[x] Branch Status: The branch is up-to-date with the target branch (main/development).
📝 Summary
This PR introduces significant architectural enhancements and new features to the announcement workflow within the application. Key enhancements include integration with a new API endpoint
/messages
, a redesigned repository/data source layer architecture, and the addition of date filters to refine announcement queries. Additionally, unnecessary state management variables, such as indices used in loops, have been streamlined or removed for cleaner, more efficient code.This PR for issue: #1037
Description
AnnouncementWorkflowNotifier
by removing unnecessary index tracking and enhancing Riverpod utilization for reactive UI updates./messages
API endpoint for fetching announcements. This includes setup ofAnnouncementRepository
,AnnouncementLocalDataSource
, andAnnouncementRemoteDataSource
to handle data fetching and caching.Tests
🧪 Use case 1
💬 Description: Test the retrieval and display of announcements from the new
/messages
endpoint with and without network connectivity.📷 Screenshots or GIFs (if applicable): N/A (Please attach screenshots for frontend changes if applicable)
Checklist: