418342 ภาคปลาย 2552/การบ้าน 2
รุ่นแก้ไขเมื่อ 10:32, 20 มกราคม 2554 โดย Ckw (คุย | มีส่วนร่วม)
ให้เมื่อวันที่ 17 กุมภาพันธ์ 2553 ส่งวันที่ 23 กุมภาพันธ์ 2553 เวลา 23.59 น.
ในการบ้านนี้นิสิตจะสร้างระบบบัญชีส่วนตัว เพื่อให้นิสิตสามารถบันทึกรายรับรายจ่ายประจำวัน รวมถึงออกรายงานสรุปรายรับรายจ่ายของตนเองได้
ข้อกำหนดเบื้องต้นเกี่ยวกับระบบบัญชีส่วนตัว
- สร้างแอพพลิเคชันขึ้นมาด้วย Rails และสามารถใช้ปลั๊กอินในการสร้างแอพพลิเคชันนี้ได้
- ระบบจำเป็นต้องมีฐานข้อมูลที่ใช้ในการจัดเก็บข้อมูล โดยให้ใช้ sqlite เป็นระบบฐานข้อมูล
- ตารางในฐานข้อมูลควรถูกออกแบบตามความเหมาะสมเพื่อใช้บันทึกข้อมูลรายรับรายจ่ายประจำวันได้
- แอพพลิเคชันต้องถูกออกแบบโดยให้เป็นไปตามหลักการของ Rest
- สำหรับการบ้านนี้ แอพพลิเคชันไม่จำเป็นต้องมีระบบ authentication เพราะแอพพลิเคชันนี้เป็นระบบบัญชีส่วนตัวของผู้ใช้เพียงคนเดียว
รายละเอียดเกี่ยวกับระบบบัญชีส่วนตัว
- หน้าหลักของแอพพลิเคชันจะแสดงรายการรายรับและรายจ่าย โดยให้ลำดับของรายการที่เข้ามาใหม่อยู่เหนือรายการที่ถูกบันทึกมาก่อน นอกจากนี้ให้แสดงรายการไม่เกิน 20 รายการต่อหน้า มิฉะนั้นให้แสดงรายการที่เหลือในหน้าถัดๆ ไป
- หน้าหลักและหน้าเพจอื่นในแอพพลิเคชันต้องมีเมนูที่ลิงค์ไปยังหน้าเพจอื่นที่สัมพันธ์กันอย่างเหมาะสม
- ประเุภทของรายการที่ปรากฏในระบบบัญชีนี้มี 2 ชนิดคือ
- รายการรายรับ เป็นรายการที่ทำให้บัญชีรายรับรายจ่ายมียอดสูงขึ้น อาทิเช่น ค่าเบี้ยเลี้ยง เงินเปิดบัญชี เป็นต้น
- รายการรายจ่าย เป็นรายการที่ทำให้บัญชีรายรับรายจ่ายมียอดลดลง อาทิเช่น ค่าอาหาร ค่าเดินทาง เป็นต้น
- ประเุภทของรายการในแอพพลิเคชันต้องถูกเก็บอยู่ในตาราง ซึ่งแยกออกมาจากตารางที่ใช้เก็บรายการรายรับและรายจ่าย และข้อมูลในตารางประเภทรายการสามารถถูกเพิ่ม ลบ และแก้ไข ผ่านหน้าเพจแอพพลิเคชันได้
- รายการรายรับและรายจ่ายสามารถถูกเพิ่ม ลบ และแก้ไข ในตารางรายการ ผ่านหน้าเพจของแอพพลิเคชัน โดยประเภทของรายการต้องถูกนำมาแสดงจากตารางประเภทรายการ
- รายการรายรับรายจ่ายควรมีรายละเอียดที่จำเป็น โดยที่อย่างน้อยควรประกอบด้วย วันและเวลาที่ทำรายการ ประเภทของรายการ รายละเอียดของรายการหากผู้ใช้ต้องการบันทึกเพิ่มเติมไว้ และจำนวนเงิน เป็นต้น
- แอพพลิเคชันมีหน้าเพจแสดงรายงานรายรับรายจ่าย 2 ชนิดคือ
- รายงานรายรับรายจ่ายประจำวัน โดยผู้ใช้จะป้อนวันที่เริ่มต้นและวันที่สิ้นสุดในการแสดงรายงานประจำวันนี้
- รายงานนี้จะแสดงรายการที่เกิดขึ้นของแต่ละวันในช่วงเวลาที่ผู้ใช้กำหนด โดยให้เรียงลำดับจากรายการที่เกิดขึ้นก่อนเหนือรายการที่เกิดตามมา
- เมื่อสิ้นสุดของแต่ละวัน รายงานต้องแสดงยอดเงินสุทธิของรายการที่เกิดขึ้นในวันนั้น
- เมื่อสิ้นสุดรายงาน รายงานต้องแสดงยอดเงินสุทธิของรายการที่เกิดขึ้นในช่วงวันที่ผู้ใช้ได้กำหนดมา
- รายงานรายรับรายจ่ายประจำเดือนแยกประเภท โดยผู้ใช้จะป้อนเดือนที่เริ่มต้นและเดือนที่สิ้นสุดในการแสดงรายงานประจำเดือนนี้
- รายงานนี้จะแสดงรายการที่เกิดขึ้นของแต่ละเดือนในช่วงเวลาที่ผู้ใช้กำหนด โดยให้แยกประเภทของรายการและแสดงยอดเงินรวมของรายการประเภทนั้น
- เมื่อสิ้นสุดของแต่ละเดือน รายงานต้องแสดงยอดเงินสุทธิของรายการที่เกิดขึ้นในเดือนนั้น
- เมื่อสิ้นสุดรายงาน รายงานต้องแสดงยอดเงินสุทธิของรายการที่เกิดขึ้นในช่วงเวลาที่ผู้ใช้ได้กำหนดมา
- รายงานรายรับรายจ่ายประจำวัน โดยผู้ใช้จะป้อนวันที่เริ่มต้นและวันที่สิ้นสุดในการแสดงรายงานประจำวันนี้
หลังจากทำการพัฒนาเสร็จแล้ว ให้ rollback migration ทั้งหมด (ให้ database ว่าง) แล้ว zip ไดเรคทอรีที่ rails สร้างทั้งหมดส่งมาที่อีเมล์ของ อ.ประมุข (pramook at gmail dot com) และ อ.ชาคริต (chakrit dot w at gmail dot com)