Skip to content

Giai đoạn 6 – Dự án cuối kỳ (Liên tục)

Dự án 1: CRUD hoàn chỉnh với Xác thực

  • Mục tiêu: Xây dựng một RESTful API mạnh mẽ với xác thực an toàn và kiểm thử.
  • Công nghệ: Spring Boot, Spring Data JPA (PostgreSQL), Spring Security (JWT), JUnit 5, Testcontainers.
  • Tính năng: CRUD cho các thực thể (ví dụ: tác vụ, người dùng), xác thực với vai trò (ADMIN, USER), tài liệu với Swagger.
  • Tùy chọn: Thêm giao diện Thymeleaf để xem/quản lý tác vụ.
  • Ví dụ: API để quản lý dự án (thực thể: Project, Task, User) với các endpoint được bảo vệ.

Dự án 2: Tải lên tệp

  • Mục tiêu: Thêm chức năng tải lên tệp vào API từ Dự án 1.
  • Công nghệ: Spring Boot (MultipartFile), Amazon S3 hoặc lưu trữ cục bộ, xác thực tệp.
  • Tính năng: Tải lên hình ảnh/tài liệu liên quan đến tác vụ, xác thực loại/kích thước.
  • Ví dụ: Cho phép tải lên tệp đính kèm (ví dụ: PDF, PNG) cho tác vụ trong API.

Dự án 3: Triển khai trên đám mây

  • Mục tiêu: Triển khai API lên nền tảng đám mây với CI/CD.
  • Công nghệ: Railway, Heroku, hoặc AWS (Elastic Beanstalk), GitHub Actions, Docker.
  • Tính năng: Đóng gói thành JAR/Docker, cấu hình biến môi trường, tự động hóa triển khai.
  • Tùy chọn: Triển khai caching với Redis để tối ưu hóa các truy vấn thường xuyên.
  • Ví dụ: Triển khai API dự án trên Railway với PostgreSQL và CI/CD.

Dự án 4: Microservices

  • Mục tiêu: Chia API từ Dự án 1 thành các microservices được điều phối.
  • Công nghệ: Spring Cloud (Eureka, Gateway), Docker Compose, REST để giao tiếp.
  • Tính năng: Microservices cho TasksUsers, với khám phá dịch vụ.
  • Tùy chọn: Sử dụng RabbitMQ để giao tiếp bất đồng bộ giữa các microservices.
  • Ví dụ: Tách logic tác vụ và người dùng thành hai dịch vụ, được điều phối với Docker.

Dự án 5: Tích hợp API bên ngoài

  • Mục tiêu: Sử dụng API bên ngoài để nâng cao chức năng.
  • Công nghệ: Spring RestTemplate hoặc WebClient, xác thực API (ví dụ: OAuth2).
  • Tính năng: Tích hợp với API công khai (ví dụ: gửi thông báo qua email với SendGrid).
  • Tùy chọn: Thêm GraphQL query để truy xuất tác vụ/người dùng và lưu trữ metadata trong MongoDB.
  • Ví dụ: Thêm thông báo email khi hoàn thành tác vụ.

Thực hành tốt cho Portfolio

  • Git: Commit cho mỗi tính năng (ví dụ: feature/crud, feature/upload), các nhánh rõ ràng.
  • Tài liệu: README với mô tả, thiết lập, endpoints, triển khai và ảnh chụp màn hình.
  • Đăng tải: Lưu trữ trên GitHub với giấy phép mã nguồn mở (ví dụ: MIT).

Tài nguyên