svub / lets-stay-in-touch Goto Github PK
View Code? Open in Web Editor NEWA decentralized, social address book. You're always in control what you share with whom.
License: MIT License
A decentralized, social address book. You're always in control what you share with whom.
License: MIT License
Add possibility for user to add additional info to a contact that will stay besides syncing updates from contact.
Improve UX where possible.
The idea is to update the front-end code and use the modern syntax wherever <ion-inputs>
are being used.
Details here.
TL;DR Checks all remote repositories, merges the info and updates the contact store.
Remote repositories are used to publish profile changes -- could be anything from Google Drive to IPFS. The updated info is encrypted individually for each of the user's contacts that this update is intended for by using their individual pub key. This way only the intended contact can decrypt the information and in turn update their local storage with the new information for this user.
This component will handle pushing and pull updates over all configured repositories via a plugin architecture.
UI: Just a simple input box will do to enter the data that would usually be scanned from a QR code.
Add contact info to contact store
A settings page with
Setup basic Vue/Ionic app structure for hybrid app.
The app needs slots for:
For simplicity, advanced aspects such as a settings panel or a map view to visualize the location of all contacts are left out.
Simple read-only page of all contact attributes.
basic web worker that gets triggered regularly (settings).
Module for basic cryptography of the app. Create will be used when a user starts using the app to create a new pk/pub pair. Updated info from contacts can be decrypted and new updates of the user's info can be encrypted.
Module that can persist contact info. For v1 that can be locally in IndexedDB.
Info is a map of key-value pairs. There might be a set of standard keys, e.g. "email", "mobile", ...
A contact basically is a pub key and associated info - while the info could be separated into the info provided and updated by the person the contact represents and the info the added by the local owner of the address book.
User can edit/update their data and configure what data should be shared with whom.
What would be the optimal UX? Access rights per contact, per group, both?
Basic plugin's for the syncing system to exchange updates and backup the user's contact book.
The motivation for creating a web app is the ease of on-boarding. You can share a link or QR code and with a single step a new user is on-boarded. So this is a place to keep track of prerequisites and if they are met or not.
List of all contacts, with basic info such as name and maybe location. Could be grouped by location.
Place where the user can edit and update their data. No "what to share with whom" in v1
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.