nextcloud / nextcloud/contacts

Create virtual address books from existing one by category

Open
#3,533 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

0. Needs triage enhancement
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.

I have following problem / use case:
I don't want Whatsapp to check all my phone numbers against Whatsapp servers. Therefore I've created a separate address book for Whatsapp contacts only. This addressbook always gets out of sync with my main address book.

In business context I could create a virtual address book for each client but also have all contacts together in a main address book. I would have more control over address book shares: I only share contacts with persons that need the contact data.

Describe the solution you'd like

The user can create a virtual address book based on a specific category of an existing address book. Lets say for example:

  • Category: "Foo"
  • Existing address book: "Main"
  • Virtual address book: "Virtual-Foo"

Only contacts with the category "Foo" appear in the "Virtual-Foo". When a new contact is pushed to "Virtual-Foo" it automatically gets the category "Foo". When accessing the a retrieving contact over the virtual address book, the category "Foo" is removed. This makes the process transparent to the client which uses "Virtual-Foo" (Imagine the user removes the category "Foo" manually on his client device this could cause problems which we can avoid here).

Main address book:

Contact Category Phone Number
Jane Family, Foo 0001
Joe Family 0002
Jenny Foo 0003
Boss Work 0004

"Virtual-Foo" address book:

Contact Category Phone Number
Jane Family 0001
Jenny - 0003
Describe alternatives you've considered

An alternative I see is to modify the client but this needs to be done for many platforms. A central solution would be better.

Additional context

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no files, tests, or entry points; start by locating the Contacts address-book and CardDAV handling, then trace how categories are stored and exposed. Done means a virtual address book filters by one category, synchronizes new contacts back to the source category, and hides that category when contacts are retrieved.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
api, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.