Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 81 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
81
Dung lượng
1,8 MB
Nội dung
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM VÕ PHÚC TÀI ĐỒ ÁN CHUYÊN NGÀNH XÂY DỰNG WEBSITE HỌC TIẾNG ANH CHO NGƯỜI MỚI BẮT ĐẦU Website learning English for starter KHOA CÔNG NGHỆ PHẦN MỀM TP HỒ CHÍ MINH, 2020 LỜI NĨI ĐẦU Internet trở thành minh chứng xã hội đại, mang đến cho cách tiếp cận đến vô số nguồn thông tin Thế giới phẳng kèm theo hội nhập, tiếng anh ngơn ngữ tồn cầu cách nhanh để khiến thành cơng dân tồn cầu Website phát minh đưa vào sử dụng vào khoản đầu năm 90 kỉ trước Viện hàn lâm Anh Tim Berners-Lee Robert Cailliau (Bỉ) CERN, Geneva, Switzerland Website phát triển với bùng nổ toàn cẩu hóa internet trở thành cơng cụ khơng thể thiếu sống Nắm bắt ưu điểm đó, em định chọn đề tài với mục tiêu vừa thể tiềm không giới hạn website, vừa tạo nguồn thông tin hỗ trợ việc học ngoại ngữ cho người từ nhũng bước Với nội dung tinh giản cách tiếp cận đảm bảo cho lứa tuổi sử dụng hiệu Tuy cố gắng tìm hiểu, phân tích, thiết kế cài đặt hệ thống hạn chế thời gian kinh nghiệm thực tiễn nên chắn không tránh khỏi thiếu sót, chúng em kính mong nhận dẫn góp ý quý thầy để sản phẩm hồn thiện Thành phố Hồ Chí Minh, 09 tháng 01 năm 2021 Sinh viên VÕ PHÚC TÀI LỜI CẢM ƠN Sau trình học tập rèn luyện khoa Công nghệ phần mềm trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM em trang bị kiến thức bản, kỹ thực tế để hồn thành Đồ án chun ngành Để hồn thành đồ án này, với lòng biết ơn sâu sắc em xin gửi lời cảm ơn chân thành đến: Ban Giám hiệu trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM tạo điều kiện sở vật chất với hệ thống thư viện đại, đa dạng loại sách, tài liệu thuận lợi cho việc tìm kiếm, nghiên cứu thông tin Em xin gửi lời cảm ơn đến Huỳnh Hồ Thị Mộng Trinh tận tình giúp đỡ, định hướng cách tư cách làm việc khoa học Đó góp ý q báu khơng q trình thực luận văn mà hành trang tiếp bước cho em trình học tập làm việc sau Sau cùng, xin chúc quý Thầy Cô khoa Cơng nghệ Phần mềm nói riêng giáo viên trường Cơng nghệ thơng tin nói chung thật dồi sức khỏe, niềm tin để tiếp tục thực sứ mệnh cao đẹp Xin chân thành cảm ơn Xin chúc điều tốt đẹp đồng hành người Trân trọng ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC Độc Lập - Tự Do - Hạnh Phúc CÔNG NGHỆ THÔNG TIN TP HCM, ngày… tháng … năm ……… ĐỀ CƯƠNG CHI TIẾT TÊN ĐỀ TÀI: Xây dựng Website học tiếng anh cho người bắt đầu TÊN ĐỀ TÀI (tiếng Anh): Website learning English for starter Cán hướng dẫn: ThS Huỳnh Hồ Thị Mộng Trinh Thời gian thực hiện: Từ ngày 07/09/2020 đến ngày 02/01/2021 Sinh viên thực hiện: Võ Phúc Tài – 17521003 Nội dung đề tài:(Mô tả chi tiết mục tiêu, phạm vi, đối tượng, phương pháp thực hiện, kết mong đợi đề tài) Mục tiêu đề tài Website học tiếng anh cho người gốc Etrain thực dựa mục đích sau: Thứ nghiên cứu cơng nghệ lập trình như: lập trình website theo bước tồn diện từ back-end, front-end đến cách deploy công khai cho người dùng trải nghiệm từ server cá nhân Thứ hai phát triển ứng dụng có tính thực tiễn cao, có khả triển khai ứng dụng vào thực tế, giúp người có nhu cầu học tiếng anh thao tác dễ dàng tiện lợi Giảm áp lực cho người học thúc đẩy việc học tập ngày Phạm vi nghiên cứu (cơ sở lí thuyết tìm hiểu) Thói quen yếu điểm học tiếng anh người bắt đầu Lập trình ứng dụng Web với Reactjs, ASP.NET CORE MySQL Deploy website với Raspbian Đối tượng nghiên cứu Đối tượng phạm vi đề tài hướng đến: • Những người bắt đầu bao gồm trẻ em • Người dùng nước quốc tế Kết dự kiến Sau xác định đề tài nghiên cứu, tìm hiểu thực tế, em xây dựng ý tưởng thiết kế website cần đạt mục tiêu sau: Đối với người dùng Website thể hoàn tồn tiếng anh (hạn chế tiếng việt có thể) Có học ơn lại flashcard, quiz hay mini game Từ điển Có thể mua ấn phẩm có quyền Ưu tiên người dùng có tài khoản để: Lưu lại kết kiểm tra Hỏi đáp với cộng đồng người học tiếng anh Tích điểm sau toán Đối với người quản trị Quản lí sản phẩm Quản lí đơn hàng Quản lí tài khoản Các tiêu chí khác Tính thẩm mỹ • Ứng dụng có giao diện đẹp, dễ sử dụng tâm lý thoải mái hút khách hàng sử dụng Tính logic bảo mật • Tạo liên kết logic hình để người dùng chuyển hình cách nhanh thuật tiện • Đảm bảo tính bảo mật thông tin nhạy cảm để tạo cảm giác an tồn cho người dùng Kế hoạch thực hiện: (Mơ tả kế hoạch làm việc) Với thời gian thực từ 07/09/2020 đến 02/01/2021, chia thành sprint với giai đoạn cụ thể: • • Giai đoạn 1: Hoàn thiện phần học tập tiếng anh với chức dành cho người dùng (các học ngữ pháp, từ vựng, flashcard, minigame, quiz, từ điển, ) • Sprint 1: tìm hiểu nghiệp vụ, quy trình website tương tự có Tập trung học tập kiến thức cơng nghệ cần thiết • Sprint 2: Thiết kế chức sở liệu Xây dựng cấu trúc back-end, design hình • Sprint 3: Xây dựng API để thực số chức xác định sprint • Sprint 4: Xây dựng giao diện ứng dụng để thực số chức xác định sprint Giai đoạn 2: Hoàn thành phần tài khoản (đăng nhập, đăng kí, chỉnh sửa thơng tin cá nhân), mua hàng quản lí • Sprint 5: Thiết kế xây dựng phần thương mại website • Sprint 6: Thiết kế xây dựng phần quản lí website Xác nhận CBHD TP HCM, ngày 06 tháng 05 năm 2020 (Ký tên ghi rõ họ tên) Sinh viên (Ký tên ghi rõ họ tên) MỤC LỤC Chương GIỚI THIỆU CHUNG 1.1 Lý chọn đề tài 1.2 Khảo sát trạng 1.3 Mục tiêu đề tài Chương KIẾN THỨC NỀN TẢNG 2.1 ASP.NET Core 2 2.1.1 Tại chọn ASP.NET Core [5] 2.1.2 ASP.NET Core web APIs 2.1.2.1 API Web API [6] 2.1.2.2 Những tính Web API [7] 2.2 Hệ quản trị sở liệu MySQL/MariaDb 2.2.1 Vì chọn sử dụng MySQL [9] 2.2.2 MariaDB 2.2.3 Sự lựa chọn cá nhân 2.3 ReactJs framework [10] [11] 2.4 Apache2 web server [12] 2.4.1 Web server 2.4.2 Apache 10 2.4.3 Một số vấn đề khác 11 XÂY DỰNG HỆ THỐNG 12 Chương 3.1 Xây dựng kiến trúc hệ thống 12 3.1.1 Xác định yêu cầu hệ thống 12 3.1.2 Phân tích yêu cầu hệ thống 13 3.2 Phân tích thiết kế hệ thống 3.2.1 Sơ đồ use case 14 14 3.2.1.1 Sơ đồ 14 3.2.1.2 Danh sách actors 16 3.2.1.3 Danh sách use cases 17 3.2.2 Sơ đồ lớp 18 3.2.3 Phân tích thiết kế CSDL 19 3.2.3.1 Bảng viết ngữ pháp 19 3.2.3.2 Bảng phần ngữ pháp 20 3.2.3.3 Bảng ví dụ ngữ pháp 20 3.2.3.4 Bảng chủ đề từ vựng 20 3.2.3.5 Bảng từ vựng theo chủ đề 21 3.2.3.6 Bảng tài khoản 21 3.2.3.7 Bảng thông tin người dùng 22 3.2.3.8 Bảng điểm người dùng 22 3.2.3.9 Bảng câu hỏi 23 3.2.3.10 Bảng câu trả lời 23 3.2.3.11 Bảng câu trắc nghiệm 24 3.2.3.12 Bảng câu hỏi trắc nghiệm 24 3.3 Thiết kế giao diện 3.3.1 Giao diện ứng dụng 3.4 Phân tích yêu cầu hệ thống 25 25 38 3.4.1 Danh sách User stories 38 3.4.2 Mô tả chi tiết User stories 40 3.4.2.1 US-03: Visitor: Xem danh sách sản phẩm 40 3.4.2.2 US-05: Visitor: Xem chi tiết sản phẩm 41 3.4.2.3 US-06: Visitor: Thêm sản phẩm vào giỏ hàng 41 3.4.2.4 US-07: Visitor: Quản lý giỏ hàng 42 3.4.2.5 US-08: Visitor: Xác nhận đặt hàng 43 3.4.2.6 US-09: Visitor: Đăng nhập & Admin: Đăng xuất 45 3.4.2.7 US-14: Admin: Quản lý danh sách sản phẩm 46 3.4.2.8 US-14-1: Admin: Tìm kiếm sản phẩm 47 3.4.2.9 US-14-2: Admin: Xóa sản phẩm 47 3.4.2.10 US-14-3: Admin: Thêm sản phẩm 48 3.4.2.11 US-14-4: Admin: Cập nhật sản phẩm 49 3.4.2.12 US-18: Admin: Quản lý danh sách đơn hàng 50 3.4.2.13 US-18-1: Admin: Tìm kiếm đơn hàng 51 3.4.2.14 US-18-2: Admin: Cập nhật trạng thái đơn hàng 52 3.4.2.15 US-18-3: Admin: Xem chi tiết đơn hàng 53 3.5 Thiết kế sở liệu 54 3.5.1 Sơ đồ thực thể kết hợp ERD 54 3.5.2 Danh sách Table 54 3.5.3 Chi tiết table MySQL 55 3.5.3.1 Category Table 55 3.5.3.2 Product Table 55 3.5.3.3 Account Table 56 3.5.3.4 AdministrativeDivision Table 56 3.5.3.5 OrderStatus Table 57 1.1.1.1 Cart Table 57 3.5.3.6 CartDetail Table 57 3.5.3.7 Order Table 58 3.6 Thiết kế kiến trúc phần mềm 59 3.6.1 Kiến trúc phía backend 59 3.6.2 Kiến trúc phía frontend 61 KẾT LUẬN, HƯỚNG PHÁT TRIỂN 64 Chương 4.1 Ưu điểm 64 4.2 Nhược điểm 64 4.3 Hướng phát triển 64 Given: Tôi page quản lý đơn hàng And: Tơi nhập thơng tin tìm kiếm When: Tơi nhấp chọn tìm kiếm Then: Tơi thấy danh sách đơn hàng lọc Definition of Done - Đạt Acceptance Criteria - Implement thành code - Hoàn thành Unit test - Build Bảng 30: Bảng tìm kiếm đơn hàng 3.4.2.14 US-18-2: Admin: Cập nhật trạng thái đơn hàng Title Admin: Cập nhật trạng thái đơn hàng Value Statement Là Admin, thay đổi hồn tồn đơn hàng Nhưng tơi cần thay đổi trạng thái đơn hàng Acceptance Thông tin TRẠNG THÁI ĐƠN HÀNG bao gồm: Criteria Đang xử lý; Đang chuẩn bị; Đang giao hàng; Đã giao hàng; Scenario: Admin cập nhật trạng thái đơn hàng thành công Given: Tôi page quản lý đơn hàng When: Tôi nhấp chọn cập nhật trạng thái đơn hàng danh sách đơn hàng And: Tôi chọn trạng thái cần cập nhật Then: Tơi thấy trạng thái đơn hàng đổi Definition of Done - Đạt Acceptance Criteria - Implement thành code 52 - Hoàn thành Unit test - Build Bảng 31: Bảng cập nhật trạng thái đơn hàng 3.4.2.15 US-18-3: Admin: Xem chi tiết đơn hàng Title Admin: Xem chi tiết đơn hàng Value Statement Là Admin, tơi xem chi tiết sản phẩm đơn hàng để chuẩn bị cho khách Acceptance Thông tin ĐƠN HÀNG bao gồm: Mã đơn; Firstname Criteria khách đặt hàng; Lastname khách đặt hàng; Tỉnh thành; Quận/Huyện/Thị xã; Phường/Xã; Số địa chỉ; Ghi chú; Số điện thoại; Giỏ hàng; Scenario: Admin xem chi tiết đơn hàng thành công Given: Tôi page quản lý đơn hàng When: Tôi nhấp chọn xem chi tiết đơn hàng danh sách đơn hàng Then: Tôi thấy chi tiết đơn hàng chọn Definition of Done - Đạt Acceptance Criteria - Implement thành code - Hoàn thành Unit test - Build Bảng 32: Bảng xem chi tiết đơn hàng 53 3.5 Thiết kế sở liệu 3.5.1 Sơ đồ thực thể kết hợp ERD Hình 19: Sơ đồ thực thể kết hợp ERD phần mua hàng quản lí 3.5.2 Danh sách Table STT Tên ERD Category Tên DB Ghi chú/Ý nghĩa category Danh mục phân loại sản phẩm Product product Danh mục sản phẩm Account account Danh mục tài khoản người dùng 54 AdministrativeDivision administrative_division Danh mục đơn vị hành chánh Việt Nam OrderStatus order_status Danh mục trạng thái đơn hàng Cart cart Danh mục giỏ hàng CartDetail cart_detail Danh mục chi tiết giỏ hàng Order Danh mục đơn hàng order Bảng 33: Danh sách table MySQL 3.5.3 Chi tiết table MySQL 3.5.3.1 Category Table KDL DB Ghi chú/Ý nghĩa ID INT (AI, PK) Khóa chính, tự động tăng Title VARCHAR(32) (NN, Khơng null, STT Tên thuộc tính UQ) Bảng 34: Chi tiết Category table 3.5.3.2 Product Table KDL DB Ghi chú/Ý nghĩa ID INT (AI, PK) Khóa chính, tự động tăng Code VARCHAR(8) (NN, Mã sản phẩm người dùng tự UQ) nhập STT Tên thuộc tính Khơng null, Title VARCHAR(32) (NN, UQ) 55 Không null, VARCHAR(1024) Không null, giá trị mặc định: (NN) “No Description” CategoryID INT (NN, FK) Khóa ngoại Category Price INT (NN) Khơng null ImageURL VARCHAR(256) (NN) Không null, giá trị mặc định: Description “default.png” RecordStatus TINYINT (NN) Không null RecordStatus: - 0: Đã xóa - 1: Khơng xóa Bảng 35: Chi tiết Product table 3.5.3.3 Account Table KDL DB Ghi chú/Ý nghĩa ID INT (AI, PK) Khóa chính, tự động tăng Username VARCHAR(32) (NN, Không null, STT Tên thuộc tính UQ) Password Khơng null, lưu dạng BINARY(20) (NN) SHA1 Bảng 36: Chi tiết Account Table 3.5.3.4 AdministrativeDivision Table STT Tên thuộc tính KDL DB Ghi chú/Ý nghĩa ID INT (AI, PK) Khóa chính, tự động tăng FatherId INT Khóa ngoại, đơn vị cha Name VARCHAR(32) (NN, Không null, UQ) Type VARCHAR(32) (NN) 56 Không null, loại đơn vị Level VARCHAR(32) (NN) Không null, phân cấp đơn vị: - “Tỉnh/Thành” - “Quận/Huyện” - “Phường/Xã” Bảng 37: Chi tiết Administrative Divistion Table 3.5.3.5 OrderStatus Table KDL DB Ghi chú/Ý nghĩa ID INT (AI, PK) Khóa chính, tự động tăng Status VARCHAR(32) (NN, Không null, STT Tên thuộc tính UQ) Bảng 38: OrderStatus Table 1.1.1.1 Cart Table KDL DB Ghi chú/Ý nghĩa OrderID INT (PK, FK) Khóa chính, khóa ngoại Order Subtotal INT (NN) Khơng null Giá tạm tính Delivery INT (NN) Không null Discount INT (NN) Không null Total INT (NN) Khơng null STT Tên thuộc tính Bảng 39: Chi tiết Cart Table 3.5.3.6 CartDetail Table KDL DB Ghi chú/Ý nghĩa OrderID INT (PK, FK) Khóa chính, khóa ngoại Cart ProductID INT (PK, FK) Khóa chính, khóa ngoại STT Tên thuộc tính Product 57 Price Không null Giá thời điểm INT (NN) mua Quantity INT (NN) Không null Total INT (NN) Không null Bảng 40: Chi tiết Cart Detail table 3.5.3.7 Order Table STT Tên thuộc tính KDL DB Ghi chú/Ý nghĩa ID INT (PK, AI) Khóa chính, tự động tăng Firstname VARCHAR(32) Không null (NN) Lastname VARCHAR(32) Khơng null (NN) StatusID INT (NN, FK) Khóa ngoại OrderStatus Phone VARCHAR(16) Không null (NN) ProvinceID INT (NN) Khóa ngoại AdministrativeDivision DistrictID INT (NN) Khóa ngoại AdministrativeDivision CommuneID INT (NN) Khóa ngoại AdministrativeDivision Address VARCHAR(256) Không null Số nhà đường (NN) 10 Note VARCHAR(256) Không null Ghi thêm (NN) Bảng 41: Chi tiết Order Table 58 3.6 Thiết kế kiến trúc phần mềm Hệ thống web site bán hàng em bao gồm phần tách biệt frontend backend Trong frontend xây dựng cơng nghệ ReactJS backend xây dựng công nghệ ASP.NET Core 3.6.1 Kiến trúc phía backend Phía backend thiết kế theo mơ hình Layer Trong có layer Controler, Services Repositories; bên cạnh có module Helper Chi tiết thành phần sau: 59 Hình 20: Mơ hình kiến trúc phía back-end - Controllers: dùng để cấu hình xử lý request, response frontend backend Controller nơi định nghĩa xử lý web api Trong đó, Resources nơi định nghĩa loại data nằm request response, với số phương thức chuyển đổi resources models - Services: dùng để định nghĩa class để thực xử lý nghiệp vụ bao gồm repository giúp thao tác database Service sử dụng interface để thực thao tác database cần thiết Các xử lý nghiệp 60 vụ khác thực Ví dụ lưu file vào nhớ Mặc dù việc lưu file service, nơi để định việc lưu file - Repositories: Trong Repositories có ProcedureHelper nhiệm vụ gọi stored procedure để thao tác với database ProcedureHelper sử dụng thư viện Dapper giúp cho việc thao tác với database thông qua store procedure trả DTO Các DTO class định nghĩa tương đồng với kết trả từ procedure - Helpers: Nơi định nghĩa class có nhiệm vụ hỗ trợ, xử lý, thực công việc nhỏ lẻ Chẳng hạng xử lý kết trả về, xử lý thao tác với tập tin 3.6.2 Kiến trúc phía frontend Phía frontend xây dựng dựa quy chuẩn ReactJS Trong có thành phẩn gồm có: Components, Assets, Redux, Utils chi tiết sau: 61 Hình 21: Mơ hình kiến trúc phía front-end 62 - Components/Layouts/Views: thành phần gồm nhiều thư mục source code Nhưng thực nhiệm vụ định nghĩa React component cho trang web - Assets: Thư mục chứa vấn đề liên quan đề styles, font, image - Redux: Thư viện React Redux quen thuộc cần thiết cho việc quản lý state React Và nơi triển khai source code cho Redux Utils: Giống với Helper backend, module dùng để chứa hàm hỗ trợ xử lý cho phía frontend Nó việc gọi API, xử lý lỗi, 63 Chương KẾT LUẬN, HƯỚNG PHÁT TRIỂN 4.1 Ưu điểm Hồn thành u cầu đặt ban đầu, có đầy đủ tính cần thiết website học tiếng anh cho người bắt đầu Giao diện đơn giản, bố cục hợp lý, người dùng dễ dàng theo tác Tốc độ phản hồi thao tác nhanh, tối ưu hóa suất người dùng Sinh viên thực nắm kiến thức tổ chức việc lập trình web Ứng dụng triển khai nghiệm thu thành công máy thật 4.2 Nhược điểm Cịn hạn chế số tính năng: − Tối ưu code chưa tốt nên tốc độ tương tác ứng dụng cịn chậm − Chưa phát triển tính xác thực qua email, số điện thoại cho tài khoản − Do tương tác trang web tiếng Anh nên khó tiếp cận khơng rời bỏ lối tư với ngôn ngữ mẹ đẻ − Chưa tích hợp tốn trực tuyến − Khơng thể hủy đơn hàng đặt 4.3 Hướng phát triển Xây dựng chứa cịn thiếu, hồn thiện chức có Tối ưu hóa code để tăng tốc độ tương tác Tối ưu hóa CSDL hợp lý Hỗ trợ thêm đa ngôn ngữ cho quốc gia Tích hợp tốn trực tuyến 64 TÀI LIỆU THAM KHẢO [1] Y Zhang and Y Luo, “An architecture and implement model for ModelView-Presenter pattern,” in 2010 3rd international conference on computer science and information technology, 2010, vol 8, pp 532–536 [2] “Historical yearly trends in the usage statistics of server-side programming languages for websites.” https://w3techs.com/technologies/history_overview/programming_language/ ms/y [3] D Friends, “History of MySQL.” http://databasefriends.blogspot.com/2014/02/history-of-mysql.html (accessed Aug 01, 2020) [4] B C Zapata, Android studio application development Packt Publ., 2013 [5] A Studio, “Android Studio,” Off IDE Android, 2017 [6] J Gosling, D C Holmes, and K Arnold, “The Java programming language.” Addison-Wesley, 2005 [7] “Ngơn ngữ lập trình ứng dụng Java làm gì?,” 2018 https://devpro.edu.vn/ngon-ngu-lap-trinh-ung-dung-java-co-the-lam-duocnhung-gi [8] “Machine Learning bản.” https://machinelearningcoban.com/ [9] M J Pazzani and D Billsus, “Content-based recommendation systems,” in The adaptive web, Springer, 2007, pp 325–341 [10] G Linden, B Smith, and J York, “Amazon com recommendations: Item-toitem collaborative filtering,” IEEE Internet Comput., vol 7, no 1, pp 76–80, 2003 65 [11] “Dropwizard.” https://www.dropwizard.io/en/latest/ [12] “Apache Spark.” http://spark.apache.org/ 66 ... người dùng Địa email người dùng Số điện thoại người dùng Ảnh đại diện Địa người dùng Người dùng mô tả thân Bảng 11: Bảng thông tin người dùng 3.2.3.8 Bảng điểm người dùng Bảng điểm người dùng. .. vào giỏ hàng 41 3.4.2.4 US-07: Visitor: Quản lý giỏ hàng 42 3.4.2.5 US-08: Visitor: Xác nhận đặt hàng 43 3.4.2.6 US-09: Visitor: Đăng nhập & Admin: Đăng xuất 45 3.4.2.7 US-14: Admin: Quản lý danh... quyền Ưu tiên người dùng có tài khoản để: Lưu lại kết kiểm tra Hỏi đáp với cộng đồng người học tiếng anh Tích điểm sau tốn Đối với người quản trị Quản lí sản phẩm Quản lí đơn hàng Quản lí tài khoản