getodk / getodk/web-forms

Implement Offline Tiles Support

Open
#516 0 comments 0 reactions 0 assignees View on GitHub
front-end needs tech design xforms-engine
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.