Implement Offline Tiles Support
- Dominant language
- TypeScript
- Stars
- 38
- Forks
- 22
- PR merge metrics
- No merged PRs in 30d
Description
#### Description
Implement support for offline map tiles by perhaps storing them in the browser's IndexedDB when received from Central, enabling map functionality without an internet connection.
---
#### Checklist
- **Does it need UI/UX design?**
- [ ] Yes. Describe the UI/UX requirements or attach a Figma link in the "Design" section.
- [x] No
- **Does it need API design?**
- [x] Yes. Specify the endpoints, methods, or data structures needed.
- API for Central to send tiles to Web Forms and for tile storage/retrieval in IndexedDB.
- [ ] No
- **Does it need design around state flow?**
- [ ] Yes. Outline the state flow requirements.
- [x] No
- **Does it need a test plan?**
- [x] Yes. Add the test plan as a comment in this task or attach the document.
- Test plan to verify tile storage, retrieval, and rendering in offline mode.
- [x] No
---
#### User Stories
- **As a** map user,
**I want** to view map tiles when offline,
**so that** I can use the map in areas with no internet connectivity.
---
#### Design
- **Figma**: N/A
- **Design Docs**: [Insert URL for offline tile storage and state flow]
---
#### Dependencies
- Requires Central to provide tile data for Web Forms.
- Blocked by service worker implementation for offline support
---
#### Additional Notes
- Consider storage limits in IndexedDB for large tile sets.
- Evaluate tile compression to optimize storage.
---
#### Related Issues
- https://github.com/getodk/web-forms/issues/305
Contributor guide
No contributing guide indexed for this repository
Research direction
No files or tests are named. Start by reviewing related issue 305 and the service worker implementation, then clarify the Central-to-Web Forms tile API and IndexedDB storage flow. Done means tiles can be stored, retrieved, rendered, and tested while offline, with storage limits and compression addressed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100