---
# System prepended metadata

title: DMA Exam

---

## Code First

| Mảng             | Nội dung cụ thể cần học                                            |
| ---------------- | ------------------------------------------------------------------- |
| ASP.NET Core API | Tạo project, định nghĩa model bằng Code First, tạo và gọi CRUD APIs |
| EF Core          | Thiết lập mối quan hệ, data annotations, migrations                 |
| SQL Server       | Tạo database tự động từ Code First                                  |
| ReactJS          | Functional components, hooks (`useState`, `useEffect`), routing     |
| Axios/Fetch      | Gọi API, xử lý response, error                                      |
| RESTful APIs     | Cách thiết kế API đúng chuẩn (GET, POST, PUT, DELETE)               |
| UI/UX            | Thiết kế form nhập liệu, hiển thị danh sách, thông báo lỗi          |


## Database First

| Mảng                         | Nội dung cụ thể cần học Database First                       |
| ---------------------------- | ----------------------------------------- |
| **SQL Server**               | Chạy script `.sql`, hiểu quan hệ 1-n,m-n      |
| **EF Core – Database First** |  Model thủ công |
| **ASP.NET Core API**         | Thiết kế API theo chuẩn RESTful           |
| **ReactJS**                  | Giao diện CRUD, xử lý state, gọi API      |
| **Axios/Fetch**              | Giao tiếp với backend                     |
| **Validation**               | Cả phía client và server                  |
| **Hooks**                    | `useState`, `useEffect`, ... |


* Chú ý các Dependency của useEffect 
    a. Không có 
    b. Có rỗng []
    c. Có tham số
* Chú ý cách sử dụng useState

## A. Phần Server - Backend Development

### I.  Database Design 
 - Cách thiết kế database trên SQL Server,MongoDB
### II.  Backend Development – ASP.NET Core API 
1. Cấu hình Entity Framework Core với Database First
2. CRUD APIs
3. LinQ

### III. Authentication / Authhorization
- Sinh ra token -> nhờ Username & Password (JWT)
- Tuyệt đối không bao giờ được lưu token ở trong localstorage => lưu ở trong cookie và memory (Nghiên cứu thêm Redux,Context API)
- Code phía server phải Authorize
- Biết sử dụng công cụ Postman


## B. Phần Client - Frontend Development 
### 1.React 
- Cách tạo ứng dụng React như thế nào ?
- Flow chạy react như thế nào ?
- Biêt cách truyền dữ liệu từ component cha -> con
- Biết cách truyền dữ liệu từ con -> cha ( hàm )
- Biết sử dụng Hook ( UseState, UseEffect)

#### Thiết kế giao diện và chức năng 
* Đăng ký : Tạo Form đăng ký
* Danh sách : Hiển thị danh sách từ API
* Chỉnh sửa : Chức năng cập nhật thông tin
* Xóa : Cho phép xóa bản ghi
* Giao tiếp API : Dùng Axios(Interceptor) hoặc Fetch API

### 2. HTML
- Cách sử dụng Fetch API của trình duyệt

### 3. Gọi các API & Validation
### 4. Tích hợp Paging,Filter,Sorting
- Paging từ Database (Recommend)
- Paging từ Backend


### 5. Phần Authentication & Authorization :
- Cơ chế sinh Access Token và Refresh Token
- Role
- Policy
- Permission Customize


### 6. Repository vs Unit of Work

### 7. Clean Architure

### 8. Tích hợp Log vào ứng dụng