ข้ามไปยังเนื้อหา
โปรเจกต์ทั้งหมด

เผยแพร่แล้ว

แพลตฟอร์มเว็บของผู้พัฒนาอสังหาริมทรัพย์

เว็บไซต์สาธารณะและระบบจัดการเนื้อหาของผู้พัฒนาที่อยู่อาศัยรายใหญ่ ครอบทั้งบ้านจัดสรรและคอนโดในสามภาษา ทุกหน้าแก้ไขได้เองโดยทีมการตลาด และดึงข้อมูลสต๊อกจากระบบหลังบ้านเดิมที่สื่อสารได้ด้วยไฟล์อย่างเดียวทุกคืน

  • 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

ดูต่อ

โปรเจกต์อื่น ๆ

โปรเจกต์ทั้งหมด