Building a rudimentary accounting app
我正在构建一个简单的会计应用程序,用于个人理财。
用户可以跟踪购买情况、即将到期的账单、定期存款等,这非常简单。
两个问题:
1)我应该记住什么建议?显然,我将在适当的地方使用事务,但是正确的数据类型和其他注意事项是很好了解的。
2)您是否知道我可以使用任何API定期从用户的银行获取用户余额?也就是说,一个API可以使查询他们的帐户变得简单,而不管他们是在大通银行、美洲银行还是其他银行?
非常感谢,
迈克尔
刚刚完成了一些与学校相关的非盈利的定制在线会计软件的1.0版,我有一些建议:)
- 使用标准的复式记账法(借方和贷方)作为财务引擎的基础。当涉及到不仅存储事务中的数据,而且生成报告时,您会发现这将很好地为您服务。资产=负债+权益是一种追踪谁拥有什么的可靠方法。
- 用十进制表示钱。
- 使用事务。
- 保持界面简单如可能的。
- 你需要有一个方法来允许用户核对银行有自己记录的记录。提取银行数据将有助于此但你需要提供用户与方法进行比较。你可以用银行对账单过程。
- 银行总是被认为是正确的。如果银行和用户记录…这个故障几乎总是发生在用户身上记录。
- 确保提供某种用户的备份设施
- 保护用户数据
- 确保你完全理解你正在自动化的过程。不要做假设。由一位专攻个人理财的会计师来管理你的想法。做这个检查会有很大帮助。
- 准备写大量的代码。会计软件已经存在多年了,一个典型的会计软件包的"标准功能"列表已经增加,市场上有相当多的参与者。如果您计划销售此产品,您需要提供这些标准功能,然后找到一些方法将其与现有的附加功能区分开来。
- 测试测试,再次测试。你正在保存人们的记录个人金融交易(他们的钱)。不接受错误轻轻地。
当我完成一个以会计为重点的POS系统时,我会添加一些提示,这意味着需要跟踪采购、费用、发票、账户、信用卡、现金、车辆等。这些概念最终将应用于个人系统。好的。
最好的建议是看一下你的文书工作,并试着围绕着你需要做什么来把你的物理文件翻译到计算机上形成你的数据库。结合这一点和会计教科书的前几章,这本教科书讨论会计科目表、会计科目表和日记账。好的。
我用过的书:乔治·默里的《指尖算账》苏珊娜·卡普兰(Suzanne Caplan)对企业的财务和会计安斯沃思会计概论奥朗德的会计、信息技术和业务解决方案好的。
一旦将源文档输入到系统中,您就可以运行查询来获得答案。这样做消除了"总帐"和"试算平衡"的概念,因为您只需更正或添加到源文档中即可。因此,"总帐"变成了一个计算。那对我来说太令人困惑了。同样,所有源文档都将被放入"日记账"中,这可能是您的数据库表。我使用普通日记账、采购日记账、付款或现金支出日记账、销售日记账和现金收据日记账。请记住,术语"现金"是指现金、信用卡、支票、借记卡。好的。
例如,我有一本"普通日记",基本上就是你需要的。在这本日记里,我记录着"原始收据"。收据可能是一张发票,就像时代华纳有线电视,它有一个帐号。在这种情况下,我为时代华纳创建了一个"账户"。时代华纳的账户将链接到"账户表",该表将把支出类型指定为"互联网"。然后输入发票的日期、金额等。发票链接到时代华纳的帐户。发票一经输入,即未付款。然后您需要添加付款。当然,你可以按照你应该的方式全额支付账单,但是你可能需要两次支付,或者分开支付,或者不全额支付。这将引导您找到"付款日记帐"和"发票到付款查找表",该表需要具有应用于发票的金额。这个申请金额很重要,因为你可能有4张未付的时代华纳账单,而你只是在恐慌中寄了200多美元来恢复你的账户。然后,此付款需要在发票中进行拆分,并将金额应用于每个发票。当然,付款账户会链接回你的账户。好的。
对于输入收据的情况,不使用帐户。假设你在Embrasse Moi买了件内衣,然后付现金。您的系统将采取供应商,embrasse moi,日期,成本,我增加了一个'使用税'的情况下,你通过互联网购买,没有缴纳税款,但你仍然欠它,金额,和'科目表',这基本上是什么类别的费用是你的。所有这些都被刊登在《普通杂志》上。在同一张表格上,您将获得付款方式。我做了一个简单的费用+确切的支付形式,因为这是非常常见的。如果付款被拆分,则需要使用一个表单输入收据,然后创建多个付款链接到该收据和其他表单。好的。
因此,最终,这个简单的会计应用程序的数据库将有以下表格:账户(包括CC/借记卡等账户类型的账户信息、支票、现金、企业采购的库存账户、公用事业等费用账户、默认的科目表)会计科目表(基本上是一个描述如何分类费用和将流入您的营业报表的科目的列表,我把我的放在这里供您查看:http://embrasse-moi.com/exampledata/pos_chart_of_accounts.csv)我有一张开户余额表,因为你必须从某个地方开始账户类型-指信用卡、借记卡等。请记住基于账户的会计等式基本上是切换的。支票账户的借方是"坏"的,因为你把钱给了别人,贷方是"好"的,因为你收了钱,而信用卡的借方是"好"的,因为你减少了债务,贷方是"坏"的,因为你增加了债务。科目类型表,即"资产、负债、长期资产"等。这可以作为枚举类型包含在科目购物车中。然后是一般日志,如前所述,它包含足够的信息来描述您的文档。是赊账吗?日期、金额、类型(收据或发票)到期日期,我保留一个"已付款"标志以方便查询。然后在"普通日记账"表和付款表之间进行查找那你就有付款台了。好的。
一旦你掌握了所有这些信息,你将几乎永远不会使用你的银行作为来源,因为它们并不总是正确的,至少我的银行会犯错。因此,这种类型的结构将使您掌握最新的信息,在月末,该系统将生成一个看起来与您的帐户对账单相同的对账单。这就是目标。好的。好啊。
关于从银行获取信息的API:如果可能的话,这并不简单。你可以想象你的银行会花多长时间来确保所有的东西都安全。我认为不能自动连接。通常有一种方法可以通过手动下载文件来下载数据,在你登录网上银行之后(如果你有)。希望它是csv格式或类似的格式;-)
[编辑]
显然我错了,大银行的确允许直接联系。我想那时你得咨询你的银行技术支持。
[/编辑]
至于要使用的数据类型,我至少建议货币值使用小数,而不是双精度/浮点型。看看这个问题线索。
你看过微软吗?办公室会计快件?