Mạng xã hội dành riêng cho lập trình viên — nơi chia sẻ code, tìm mentor, và cộng tác dự án cùng nhau. Xây dựng bằng Flutter (ứng dụng di động) + NestJS (máy chủ API) + Trí tuệ nhân tạo.

20Màn hình
23Tính năng
3Cơ sở dữ liệu
10Công nghệ

20 Màn hình ứng dụng

Nhấn vào bất kỳ màn hình nào để xem chi tiết kỹ thuật và các tính năng liên quan

Kiến trúc hệ thống

Toàn bộ hệ thống được chia thành 4 phần chính, hoạt động phối hợp với nhau

📱

Ứng dụng di động

Flutter 3.x + Dart
  • Quản lý trạng thái bằng Riverpod
  • Gọi API qua Dio (tự động refresh token)
  • Kết nối thời gian thực qua Socket.io
  • Ảnh tự cache, tải nhanh lần 2
  • Hiệu ứng loading dạng xương (skeleton)

Máy chủ API

NestJS + TypeScript
  • API RESTful + kênh WebSocket thời gian thực
  • Xác thực JWT, token tự động làm mới
  • Giới hạn tốc độ truy cập (chống spam)
  • Xử lý tác vụ nền bằng BullMQ
  • Đóng gói Docker, dễ triển khai
🗄️

Tầng dữ liệu

PostgreSQL + MongoDB + Redis
  • PostgreSQL: người dùng, bài viết, theo dõi, tương tác
  • MongoDB: tin nhắn chat (linh hoạt, ghi nhanh)
  • Redis: bộ nhớ đệm, giới hạn tốc độ, trạng thái online
  • VPS Storage: lưu trữ ảnh và media (chia thư mục)
🤖

Trí tuệ nhân tạo

Gemini 2.0 Flash + SVD (scipy)
  • Đánh giá code: tìm lỗi, chấm điểm 1-10
  • Giải thích code: 3 cấp độ (mới học → chuyên gia)
  • Ghép cặp mentor: chấm điểm tương thích kỹ năng
  • Gợi ý bài viết: thuật toán SVD + lọc cộng tác

Luồng xử lý dữ liệu

Ứng dụng Flutter  →  Máy chủ NestJS API  →  PostgreSQL (dữ liệu chính)
       ↕                    ↕                    MongoDB (dữ liệu chat)
  Socket.io           Tác vụ nền BullMQ         Redis (bộ nhớ đệm)
       ↕                    ↕                    VPS Storage (ảnh/video, chia thư mục)
  Thời gian thực      Firebase FCM              Gemini AI (AI đánh giá code)

6 Nguyên tắc xử lý xuyên suốt

Áp dụng cho toàn bộ hệ thống, không riêng tính năng nào

📄 Phân trang thông minh

Không tải hết dữ liệu — chỉ lấy 20 mục mỗi lần. Cuộn xuống → tự tải thêm. Dùng "con trỏ" thay vì số trang để tránh lặp dữ liệu.

Lấy 21 dòng, hiện 20, dòng 21 = biết còn tiếp hay không

🛡️ Giới hạn tốc độ

Chống spam và tấn công — mỗi IP chỉ được gửi tối đa 100 yêu cầu/phút. Đăng nhập sai: tối đa 5 lần/phút. Đăng bài: 10 lần/phút.

Vượt giới hạn → trả lỗi 429 "Quá nhiều yêu cầu"

⚡ Bộ nhớ đệm Redis

Dữ liệu hay truy cập được lưu tạm trong Redis (bộ nhớ siêu nhanh). Lần sau truy cập → trả ngay từ Redis, không cần hỏi database.

Có trong cache → trả ngay | Không có → hỏi DB → lưu cache

✨ Giao diện phản hồi tức thì

Khi bấm "Thích" hay "Theo dõi" → giao diện thay đổi NGAY LẬP TỨC, không đợi máy chủ. Nếu máy chủ báo lỗi → tự hoàn tác.

Bấm Like → trái tim đỏ ngay → API chạy nền → lỗi? → hoàn tác

🔌 Kết nối thời gian thực

WebSocket giữ kênh mở liên tục — tin nhắn mới, thông báo, trạng thái online đều cập nhật tức thì, không cần tải lại trang.

Mất kết nối → tự kết nối lại: 1s → 2s → 4s → tối đa 30s

🖼️ Xử lý ảnh thông minh

Ảnh upload → tự nén và tạo 2 phiên bản: ảnh nhỏ (xem nhanh trong danh sách) + ảnh gốc (xem chi tiết). Lưu trên VPS theo thư mục.

Upload → nén 1200px → tạo thumb 300px + gốc → lưu /uploads/

Công nghệ sử dụng

14 công nghệ production-grade cho nền tảng mạng xã hội lập trình viên

Công nghệ Phân loại Vai trò Chi tiết sử dụng
Flutter 3.x Giao diện Ứng dụng di động Viết 1 lần chạy cả Android + iOS. Quản lý trạng thái Riverpod, gọi API qua Dio, ảnh tự cache
Dart Giao diện Ngôn ngữ lập trình Ngôn ngữ của Flutter, hỗ trợ null safety, xử lý bất đồng bộ tốt
NestJS Máy chủ API + WebSocket Framework phía máy chủ, kiến trúc module. Guards (bảo vệ), Pipes (kiểm tra dữ liệu), WebSocket Gateway
TypeScript Máy chủ Ngôn ngữ lập trình JavaScript nâng cao, kiểm tra kiểu dữ liệu tại lúc viết code, giảm lỗi runtime
PostgreSQL CSDL Cơ sở dữ liệu chính Lưu người dùng, bài viết, theo dõi, tương tác, thông báo. Tìm kiếm full-text (tsvector + GIN). ORM Prisma
MongoDB CSDL Cơ sở dữ liệu chat Lưu hội thoại + tin nhắn. Schema linh hoạt (text/ảnh/code/reactions). Tối ưu ghi nhanh liên tục
Redis CSDL Bộ nhớ đệm + thời gian thực Cache feed (5 phút), profile (10 phút). Đếm giới hạn truy cập. Lưu trạng thái online
VPS Storage Lưu trữ Lưu trữ file trên VPS Avatar, ảnh bài viết. Chia thư mục: /uploads/avatars/, /uploads/posts/, /uploads/chat/. Tạo 2 phiên bản: thumb + gốc. Nginx phục vụ file tĩnh
Gemini 2.0 Flash AI Trí tuệ nhân tạo Đánh giá code (chấm điểm 1-10, tìm lỗi), giải thích code (3 cấp độ), ghép mentor. Miễn phí: 15 yêu cầu/phút
Firebase FCM Dịch vụ Thông báo đẩy Gửi thông báo khi người dùng offline. Hỗ trợ Android + iOS. Badge đếm số, nhấn vào → mở đúng bài viết
Docker Vận hành Đóng gói ứng dụng Gói toàn bộ hệ thống vào container, chạy ở đâu cũng được. Compose: API, PostgreSQL, MongoDB, Redis
BullMQ Máy chủ Hàng đợi tác vụ Xử lý nền: tái tính feed (15 phút), SVD (6 giờ), gửi email, gộp thông báo, dọn dẹp ảnh lẻ
scipy (SVD) AI Thuật toán gợi ý Phân tích hành vi người dùng (xem/thích/lưu) → tìm bài viết phù hợp. Kết hợp: SVD 50% + nội dung 30% + mới 10% + bạn bè 10%
Judge0 API Dịch vụ Chạy code trực tuyến Sân chơi code an toàn — chạy Python, JS, Dart, C++. Cách ly hoàn toàn (không mạng, giới hạn RAM). Miễn phí 50 lần/ngày

23 Tính năng — Chi tiết kỹ thuật

Mỗi tính năng ghi rõ: cách hoạt động, luồng xử lý, API, cơ sở dữ liệu, tình huống đặc biệt