nextcloud / nextcloud/contacts
Support JSContact (exportation and importation).
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 642
- Forks
- 220
- Avg merge
- 14h 39m
- Merged PRs (30d)
- 51
Description
Is your feature request related to a problem? Please describe.
vCard (IETF RFC 6350)'s plain-text structure is decades old. This is demonstrated in how it lacks native support for modern contact attributes (examples include social media handles), without awkward hacks, its lines are length-limited, and its syntax is not reasily readable in plain-text form.
Describe the solution you'd like
Instead of nesting endless arrays, JSContact (IETF RFC 9553) utilises standard key-value maps, thereby making it significantly easier to read and update via API.
Describe alternatives you've considered
Because jCard (IETF RFC 7095) is a direct translation of the vCard data model into a JSON structure, the underlying semantics are exactly the same as vCard. Although this allows developers to pass contacts around in JSON (the modern standard format for APIs) without changing their backend vCard models, because it mirrors vCard's data model, it uses nested arrays rather than logical objects, making it clunky to work with, inside modern object-oriented programming or validation frameworks.
Additional context
This, ideally, replaces issues/3956, which requests jCard support.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading IETF RFC 9553 and the existing vCard and jCard handling referenced in this issue, then identify the repository entry points for contact import and export. The issue names no files or tests, so the work is complete only when both JSContact import and export behavior are defined and covered consistently with the app’s existing contact model.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- api
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 38/100