Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement persistence storage #1454

Open
6 tasks
minikin opened this issue Jan 2, 2025 · 0 comments
Open
6 tasks

Implement persistence storage #1454

minikin opened this issue Jan 2, 2025 · 0 comments
Assignees
Labels
dart Pull requests that update Dart code F14

Comments

@minikin
Copy link
Collaborator

minikin commented Jan 2, 2025

Summary

Implement a local storage solution in our Flutter application, following the architectural design and guidelines provided by the architecture team. The primary goal is to enable data caching and offline access (for proposals and comments only for F14 scope.) while ensuring the solution remains scalable and adaptable for future data types.

The solution must work on the following platforms: Web for F14 scope and, in the future, iOS, Android, macOS, Linux, and Windows.

Task Details

  1. Integrate a Local Storage Library

    • Please take a look at the architectural recommendations.
    • Ensure the chosen library supports all target platforms.
  2. Implement the Agreed-Upon Storage Architecture

    • Set up the necessary layers (service/repository, data sources, etc.) according to the architects’ proposed design.
    • Apply dependency injection (DI) patterns for better testability and maintainability.
  3. Caching, Synchronization, and Offline Mode

    • Add logic to store data (proposals and comments) locally and handle synchronization with the backend.
    • Implement a basic conflict-resolution approach for data updates from offline to online.
  4. Performance and Security Optimization

    • Add indexes (if needed) and optimize queries for large datasets.
    • Use encryption or secure storage if recommended by the architectural guidelines.
  5. Basic Testing

    • Cover core functionality with tests: saving, reading, and deleting data, plus offline/online transitions.
    • Ensure these tests run successfully on the Web.

Key Requirements

  • Alignment with Architectural Proposal: Follow the recommended approach and best practices provided by the architecture team, including choice of libraries, DI setup, and class structures.
  • Multi-Platform Support: The implementation must be validated on the Web for F14 scope, with consideration for iOS, Android, macOS, Linux, and Windows in the future.
  • Flexibility and Scalability: The code should be easily extensible for future data types and additional functionality.
  • Security: For sensitive data, ensure encryption and appropriate error handling based on the architectural guidance.

Acceptance Criteria

  • A functioning local storage solution is successfully integrated and tested on the Web
  • The implementation follows the architectural recommendations (layered structure, DI, etc.).
  • Local data (proposals, comments, etc.) can be stored, retrieved, and synchronized after going offline.
  • Core operations are covered by tests.
  • Security measures and potential vulnerabilities (encryption, data corruption, etc.) are addressed.
  • Basic documentation is provided for libraries used, key methods, and next steps for improvements.

Additional Notes

  • If you encounter any unanticipated constraints (e.g., a library that does not fully support one of the platforms), document the issue and suggest possible workarounds.
  • A code review and testing session will be scheduled after this implementation to verify that the solution meets all requirements.
@minikin minikin changed the title Implement persistence storage 🛠️ [TASK] : Implement persistence storage Jan 2, 2025
@minikin minikin added dart Pull requests that update Dart code F14 labels Jan 2, 2025
@minikin minikin moved this from New to 📋 Backlog in Catalyst Jan 4, 2025
@minikin minikin changed the title 🛠️ [TASK] : Implement persistence storage Implement persistence storage Jan 20, 2025
@damian-molinski damian-molinski moved this from 📋 Backlog to 🔖 Ready in Catalyst Feb 3, 2025
@damian-molinski damian-molinski self-assigned this Feb 3, 2025
@damian-molinski damian-molinski moved this from 🔖 Ready to 🏗 In progress in Catalyst Feb 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dart Pull requests that update Dart code F14
Projects
Status: 🏗 In progress
Development

No branches or pull requests

2 participants