- Giới thiệu
- Demo
- Nội dung khoá học
- Tính năng
- Công nghệ sử dụng
- Bắt đầu
- Cấu trúc dự án
- Đóng góp nội dung
- Tài liệu tham khảo
- Lộ trình phát triển
- Giấy phép
- English
PRO192 Docs là bản viết lại toàn bộ trang tài liệu môn Lập trình Hướng đối tượng (PRO192) của Đại học FPT, chuyển từ một trang tĩnh cũ (pro192web.netlify.app) sang một ứng dụng React hiện đại. Nội dung bám sát syllabus chính thức của môn học: từ nền tảng Java, đóng gói, kế thừa, đa hình, cho đến cấu trúc dữ liệu và xử lý ngoại lệ — trình bày song ngữ Việt/Anh, có ví dụ code minh hoạ và tra cứu nhanh theo chương.
Đây không chỉ là một lần làm mới giao diện. Nội dung được tách hoàn toàn khỏi lớp hiển thị (mỗi chương là một file Markdown độc lập), để dự án có thể mở rộng thành một nền tảng học tập đầy đủ hơn theo thời gian, thay vì dừng lại ở một tài liệu tĩnh.
Bản triển khai mới nhất luôn có tại: https://pro192web.id.vn/
| # | Chương | Chapter |
|---|---|---|
| 1 | Chào mừng | Welcome |
| 2 | Introduction Course | Introduction Course |
| 3 | Nền tảng | Foundations |
| 4 | Đóng gói | Encapsulation |
| 5 | Kế thừa | Inheritance |
| 6 | Đa hình | Polymorphism |
| 7 | Trừu tượng | Abstraction |
| 8 | Mảng đối tượng | Array of Objects |
| 9 | Bộ sưu tập | Collections |
| 10 | Bộ nhớ động | Dynamic Memory |
| 11 | Xử lý ngoại lệ | Exception Handling |
| 12 | Nhập xuất tệp | File IO |
| 13 | Lưu ý khi thi PE | PE Exam Guidelines |
- Song ngữ Việt/Anh — chuyển đổi ngôn ngữ theo từng chương, tự động fallback sang bản gốc khi chưa có bản dịch.
- Giao diện sáng/tối/hệ thống — lưu lựa chọn của người dùng, tự đồng bộ khi hệ điều hành đổi theme.
- Code Java có cú pháp tô màu — mỗi ví dụ minh hoạ đều dùng grammar Java riêng, có nút sao chép nhanh.
- Điều hướng kiểu tài liệu kỹ thuật — sidebar theo nhóm chủ đề, mục lục bám theo tiêu đề (table of contents), điều hướng mượt trên cả desktop và mobile.
- Trang Syllabus riêng — đề cương môn học chính thức (PRO192, Spring 2021), tra cứu ngay trong ứng dụng.
- Triển khai biên (edge) — phục vụ qua Cloudflare Workers, SPA tải nhanh, tách bundle theo route.
| Nhóm | Công nghệ |
|---|---|
| Framework | React 19, TypeScript 6 |
| Build tool | Vite 8 |
| Routing | React Router DOM v7 (client-side, SPA) |
| Giao diện | Tailwind CSS v4 (cấu hình CSS-first, không dùng tailwind.config.js) |
| Hiệu ứng | Motion (Framer Motion v12) |
| Nội dung | react-markdown + remark-gfm |
| Code highlighting | prism-react-renderer |
| Triển khai | Cloudflare Workers (wrangler v4) |
| Lint | oxlint |
| Git hooks | Husky (kiểm tra commit message, lint trước khi commit) |
Yêu cầu: Node.js 20 trở lên.
git clone https://github.com/mst-software-vn/pro192web.git
cd pro192web
npm installCác lệnh có sẵn:
npm run dev # chạy dev server (Vite)
npm run build # type-check (tsc -b) rồi build production
npm run preview # xem trước bản build production
npm run lint # kiểm tra code bằng oxlintsrc/
├── components/ # Component dùng chung (CodeBlock, MarkdownContent, ThemeToggle...)
├── content/
│ ├── chapters/ # Metadata + nội dung Markdown của từng chương (.md / .vi.md)
│ ├── syllabus.ts # Dữ liệu đề cương môn học
│ └── types.ts # Kiểu dữ liệu Chapter / ChapterGroup
├── hooks/ # useLanguage, useTheme, useActiveHeading...
├── layout/ # DocsLayout, Sidebar, TableOfContents, LandingHeader...
├── lib/ # Markdown parsing, slugify, Prism Java grammar
├── pages/ # LandingPage, DocsPage, SyllabusPage
└── router/ # AppRouter — khai báo toàn bộ route
docs/
├── content/ # Nội dung gốc scrape từ site cũ — chỉ để tham khảo, KHÔNG build vào app
├── images/ # Ảnh minh hoạ gốc, đối chiếu khi viết lại nội dung
└── screenshots/ # Ảnh chụp màn hình site cũ, phục vụ tham khảo nội dung
Mỗi chương là một cặp file Markdown trong src/content/chapters/ (<slug>.md tiếng Anh, <slug>.vi.md bản dịch tiếng Việt tuỳ chọn), được khai báo metadata trong src/content/chapters/index.ts. Ảnh minh hoạ đặt trong public/images/ và tham chiếu bằng đường dẫn tuyệt đối (/images/...). Nội dung ở docs/content/ là bản scrape từ site cũ, chỉ dùng để đối chiếu khi biên soạn lại — không đại diện cho nội dung đang publish.
Một số trang tài liệu (documentation site) được dùng làm nguồn tham khảo cho cách trình bày, điều hướng và trải nghiệm đọc của dự án này:
| Trang | Ghi chú |
|---|---|
| laravel.com | Trang doc framework, sidebar phân nhóm chủ đề rõ ràng, nhiều ví dụ code song song giải thích |
| nodejs.org | Cấu trúc API reference chuẩn mực cho tài liệu kỹ thuật quy mô lớn |
| expressjs.com | Trình bày tối giản, tập trung vào guide và ví dụ ngắn gọn |
| docs.nestjs.com | Doc framework TypeScript, phân nhóm module/chương rất mạch lạc — gần với cách tổ chức chương của dự án |
| remix.run | Doc framework React hiện đại, UI sạch, điều hướng mượt |
| code.claude.com | Doc sản phẩm AI, thiết kế tối giản, đọc dễ trên cả desktop lẫn mobile |
| vite.dev | Doc của chính build tool đang dùng trong dự án, tham khảo cách trình bày getting-started |
| reactbits.dev | Thư viện component/animation cho React, tham khảo hiệu ứng và cách demo trực quan từng component |
| modelcontextprotocol.io | Doc chuẩn giao thức, cấu trúc "getting started" rõ ràng, dễ theo dõi cho người mới |
- Gắn logic tìm kiếm thật cho thanh tìm kiếm (hiện mới là giao diện).
- Bổ sung thêm chương mới hoặc mở rộng nội dung các chương hiện có.
- Từng bước hoàn thiện bản dịch tiếng Việt cho các chương còn thiếu
bodyVi.
Dự án được thực hiện bởi MST Software theo đơn đặt hàng của Đại học FPT. Toàn bộ mã nguồn và nội dung thuộc quyền sở hữu của MST Software và Đại học FPT.
© 2026 MST Software.
PRO192 Docs is a full React rewrite of the legacy static documentation site for PRO192 (Object-Oriented Programming using Java) at FPT University, commissioned by FPT and built by MST Software. It covers the official 11-chapter syllabus — from Java foundations through encapsulation, inheritance, polymorphism, collections and exception handling — with bilingual Vietnamese/English content, highlighted Java code samples, and documentation-style navigation.
The rewrite goes beyond a visual refresh: chapter content lives in standalone Markdown files, fully separated from the UI layer, so the project can grow into a broader learning platform rather than stay a static document.
Live demo: https://pro192web.chunhau-py-015.workers.dev/
Stack: React 19, TypeScript 6, Vite 8, React Router DOM v7 (SPA), Tailwind CSS v4 (CSS-first config), Motion, react-markdown + remark-gfm, prism-react-renderer, deployed on Cloudflare Workers, linted with oxlint, Husky git hooks.
Getting started:
git clone https://github.com/mst-software-vn/pro192web.git
cd pro192web
npm install
npm run devLicense: Proprietary — built by MST Software for FPT University. All rights reserved. © 2026 MST Software.
