{"id":154,"date":"2021-12-16T16:46:11","date_gmt":"2021-12-16T16:46:11","guid":{"rendered":"https:\/\/bruceng.com\/?p=154"},"modified":"2021-12-20T07:19:33","modified_gmt":"2021-12-20T07:19:33","slug":"dev-log-finance-and-expense-management-application","status":"publish","type":"post","link":"https:\/\/bruceng.com\/?p=154","title":{"rendered":"Dev log: Finance and expense management application"},"content":{"rendered":"\n<p>After thinking hard and long about what kind of side project to do next and couldn&#8217;t think of a &#8220;good&#8221; and &#8220;unique&#8221; app idea, I decided to make my own expense management app. The goal is just to add to my portfolio of applications and learn new frameworks and tools as I develop it.<\/p>\n\n\n\n<p>I have been using Expense Manager on Android for years, however the problem with using other people&#8217;s app is that there is a limit to how much I can customize it to suit my use the best. The way I use it, I only log my expenses every day and export it as an Excel file to review once a month.<\/p>\n\n\n\n<p>It does not have an option to show the budgets I set every day\/month right on its home page so that I can stop myself from overspending or being able to spend without feeling guilty whenever I log a new entry. In order to view my budgets, I have to tap some links. I would prefer it to remind me of how much I have spent and how much I can spend upfront when I open the app.<\/p>\n\n\n\n<p>So I have been developing this application. The purpose is to learn all the following technologies in one go<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Golang with Gin framework for backend, a RESTful Web API service.<\/li><li>MongoDB for data storage.<\/li><li>ReactNative for frontend.<\/li><li>Possibly scalable system using containers and kubernetes.<\/li><\/ul>\n\n\n\n<p>The application will have the following features<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Offline first design with auto sync with server. AKA Google Keep. Conflicts will be resolved automatically.<\/li><li>Scalable storage using MongoDB.<\/li><li>Charts and summaries, budgets, etc. Simple and targeted to financial minimalists.<\/li><li>Cross platform, support Web, Android and possibly desktop clients.<\/li><\/ul>\n\n\n\n<p>Development progress is slow because I&#8217;m learning all these technologies as I work on it.<\/p>\n\n\n\n<p>At the moment, the UI looks quite bad, I follow the philosophy &#8220;Functionalities first, polish later&#8221;. Some screenshots are below.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"388\" height=\"381\" src=\"https:\/\/bruceng.com\/wp-content\/uploads\/2021\/12\/image.png\" alt=\"\" class=\"wp-image-155\" srcset=\"https:\/\/bruceng.com\/wp-content\/uploads\/2021\/12\/image.png 388w, https:\/\/bruceng.com\/wp-content\/uploads\/2021\/12\/image-300x295.png 300w\" sizes=\"auto, (max-width: 388px) 100vw, 388px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"405\" height=\"278\" src=\"https:\/\/bruceng.com\/wp-content\/uploads\/2021\/12\/image-1.png\" alt=\"\" class=\"wp-image-156\" srcset=\"https:\/\/bruceng.com\/wp-content\/uploads\/2021\/12\/image-1.png 405w, https:\/\/bruceng.com\/wp-content\/uploads\/2021\/12\/image-1-300x206.png 300w\" sizes=\"auto, (max-width: 405px) 100vw, 405px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>After thinking hard and long about what kind of side project to do next and couldn&#8217;t think of a &#8220;good&#8221; and &#8220;unique&#8221; app idea, I decided to make my own expense management app. The goal is just to add to my portfolio of applications and learn new frameworks and tools as I develop it. I &hellip; <a href=\"https:\/\/bruceng.com\/?p=154\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Dev log: Finance and expense management application<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[4],"class_list":["post-154","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-finance-2021"],"_links":{"self":[{"href":"https:\/\/bruceng.com\/index.php?rest_route=\/wp\/v2\/posts\/154","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bruceng.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bruceng.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bruceng.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bruceng.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=154"}],"version-history":[{"count":4,"href":"https:\/\/bruceng.com\/index.php?rest_route=\/wp\/v2\/posts\/154\/revisions"}],"predecessor-version":[{"id":161,"href":"https:\/\/bruceng.com\/index.php?rest_route=\/wp\/v2\/posts\/154\/revisions\/161"}],"wp:attachment":[{"href":"https:\/\/bruceng.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=154"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bruceng.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=154"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bruceng.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=154"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}