Sitemap

Expense-Tracker project

--

This is my side-project: Expense-Tracker
https://github.com/freeanser/expense-tracker

Why did I choose this project? 我為何會選擇這個專案?

I am a student studying abroad, so I need to track and manage all my expenses and budget.
That’s why I want to build my own expense tracker.

What tools did I use? 我使用了什麼工具?

我使用JavaScript建構前後端功能,並結合MongoDB資料庫。
具有以下主要優點:

  1. 統一性:使用同一種語言(JavaScript)開發前後端,簡化了開發過程,並提高了開發效率。
  2. 輕量級:JavaScript要求較少的伺服器資源,有助於降低成本。
  3. 社群支援:JavaScript擁有龐大的開發者社群和豐富的工具和框架 (像我就有使用 node.js 、luxon、自定義 Handlebars helper )。
  4. MongoDB的彈性和擴展性:MongoDB適用於大規模資料和使用者的應用,無需重新設計資料庫。
  5. JSON格式資料:JavaScript和MongoDB都使用JSON,簡化了資料交換。
  6. 強大生態系統:JavaScript和MongoDB擁有豐富的工具和資源,有助於應用程式的管理和維護。

Which parts did I find relatively easy to master? 哪部分我相對能掌握?

我能妥善利用CRUD與資料溝通,並渲染畫面,也使用brcrypt處理密碼,藉此保護使用者資料。

What challenges did I encounter during the process, and how did I overcome them?過程中碰到什麼困難?又如何克服?

使用MongoDB的一項缺點,就是資料之間的關聯性薄弱,需要自己手動建立。而在使用CRUD與資料互動等過程,主要使用的是 promise 語法,但其中需要使用 async/ await時,就會容易出現語法錯誤。

Get Yen's Coding Journal’s stories in your inbox

Join Medium for free to get updates from this writer.

在這個過程中,我不斷嘗試把自己遇到的問題切成更小的問題,以幫助我思考。我也不斷地查找網路文件,以及與 ChatGPT 來回討論文件的內容,同時自己做一些小實驗,看看程式碼是否能依照我理解的運作。最後再依照自己學到的內容,把步驟寫出來,再一步步執行。

Did I have a particularly deep learning experience with any specific technology during the process? 過程中我有對哪個技術有特別深刻的學習?

以下是技術學習的筆記:

JS 非同步(異步)寫法:Promise

比較 Promise 和 Async / Await

在 JavaScripts 中,渲染時間、設定時區

自定義 Handlebars helper {{#if}} 的用法

在 JavaScript 中錯誤處理 (Error Handling) 該如何撰寫

往後的鍛練重點

從製作專案中學習,讓我能更加理解不同功能之間的互動關係,因此往後也會期待自己持續製作專案,藉以持續成長與鍛鍊自己的 coding 能力!

--

--