---
title: "Nền tảng IR — CMS tự xây trên Google Cloud — Tran Manh Tuan"
description: "Nền tảng website doanh nghiệp và IR cho một doanh nghiệp niêm yết tại Nhật Bản — CMS tự phát triển toàn bộ, pipeline dữ liệu Firestore sang BigQuery, hạ tầng Google Cloud có WAF."
canonical: "https://tmtuan.dev/vi/projects/corporate-ir-platform"
language: "vi"
image: "https://tmtuan.dev/_img/projects/corporate-ir-platform/corporate-ir-platform.f0d2285c-og.jpg"
tokens: 768
---

# Corporate IR Platform

Nền tảng website doanh nghiệp và quan hệ nhà đầu tư (IR) cho **một doanh nghiệp niêm yết tại Nhật Bản** — dự án nặng nhất về backend trong hồ sơ: thay vì dùng CMS thương mại, toàn bộ hệ thống quản trị nội dung được **tự phát triển** để khớp đúng nghiệp vụ của một công ty niêm yết, quản lý press release song ngữ Nhật/Anh, story, tin tuyển dụng và thông báo khẩn.

CMS xây bằng **Vue 3 + TypeScript + Vite**: đăng nhập qua **Firebase Auth** với phân quyền bằng custom claims, trình soạn thảo dạng block, dữ liệu lưu **Firestore** và ảnh lưu **Cloud Storage**. Bài viết hẹn giờ được đăng tự động — **Cloud Scheduler** chạy mỗi giờ qua **Pub/Sub** để quét và xuất bản đúng lịch mà không cần người thao tác.

Dữ liệu Firestore được backup định kỳ rồi đồng bộ sang **BigQuery**; API tìm kiếm toàn văn chạy trên chính lớp dữ liệu này. Một API tổng hợp nội dung riêng — chạy trên **App Engine**, có cache — gom RSS của các site khác trong tập đoàn và tin IR từ bên thứ ba về hiển thị tập trung.

Frontend là **Nuxt** render phía server (SSR). Hạ tầng định nghĩa bằng **Terraform**: Load Balancer, **Cloud Armor (WAF)** chắn phía trước và Firebase rules được quản lý cùng một chỗ — thay đổi hạ tầng đi qua review như thay đổi code.

## Thông tin

- **Vai trò:** Technical Lead
- **Website:** [dena.com/intl/](https://dena.com/intl/)

## Công nghệ

- Nuxt
- Vue
- TypeScript
- Vite
- Firebase Auth
- Firestore
- Cloud Storage
- BigQuery
- App Engine
- Cloud Scheduler
- Pub/Sub
- Cloud Armor
- Terraform

## Dịch vụ thể hiện qua dự án

- [Website doanh nghiệp & nền tảng nội dung](https://tmtuan.dev/vi/services/web-platforms)
- [Hệ thống Backend & API](https://tmtuan.dev/vi/services/backend-development)
- [Hạ tầng Cloud](https://tmtuan.dev/vi/services/gcp-cloud-infrastructure)

## Bài viết liên quan

- [Knowledge Base docs-as-code + Context Graph cho portfolio 15 dự án](https://tmtuan.dev/vi/articles/knowledge-base-docs-as-code-context-graph)
- [Truy vết HTTP 500 chỉ xảy ra với Googlebot, xuyên Next.js, Cloud Run và hosting edge](https://tmtuan.dev/vi/articles/googlebot-500-firebase-hosting-nextjs)

## Structured data (JSON-LD)

```json
{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://tmtuan.dev/vi/projects/corporate-ir-platform#webpage","url":"https://tmtuan.dev/vi/projects/corporate-ir-platform","name":"Nền tảng IR — CMS tự xây trên Google Cloud","description":"Nền tảng website doanh nghiệp và IR cho một doanh nghiệp niêm yết tại Nhật Bản — CMS tự phát triển toàn bộ, pipeline dữ liệu Firestore sang BigQuery, hạ tầng Google Cloud có WAF.","inLanguage":"vi","isPartOf":{"@id":"https://tmtuan.dev/#website"},"about":{"@id":"https://tmtuan.dev/#person"}},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Trang chủ","item":"https://tmtuan.dev/vi"},{"@type":"ListItem","position":2,"name":"Dự án","item":"https://tmtuan.dev/vi/projects"},{"@type":"ListItem","position":3,"name":"Corporate IR Platform","item":"https://tmtuan.dev/vi/projects/corporate-ir-platform"}]}]}
```
