Mini Project: Finance Management

Jetnipat Thankeatphangan
3 min readApr 24, 2021

--

Finance Management เป็นเว็บไซต์สำหรับบันทึกรายรับรายจ่าย ซึ่งสามารถใช้งานได้ทั้งผู้ที่สมัครเป็นสมัครมชิก และ ไม่ได้เป็นสมาชิก

ส่วนที่หน้าสนใจ คือ การนำเทคโนโลยีใหม่ ๆ เข้ามาใช้งาน เช่น tailwindcss มาทำส่วน Dark mode

ซึ่งสามารถทำได้ง่ายไม่ยุ่งยากมาก แต่อาจจะติดปัญหาตรง config นิดหน่อย โค้ดก็สั้นมาก (โค้ดมีการเซ็ต theme color ไว้ด้วยครับ)

<div className=”flex justify-between items-center bg-white text-bgx dark:bg-bgnav dark:text-primary”> </div>
dark mode

ศึกษาเพิ่มได้จาก บันทึกการเปลี่ยนเว็บไซต์ไปใช้ Tailwind CSS (aofleejay.com)

ส่วนที่หน้าสนใจ คือ มีการใช้ state management ที่ชื่อว่า zustand โครงสร้างจะประมาณนี้โดยมีการเขียน Type ให้ Store เพิ่มด้วย ในตัวอย่างจะเป็นการสร้าง Store เบื้องต้น โดยฟังก์ชันการทำงานหลัก ๆ มี get คือการดึงค่าใน store มาใช้ และ set คือการจัดการตัวแปรใน store

การเรียกใช้ก็ไม่ยากอย่างที่คิด

import { TransactionStore } from "../store";const { userID, tranID, tranDate, tranNote, tranType, tranAmount,} 
= TransactionStore();

ศึกษาเพิ่มได้จาก Zustand (surge.sh)

และส่วนสุดท้าย การเขียนด้วย Typescript หลัก ๆ คือการเขียนกำหนด Type ให้กับพวกตัวแปร เพื่อง่ายต่อการตรวจสอบข้อผิดพลาด

และ นี้คือข้อดีที่เห็นได้ชัดเมื่อเราพลาดใส่ข้อมูลที่ Type ไม่ตรง จะมี error ขึ้นมาเตือนอัตโนมัติ

ลองศึกษาดูเพิ่มเติมได้ตามลิงค์ด้านล่างครับ

แนะนำการใช้งานระบบ

เริ่มจากส่วนติดตั้งโปรเจคกันก่อนนะครับโดยจะแบ่งเป็น 2 ฝั่งคือ Frontend, Backend

Backend

git clone https://github.com/Jetnipat-c/mini-project-backend.git
cd mini-project-backend
yarn
yarn start

Frontend

git clone https://github.com/Jetnipat-c/mini-project-frontend.git
cd mini-project-frontend
yarn
yarn run dev

เปิด Browser web แล้วเข้าไปที่ http://localhost:3000/

จะพบกับหน้าเข้าสู่ระบบ ประกอบไปด้วย ปุ่มสมัครสมาชิกหรือเข้าใช้งานแบบ guests user

หน้าเข้าสู่ระบบ

หน้าสมัครสมาชิก

หากเข้าสู๋ระบบรหัสผ่านหรือผู้ใช้งานไม่ถูกต้องจะมีข้อความแจ้งเตือนขึ้นมา

หน้าแรกเมื่อเข้าสู๋ระบบ จะแบ่งออกเป็น 2 Component

Manage Transaction

คือ ส่วนที่ไว้เพิ่มรายการเข้าไป

Lastes Transaction

คือ ส่วนที่จะดึงข้อมูลรายการมาแสดง

ต่อไปคือหน้าส่วน admin http://localhost:3000/admin

Lastes Transaction

คือ ส่วนที่จะดึงข้อมูลรายการมาแสดง และ ปุ่มเลือกมีไว้สำหรับเลือกรายการข้อมูลไปแก้ไขข้อมูลต่อไป

Manage Transaction

คือ ส่วนที่จะดึงข้อมูลรายการที่เรากดปุ่มเลือกมาแสดง

และหน้าเว็บทั้งหมดเป็นแบบ Responsive โดยระบบหลัก ๆ จะมีเพียงเท่านี้

--

--

No responses yet