Technical - SilverSky9/DevToolNo1 GitHub Wiki
เลือกใช้เป็น Next.js และใช้ framework เป็น react boostrap โดยจะมีหน้าหลักๆดังนี้
1.Home page โดยจะมี feature ดังนี้
- search product เป็นการที่ให้ผู้ใช้หาโพสที่ตัวเองต้องการโดยจะเป็น realtime search เมื่อพิมพ์ในช่อง search เสร็จจะทำการแสดงผลให้เลยทันที
- Get product เป็นการที่ผู้ใช้เข้ามาในหน้าเว็บ จะเห็นโพสล่าสุดที่ทุกคนสร้างมา
- Filter by tag เป็นการค้นหาโพสโดยใช้ tag ในการค้นหาทำให้ง่ายและครอบคลุมกับสิ่งของที่เราต้องการมากยิ่งขึ้น
2.Create post page โดยจะมี feature ดังนี้
- Upload photo product เป็นส่วนที่ผู้ใช้จะนำรูปภาพที่ตัวเเองต้องการมาใส่ไว้หรือว่าไม่จำเป็นจะต้องใส่ก็ได้
- Add detail post เป็นส่วนที่ผู้ใช้ต้องใส่ข้อมูลรายละเอียดที่ตัวเองต้องการ
- Select catagory จะสามารถเลือกได้ 1 tag ต่อ 1 โพส เพื่อให้คนที่มาตามหาหรือใช้ยืมนั้น ค้นหาได้ง่ายขึ้น
- UI เป็นไปตามที่ design เอาไว้
- สามารถอัพโหลดรูปภาพและแสดงบนโพสได้
- สามารถพิมพ์และแสดงผลข้อมูลบนโพสได้
- สามารถเลือกและจัด tag ได้อย่างถูกต้อง
- มีการ Validate ข้อมูลก่อนโพสได้
เลือกใช้ Docker container และ Deploy โดยเลือกใช้ Nginx เป็น docker images
เลือกใช้ Go Fiber Framework ในการใช้งานหลังบ้าน โดยมีหน้าที่จัดการงานหลังบ้านได้แก่
- ทำการค้นหาโพสที่มี Title คล้ายกับสิ่งที่ผู้ใช้งานต้องการค้นหา
- ทำการค้นหาโพสที่เกี่ยวข้อง เมื่อผู้ใช้งานเลือก Tags ที่ต้องการค้นหา
- ตรวจสอบความถูกต้องของข้อมูลที่ Frontend ส่งมาเพื่อตรวจทานความถูกต้อง
- ดูแลและจัดการ API ที่เกี่ยวข้องในการทำ CRUD ของ mongoDB Database
เลือกใช้ Go Test เป็นเครื่องมือในการ Test ในภาษา Golang มีความสามารถในการทำการ test รูปแบบต่างๆ และมี Feature เข่น
- สามารถทำ unittest สำหรับการทำ Unit Test ได้
เลือกใช้ Docker container และ Deploy โดยเลือกใช้ Golang เป็น docker images
ต้องการเก็บข้อมูลในรูปแบบของ Object ซึ่งเหมาะสมกับการใช้งานเป็น ฐานข้อมูลที่ต้องการความหยืดหยุนสูง สามารถมีรูปแบบในการเก็บข้อมูลที่หลายรูปแบบ เหมาะสมกับการที่เราต้องการสร้างโพส คอมเมนต์ และข้อมูลที่เกี่ยวกับการยืม รวมทั้งการจัดเก็บ Token JWT ในการจัดการสิทธิ์การเข้าถึงและอายุของโพส