Opencontactbook - Bulk-manage large numbers of vCard contacts with built-in geolocation

Overview

Open Contact Book

Open Contact Book is a buiness-oriented, cross-platform, Python Qt application allowing to manage databases of contacts through CardDAV.

CardDAV is an open protocol for client/server access and sharing of contacts. It is based on .vcf files that are essentially text files.

It is supported by a large amount of server applications, to host your contact books on the internet and share them between devices, like Google Agenda, OwnCloud/NextCloud, or even CPanel.

It is also supported by a large amount of client applications, DAVx⁵ on Android, Blackberry OS 10, Apple iOS and Contacts, Thunderbird (through CardBook extension, and more recently natively) on Windows, Linux and Mac, Evolution on Linux, etc.

However, most CardDAV application are really limited when it comes to managing a large number of contacts, or just to merge duplicates. They also have nothing to backup changes and prevent file corruption, nor to manage geolocation. They became really slow as the number of entries increases.

Current features

Spreadsheet view

spreadsheet view

The spreadsheet view is a read/write table of all the .vcf contacts files found in the address book repository. It allows fast access for bulk-editing and exposes some of the technicality of the Vcard format for the sake of fast manual access.

TODO: the changes made to the spreadsheet are not actually saved for now. This is just a view.

Map view

map view

The map view uses Nominatim and Open Street Map databases to geolocate your contacts on a map, in a completely de-googled, privacy-compliant, way.

Where are your contacts located ? Turn your address book into knowledge to plan for efficient touring or clients meetings.

An advanced text parsing tries to find hints of the accurate location, using a spellcheck on the country names and various combinations of addresses parts until it finds a match. The geolocation data is cached on your disk and will run faster the next time.

Contact view

TODO: display a sum-up of the contact info with preview/display modes.

Filtering and sorting

TODO: fetch contacts whose tags and data match some rules.

Merging contacts and fields

TODO: merge duplicate contacts with rules, merge columns and refactor your custom Vcard field.

Reliability

TODO: include git commit and versionning built-in, to track history and revert any change in case of issues or corrupted data.

Developer friendly

Lib-ified

All the data processing can run headless, without a GUI. The GUI Qt code and the data processing are actually fully separated.

Use data-mining technologies

The database of contacts is actually a usual pandas.DataFrame. This allows fast data handling because Python only acts as a binding to lower-level data routines, while retaining all the power and flexbility of Python objects. It also enables to use the usual data-mining and maching-learning libraries.

Python terminal

TODO: access the internal pandas.DataFrame directly from a terminal widget, to apply advanced regex parsing etc.

Support

For now, only local repositories of .vcf files are supported. It is tested with Vcard 3.0 created with Thunderbird CardBook plugin. It is tested against a database of 9000 contacts.

Install

Python

Install the Python interpreter and PIP

Get the code

Dowload it here.

Dependencies

Run the script install.sh at the root of the code directory:

$ sh install.sh

Software

The code can't be installed system-wise yet, as this work is still in a very early stage.

Start it from the terminal:

$ python main.py
Owner
Aurélien PIERRE
Photographer, core-dev and resident color maths guy at @darktable-org. Do things accurately, or don't bother doing them at all
Aurélien PIERRE
Termux Pkg

PKG Install Termux All Basic Pkg. Installation : pkg update && pkg upgrade && pkg install python && pkg install python2 && pkg install git && git clon

ɴᴏʙɪᴛᴀシ︎ 1 Oct 28, 2021
Terraform module to ship CloudTrail logs stored in a S3 bucket into a Kinesis stream for further processing and real-time analysis.

AWS infrastructure to ship CloudTrail logs from S3 to Kinesis This repository contains a Terraform module to ship CloudTrail logs stored in a S3 bucke

Nexthink 8 Sep 20, 2022
A curated list of awesome Amazon Web Services (AWS) libraries, open source repos, guides, blogs, and other resources.

A curated list of awesome Amazon Web Services (AWS) libraries, open source repos, guides, blogs, and other resources. Featuring the Fiery Meter of AWSome.

Donne Martin 11.1k Jan 04, 2023
(unofficial) Googletrans: Free and Unlimited Google translate API for Python. Translates totally free of charge.

Googletrans Googletrans is a free and unlimited python library that implemented Google Translate API. This uses the Google Translate Ajax API to make

Suhun Han 3.2k Jan 04, 2023
A simple terminal UI for viewing fund P/L analysis through TEFAS

Tefas UI A simple terminal UI for viewing fund P/L analysis through TEFAS. Features (that my own bank's UI lack): Daily and weekly P/L FX comparisons

Batuhan Taskaya 4 Mar 14, 2022
My Advent of Code solutions. I also upload videos of my solves: https://www.youtube.com/channel/UCuWLIm0l4sDpEe28t41WITA

My solutions to adventofcode.com puzzles. I post videos of me solving the puzzles in real-time at https://www.youtube.com/channel/UCuWLIm0l4sDpEe28t41

195 Jan 04, 2023
Mega.nz to GDrive uploader

Mega.nz to GDrive uploader With this telegram bot you can download files from mega.nz and upload those files or telegram uploaded files to GDrive. You

30 Nov 13, 2022
A Discord token stealer app written in Python 3.

Discord Token Stealer A Discord token stealer app written in Python 3. This version of the grabber only supports Windows. Features No local caching Tr

cankat 45 Jan 03, 2023
A visualization of people a user follows on Twitter

Twitter-Map This software allows the user to create maps of Twitter accounts. Installation git clone Oliver Greenwood 12 Jul 20, 2022

Automatically load stolen cookies from ChromePass

AutoCookie - Automatically loading stolen cookies from ChromePass View Demo · Report Bug · Request Feature Table of Contents About the Project Getting

darkArp 21 Oct 11, 2022
Share your files on local network just by one click.

Share Your Folder This script helps you to share any folder anywhere on your local network. it's possible to use the script on both: Windows (Click he

Mehran Seifalinia 15 Oct 23, 2022
THERE IS AN IMPOSTER AMONG US. VOTE HIM OUT BEFORE HE [ R E D A C T E D ].

🛡️ Guardian There is an impostor among us. Can you help us find out who it is? ⚙️ Installation and Usage Make sure to install Tesseract-OCR before ru

Catus Magnus 1 Jan 06, 2022
Source Code for our bot that manages time and other functions of the server <3

Komi San wants you to study This repo contains the source code for our bot that manages time and other functions of the server 3 Features Your study

Komi San wants you to study 8 Nov 08, 2021
AWS-serverless-starter - AWS Lambda serverless stack via Serverless framework

Serverless app via AWS Lambda, ApiGateway and Serverless framework Configuration

Bəxtiyar 3 Feb 02, 2022
𝐀 𝐦𝐨𝐝𝐮𝐥𝐚𝐫 𝐓𝐞𝐥𝐞𝐠𝐫𝐚𝐦 𝐆𝐫𝐨𝐮𝐩 𝐦𝐚𝐧𝐚𝐠𝐞𝐦𝐞𝐧𝐭 𝐛𝐨𝐭 𝐰𝐢𝐭𝐡 𝐮𝐥𝐭𝐢𝐦𝐚𝐭𝐞 𝐟𝐞𝐚𝐭𝐮𝐫𝐞𝐬 !!

𝐇𝐨𝐰 𝐓𝐨 𝐃𝐞𝐩𝐥𝐨𝐲 For easiest way to deploy this Bot click on the below button 𝐌𝐚𝐝𝐞 𝐁𝐲 𝐒𝐮𝐩𝐩𝐨𝐫𝐭 𝐆𝐫𝐨𝐮𝐩 𝐒𝐨𝐮𝐫𝐜𝐞𝐬 𝐆𝐞𝐧𝐞?

Mukesh Solanki 1 Dec 10, 2021
Discord Selfbot, 90+ commands

Setting the bot up. STEP 1: copy the directory yook.club selfbot was downloaded and extracted into, open cmd and type "cd " then paste. STEP 2: python

yook 1 Dec 12, 2021
A Discord Self bot written in python

WitheredBot A Discord Self bot written in python Requirement Python = 3.9 How to Configure git clone https://github.com/a-a-a-aa/WitheredBot.git cd W

......... 0 Jan 05, 2023
You can share your Chegg account for answers using this bot with your friends without getting your account blocked/flagged

Chegg-Answer-Bot You can share your Chegg account for answers using this bot with your friends without getting your account blocked/flagged Reuirement

Ammey Saini 27 Dec 24, 2022
Python On WhatsApp - Run your python codes on whatsapp along with talking to a chatbot

Python On WhatsApp Run your python codes on whatsapp along with talking to a chatbot This is a small python project to run python on whatsapp. and i c

Prajjwal Pathak 32 Dec 30, 2022
discord bot made in discord.py

udeline discord bot made in discord.py, which's main features include: general use server moderation fun commands other cool commands dependencies dis

1 Feb 08, 2022