Skip to content

abbshr/Git-Contacts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Git Contacts

什么是 Git Contacts

GitContacts是采用Git来存储、共享通讯录的新的方式。适用于单一群体间(家庭、工作场合、同学圈)成员共享通讯录。

解决了什么问题

单一群体间共享通讯录,又难以做到权限控制。一般来说,用户对自己的名片拥有完全的权限,对他人的名片有读权限。根据KISS原则,只要每个人做到维护好自己的名片,那么整个群体间的通讯录就能良好运作。当一个人更改了自己的联系方式后,无需通知其他人。

目前实验室采用的名片服务器没有写权限的控制,用户误操作就容易修改他人名片或者加入他人名片。误操作发生后没有回滚的机制。

如何解决

Git Contacts在Git仓库的基础上进行封装,Git仓库仅做通讯录数据存储使用。用户刷新通讯录操作对应Git中的Pull。而对通讯录的修改操作(Merge)操作放入一个队列,如果用户操作的是自己的名片,则自动允许Merge,否则需要经过群体的管理员批准。 这些操作都需要在Git操作基础上进行RESTful的封装,以适合所有的客户端(iOS、Android、Web)。

用户的误操作可以通过管理员进行回滚(Revert)到之前的版本完成。

系统设计

Git-Contacts的系统由三部分组成,每部分负责任务不同,各部分独立为一个开发分支

  • Gitdb
  • Git-Contacts
  • Web-Service

Gitdb 负责底层的数据存储,比如 Card 和 Contacts 的底层读写,封装了Git的常用操作。

Git-Contacts 负责上层的数据存储,比如用户管理、读写权限管理、Request 管理等操作。

Web-Service 负责 RESTful API 部分,将 payload 传至 Git-Contacts

To-do

完成CardDAVRFC6352中服务器端所有接口。

About

A Contacts Backend base on Git

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published