418342 ภาคปลาย 2553/การบ้าน 2
รุ่นแก้ไขเมื่อ 10:41, 20 มกราคม 2554 โดย Ckw (คุย | มีส่วนร่วม) (→ข้อกำหนดเบื้องต้นเกี่ยวกับระบบบัญชีส่วนตัว)
ให้เมื่อวันที่ 21 มกราคม 2554 ส่งวันที่ 9 กุมภาพันธ์ 2554 เวลา 23.59 น.
ในการบ้านนี้นิสิตจะสร้างระบบบัญชีส่วนตัว เพื่อให้นิสิตสามารถบันทึกรายรับรายจ่ายประจำวัน รวมถึงออกรายงานสรุปรายรับรายจ่ายของตนเองได้
ข้อกำหนดเบื้องต้นเกี่ยวกับระบบบัญชีส่วนตัว
- สร้างโครงของแอพพลิเคชันขึ้นมาด้วย Rails หรือใช้แอพพลิเคชันตัวอย่างที่ใช้ Authentication ที่ดาวน์โหลดได้ที่ แอพพลิเคชันตัวอย่างที่ใช้ Authentication เพื่อนำมาปรับใช้ในการสร้างแอพพลิเคชันนี้ (นิสิตควรปรับแก้ CSS ของแอพพลิเคชันให้ดูเหมาะสมกับแอพพลิเคชันของตน)
- ระบบจำเป็นต้องมีฐานข้อมูลที่ใช้ในการจัดเก็บข้อมูล โดยให้ใช้ SQLite เป็นระบบฐานข้อมูล
- ตารางในฐานข้อมูลควรถูกออกแบบตามความเหมาะสมเพื่อใช้บันทึกข้อมูลรายรับรายจ่ายประจำวันได้
- แอพพลิเคชันต้องถูกออกแบบโดยให้เป็นไปตามหลักการของ REST
- สำหรับการบ้านนี้ แอพพลิเคชันต้องมีระบบ Authentication โดยสามารถใช้ขั้นตอนวิธีตามแอพพลิเคชันตัวอย่างที่ใช้ Authentication
- สำหรับการบ้านนี้ แอพพลิเคชันไม่จำเป็นต้องมีหน้าจอเพื่อใช้ในการเพิ่มจำนวนผู้ใช้ในระบบ ผู้ใช้ทั้งหมดในระบบจะถูกสร้างเตรียมไว้ในฐานข้อมูลตั้งแต่ตอนติดตั้งแอพพลิเคชัน โดยข้อมูลผู้ใช้ในระบบทั้งหมดจะถูกเตรียมเก็บไว้ในไฟล์ db/seeds.rb เพื่อใช้ในการเตรียมข้อมูลผู้ใช้เข้าไปในฐานข้อมูลตอนติดตั้งแอพพลิเคชัน (สามารถดูตัวอย่างได้ที่ แอพพลิเคชันตัวอย่างที่ใช้ Authentication)
- กำหนดให้ผู้ใช้ 1 คนมีบัญชีรายรับรายจ่ายเพียง 1 บัญชีเท่านั้น
รายละเอียดเกี่ยวกับระบบบัญชีส่วนตัว
- หน้าหลักของแอพพลิเคชันจะเป็นหน้าล็อกอิน เพื่อเข้าใช้ระบบ
- หลังจากที่ผู้ใช้ล็อกอินผ่านเข้าระบบไปได้แล้ว หน้าของแอพพลิเคชันจะแสดงรายการรายรับและรายจ่ายของผู้ใช้ที่ได้ล็อกอินเข้าไป โดยให้ลำดับของรายการที่เข้ามาใหม่อยู่เหนือรายการที่ถูกบันทึกมาก่อน
- หน้าเพจต่างๆ ในแอพพลิเคชันควรมีเมนูที่ลิงค์ไปยังหน้าเพจอื่นที่สัมพันธ์กันอย่างเหมาะสม
- ประเภทของรายการที่ปรากฏในระบบบัญชีนี้มี 2 ชนิดคือ
- รายการรายรับ เป็นรายการที่ทำให้ยอดเงินในบัญชีมีค่าสูงขึ้น อาทิเช่น เงินเปิดบัญชี ค่าเบี้ยเลี้ยง ค่าตอบแทนผู้ช่วยสอน เงินแต๊ะเอีย เป็นต้น
- รายการรายจ่าย เป็นรายการที่ทำให้ยอดเงินในบัญชีมีค่าลดลง อาทิเช่น ค่าอาหาร ค่าเดินทาง ค่าหนังสือ ค่าตั๋วหนัง เป็นต้น
- ประเภทของรายการในแอพพลิเคชันต้องถูกเก็บอยู่ในตาราง ซึ่งแยกออกมาจากตารางที่ใช้เก็บรายละเอียดของรายการรายรับและรายจ่าย และข้อมูลในตารางประเภทรายการจะถูกสร้างเตรียมไว้ล่วงหน้าโดยถูกเก็บไว้ใน db/seeds.rb โดยที่ข้อมูลส่วนนี้จะไม่ถูกเปลี่ยนแปลงหรือลบออกจากฐานข้อมูลในช่วงการทำงานของแอพพลิเคชันนี้
- ส่วนรายการรายรับและรายจ่ายสามารถถูกเพิ่ม ลบ และแก้ไข ในตารางรายการ ผ่านหน้าเพจของแอพพลิเคชัน โดยประเภทของรายการจะถูกอ่านเพื่อนำมาแสดงจากตารางประเภทรายการ
- รายการรายรับรายจ่ายควรมีรายละเอียดที่จำเป็น โดยที่อย่างน้อยควรประกอบด้วย วันและเวลาที่ทำรายการ ประเภทของรายการ รายละเอียดของรายการหากผู้ใช้ต้องการบันทึกเพิ่มเติมไว้ และจำนวนเงิน เป็นต้น
- แอพพลิเคชันมีหน้าเพจแสดงรายงานรายรับรายจ่ายประจำวัน
- ผู้ใช้จะป้อนวันที่เริ่มต้นและวันที่สิ้นสุดในการแสดงรายงานประจำวันนี้
- รายงานนี้จะแสดงรายการที่เกิดขึ้นของแต่ละวันในช่วงเวลาที่ผู้ใช้กำหนด โดยให้เรียงลำดับจากรายการที่เกิดขึ้นก่อนเหนือรายการที่เกิดตามมา
- เมื่อสิ้นสุดของแต่ละวัน รายงานต้องแสดงยอดเงินสุทธิของรายการที่เกิดขึ้นในวันนั้น
- เมื่อสิ้นสุดรายงาน รายงานต้องแสดงยอดเงินสุทธิของรายการที่เกิดขึ้นในช่วงวันที่ผู้ใช้ได้กำหนดมา
หลังจากทำการพัฒนาเสร็จแล้ว ให้ rollback migration ทั้งหมด (ให้ database ว่าง) แล้ว zip ไดเรคทอรีที่ rails สร้างทั้งหมดส่งมาที่อีเมล์ของ อ.ประมุข (pramook at gmail dot com) และ อ.ชาคริต (chakrit dot w at gmail dot com)