แพลตฟอร์มเว็บของผู้พัฒนาอสังหาริมทรัพย์
เว็บไซต์สาธารณะและระบบจัดการเนื้อหาของผู้พัฒนาที่อยู่อาศัยรายใหญ่ ครอบทั้งบ้านจัดสรรและคอนโดในสามภาษา ทุกหน้าแก้ไขได้เองโดยทีมการตลาด และดึงข้อมูลสต๊อกจากระบบหลังบ้านเดิมที่สื่อสารได้ด้วยไฟล์อย่างเดียวทุกคืน
- NestJS
- TypeScript
- PostgreSQL
- TypeORM
- Next.js
- React
- AWS S3
- AWS SQS
- CloudFront
- Docker
ภาพรวม
เว็บของผู้พัฒนาอสังหาคือหน้าร้านที่มองเข้าไปยังสต๊อกซึ่งอยู่ที่อื่น ทั้งโครงการ แบบบ้าน ผังห้อง และราคา ถูกดูแลในระบบหลังบ้านที่สร้างมานานก่อนจะมีทีมเว็บ และระบบนั้นแลกเปลี่ยนข้อมูลได้ทางเดียวคือไฟล์ที่วางไว้ในที่เก็บ ขณะเดียวกันทีมการตลาดอยากสร้างหน้าแคมเปญ ปรับโปรโมชัน และเปลี่ยน URL ได้เองโดยไม่ต้องเปิดใบงาน
แพลตฟอร์มนี้ประกอบด้วยสี่แอปพลิเคชัน คือ API เนื้อหาและคอนโซลผู้ดูแลสำหรับทีมงาน กับ API สำหรับอ่านและเว็บไซต์สาธารณะสำหรับผู้เข้าชม รองรับไทย อังกฤษ และจีน โดยมีหน้าค้นหาแบบหลายเงื่อนไขเป็นพื้นที่หลัก
ส่วนที่ท้าทายในการสร้าง
สะพานกลางคืนไปยังระบบที่พูดได้แต่ภาษาไฟล์ ก่อนเที่ยงคืนตามเวลาท้องถิ่น งานหนึ่งจะไล่ไฟล์สิบสามชนิด ทั้งรายละเอียดโครงการ ผังห้อง ทำเล โปรโมชัน และภูมิภาค แต่ละชนิดมีตัวแปลงของตัวเองที่เปลี่ยนข้อมูลในแพลตฟอร์มให้เป็นโครงสร้างที่ระบบเดิมเข้าใจ ผลลัพธ์ถูกแปลงเป็นไฟล์ บีบอัด แล้วส่งกลับไปยังที่เก็บร่วม งานนี้ไม่หวือหวาแต่เป็นกระดูกสันหลังของทั้งระบบ เพราะถ้าไม่มีมัน เว็บกับหลังบ้านจะเข้าใจไม่ตรงกันว่าอะไรยังขายอยู่
เส้นทางเปลี่ยนทางที่ทีมการตลาดเป็นเจ้าของ เว็บอายุสิบปีย่อมสะสม URL ที่ตายแล้วนับพัน และทุกอันคือผู้เข้าชมที่หายไป การเปลี่ยนเส้นทางจึงเก็บเป็นแถวในฐานข้อมูล ไม่ใช่บรรทัดในไฟล์ตั้งค่า และ middleware ที่ขอบดึงชุดที่ใช้งานอยู่มาพร้อมช่วงรีเฟรชสั้น ๆ ตารางจึงถูกอ่านใหม่ราวนาทีละครั้งสำหรับทุกคำขอ แทนที่จะอ่านทุกคำขอ แต่ละแถวถูกจัดรูปให้เทียบกันได้ทั้ง host ภาษา และ path ก่อนนำไปจับคู่ เพราะการเปลี่ยนเส้นทางเดียวกันอาจถูกกรอกเป็น path เปล่าโดยคนหนึ่ง และเป็น URL เต็มโดยอีกคน middleware ตัวเดียวกันนี้ยังแปลงภาษาและเขียนคำค้นแบบหลายเงื่อนไขให้เป็น path เจ็ดช่วงที่เป็นรูปแบบมาตรฐาน ซึ่งเป็นสิ่งที่ทำให้หน้าตัวกรองเหล่านั้นถูกจัดทำดัชนีได้
การเขียนข้อมูลวิเคราะห์ที่ไม่ท่วมฐานข้อมูล ทุกการเปิดหน้าเว็บสาธารณะบันทึกเหตุการณ์พฤติกรรมไว้ให้หน้าวิเคราะห์ผู้ใช้ในระบบหลังบ้าน ถ้าเขียนทีละเหตุการณ์จะกลายเป็นการเขียนหลายพันครั้งต่อนาทีสำหรับข้อมูลที่ไม่มีใครอ่านแบบเรียลไทม์ เหตุการณ์จึงถูกพักไว้ในหน่วยความจำแล้วเขียนลงเมื่อถึงเงื่อนไขใดก่อน ระหว่างจำนวนที่กำหนดกับเวลาที่กำหนด พร้อมการระบายออกตอนปิดโปรเซส เพื่อไม่ให้การ deploy แบบทยอยทำให้ข้อมูลที่พักไว้หาย
ขนาด
- สี่ deployable บนฐานข้อมูลเดียว · 61 และ 54 entity ในสอง API · 108 migration
- 397 endpoint · 133 หน้าจอ · สามภาษา ภาษาละราว 800 คำแปล
- ซิงก์ไฟล์ระบบเดิมสิบสามชนิดทุกคืน · เชื่อมต่อระบบภายนอกราวสิบสองระบบ
- สถานะ
- เผยแพร่แล้ว
- เผยแพร่เมื่อ
- 12 ก.ย. 2026
- เทคโนโลยี
- NestJS · TypeScript · PostgreSQL · TypeORM · Next.js · React · AWS S3 · AWS SQS · CloudFront · Docker
ดูต่อ

