Skip to content

sunnyxx/iMeal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

iMeal需求文档 v1.0

为解决啥?

- 中午和同事午饭AA结账时找现金的混乱。
- 统计下自己每天工作餐的花费和餐馆。
- 每天一堆人纠结到底吃哪家。
- 同事间借和还一些小钱。

这货怎么玩?

由一个人做账房,维护组内各成员的余额表,组内其他人向他充值,当需要结账时,由账房统一出钱,再根据实际情况(全部AA或者各自算各自的)将余额表里金额扣除。

功能点

User(用户)

无强账号登陆模式,一个设备唯一对应一个用户,无密码。
在第一次用户操作前,向用户索要一个昵称,自动生成一个user,用keychain的方式存储。

Team(小组)

用户必须在某个小组内才能使用后续功能,可以选择创建或加入一个小组,一个用户可以同时在多个小组内。
- 创建小组:用户提供一个组名后便可创建一个小组(组名无需全网唯一),小组创建者为小组的管理员。
- 加入小组:
	1. 若其他组员安装了app:小组管理员可通过让其他用户**扫二维码**的方式加入这个小组。
	2. 若其他组员没安装app:小组管理员可手动添加组员,需输入组员的昵称(但这个组员由于没装app享受不到其他功能)
- 余额(Balance)列表:一个用户在一个小组内有一个储蓄账户(类比一个人在一个银行有一个储蓄账户),每个用户都能看到小组内所有人的余额列表,余额保存小数点后一位。

Bill(账单)

改变组员余额只能通过**提交账单**的方式,每个组员都可以发起,有下面三种账单:
- 充值账单(Deposit)
	1. 谁冲钱(默认是自己)
	2. 钱给了谁保管(默认管理员)
	3. How much
	4. 备注(可选)
- 平摊账单(AA)
	1. 选择参与组员
	2. How much
	3. Where
	4. 谁付的钱(默认管理员)
- 独立账单
	1. 选择参与组员
	2. 为每个组员分别设置费用
	3. Where
	4. 谁付的钱(默认管理员)
注:在哪儿吃的地点要做记录,下次可以直接选

Statistics(统计)

- 小组总花费
- 用户总花费
- 饭馆频率统计
- 充值历史记录(时间倒序)
- 吃饭账单历史记录(平摊和独立都包括,时间倒序)

Where to eat

- 手动编辑备选饭馆
- 吃饭账单中出现的饭馆自动加入备选饭馆
- 摇一摇随机选一家

实现要点

账户系统

无登陆状态,由于无密码,生成后的uid要储存在keychain中,保证重装app后用户信息还在。

算账要点

用户发起一次记账需提供以下信息	
- 充值:若小组内A向自己账户充值了¥100,钱给了B ,则A的余额+100,B的余额-100
- 付钱:若小组内A和B一起AA一顿¥200的饭,由B出钱,则A的余额-100,B的余额+100
【重要】在任意时刻,组内所有人的余额值加起来和为0。这个方案弱化了“账房”的作用,每个人都做“账房”

About

iMeal iMeal Meow Meow...

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages