{"id":180,"date":"2023-03-26T23:35:37","date_gmt":"2023-03-26T16:35:37","guid":{"rendered":"https:\/\/bruceng.com\/?p=180"},"modified":"2023-04-09T17:24:55","modified_gmt":"2023-04-09T10:24:55","slug":"dev-log-revisiting-meal-planner","status":"publish","type":"post","link":"https:\/\/bruceng.com\/?p=180","title":{"rendered":"Dev log [DotNetCookingPlan]: Revisiting meal planner"},"content":{"rendered":"\n<p>Recently I have been trying to study new technologies after changing to a new job and was quite tired. I tried to study &#8220;properly&#8221; by taking notes while reading books or watching course videos. It was not quite fun and not really the approach I used when I was a kid exploring the world of computer programming.<\/p>\n\n\n\n<p>I decided to throw away my to do list, kanban board, etc and just jump into building something that I would actually use. I remember fondly of experimenting and using programming knowledge to build something either &#8220;cool&#8221; or useful, and it was very effective in learning new programming languages and frameworks.<\/p>\n\n\n\n<p>I remember it was really boring attending lectures at University, and studying was not very effective. I guess the human brain needs rewards and feeling little successes to carry on doing or studying anything. <\/p>\n\n\n\n<p>It&#8217;s the same story with learning to play an instrument, it&#8217;s very boring to follow some music sheet that the instructor gives you, but if you try to play some music that you actually like, it&#8217;s much easier to motivate yourself to continue practicing and learning.<\/p>\n\n\n\n<p>I decided to rewrite the Meal planner application, this time as a full ASP.NET Core application using Razor pages. I took notes and studied ASP.NET Core before but the knowledge went away after long time.<\/p>\n\n\n\n<p>The simple application will be improved incrementally and eventually be deployed inside a Kubernetes &#8220;cluster&#8221; hosted in a small personal server. Making this small application will allow me to<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Have some practice in using Razor pages.<\/li>\n\n\n\n<li>Revisit using Entity Framework Core with Code first migration, using MySQL database engine.<\/li>\n\n\n\n<li>Containerize the application in a few containers using Docker and docker-compose, with volume mounts.<\/li>\n\n\n\n<li>Repackage and deploy the application to a Kubernetes cluster, perhaps first by creating K8s manifests, and then by writing Helm charts.<\/li>\n\n\n\n<li>Maybe eventually setup some CI\/CD.<\/li>\n<\/ul>\n\n\n\n<p>And the bonus is that I will use this project to plan my weekly cooking and grocery shopping, which is useful.<\/p>\n\n\n\n<p>After this is done, I may improve on this project by converting it to ASP.NET Core web project with React.js. To revisit my React programming knowledge. However, to be more focused, I may not invest too much into frontend programming anymore.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recently I have been trying to study new technologies after changing to a new job and was quite tired. I tried to study &#8220;properly&#8221; by taking notes while reading books or watching course videos. It was not quite fun and not really the approach I used when I was a kid exploring the world of &hellip; <a href=\"https:\/\/bruceng.com\/?p=180\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Dev log [DotNetCookingPlan]: Revisiting meal planner<\/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":[5],"tags":[6],"class_list":["post-180","post","type-post","status-publish","format-standard","hentry","category-devlog","tag-dotnetcookingplan"],"_links":{"self":[{"href":"https:\/\/bruceng.com\/index.php?rest_route=\/wp\/v2\/posts\/180","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=180"}],"version-history":[{"count":4,"href":"https:\/\/bruceng.com\/index.php?rest_route=\/wp\/v2\/posts\/180\/revisions"}],"predecessor-version":[{"id":188,"href":"https:\/\/bruceng.com\/index.php?rest_route=\/wp\/v2\/posts\/180\/revisions\/188"}],"wp:attachment":[{"href":"https:\/\/bruceng.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bruceng.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bruceng.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}