CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU Hệ điều hành Windows 10 Hệ điều hành và nền tảng để phát triển Tài nguyên .1 Xây dựng các WebApi ReactJs Framework front-end để phát React Native triển ứng dụng web Framework để phát triển ứng dụng mobile Công cụ thiết kế Enterprise Architect 15, Dùng để thiết kế mô hình model Draw.io IDE Visual Studio 2019 Công cụ lập trình Phần mềm giả lập Genymotion Để chạy ứng dụng mobile app Android trên windows DBMS SQL Server 2017 Dùng để tạo và quản lý cơ sở dữ liệu của website Quản lý source Github Lưu trữ và kiểm soát source. Trình duyệt web Opera GX, Cốc Cốc Trình duyệt thử nghiệm Bảng 1.1: Môi trường hoạt động 1. Ràng buộc Môi trường hoạt động phải kết nối internet. Tính cấp thiết của đề tài Tiếng Anh đã và đang là một ngôn ngữ thông dụng nhất thế giới, việc giỏi tiếng Anh sẽ hỗ trợ rất nhiều trong cuộc sống và công việc, tuy nhiên việc học tiếng anh cũng không phải là dễ dàng, với đặc thù là phần từ vựng, chia thì, phát âm, … và đặc thù là người Việt Nam rất ngại việc học ngôn ngữ, chính vì vậy việc có các website và ứng dụng học ngôn ngữ nói chung và tiếng Anh nói riêng là vô cùng cần thiết hiện nay 13 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.
Giới thiệu về .NET Core là một nền tảng phát triển đa mục đích, mã nguồn mở được duy trì bởi Microsoft và cộng đồng .NET trên GitHub. Đó là nền tảng chéo (hỗ trợ Windows, macOS và Linux) và có thể được sử dụng để xây dựng các ứng dụng thiết bị, đám mây và IoT. Đặc điểm của .NET core Đa nền tảng: Chạy trên các hệ điều hành Windows, macOS và Linux. Nhất quán trên các kiến trúc: có thể chạy mã nguồn với cùng một hành vi trên nhiều kiến trúc hệ thống, bao gồm x64, x86 và ARM.
Các công cụ dòng lệnh: Bao gồm các công cụ dòng lệnh dễ sử dụng, có thể được sử dụng để phát triển cục bộ và trong các tình huống tích hợp liên tục. Triển khai linh hoạt: có thể cài đặt song song (cài đặt toàn người dùng hoặc toàn hệ thống). Có thể được sử dụng với các container Docker Tương thích: .NET Core tương thích với .NET Framework, Xamarin và Mono, thông qua. Nguồn mở: Nền tảng .NET Core là nguồn mở, sử dụng giấy phép MIT và Apache 2.NET Core là một dự án.
Được hỗ trợ bởi Microsoft: .NET Core được Microsoft hỗ trợ, theo Hỗ trợ. Thành phần của .NET Core bao gồm các phần sau: .NET Core runtime: cung cấp một hệ thống kiểu, tải lắp ráp, trình thu gom rác, interop gốc và các dịch vụ cơ bản khác. Các thư viện khung .NET Core cung cấp các kiểu dữ liệu nguyên thủy, các kiểu thành phần ứng dụng và các tiện ích cơ bản.NET Core runtime: cung cấp khung để xây dựng các ứng dụng kết nối internet, điện toán đám mây hiện đại, chẳng hạn như ứng dụng web, ứng dụng IoT và phụ trợ di động.NET Core SDK và trình biên dịch ngôn ngữ (Roslyn và F #) cho phép trải nghiệm nhà phát triển. 14 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT Dotnet command, được sử dụng để khởi chạy các ứng dụng .NET Core và các lệnh CLI.
Nó chọn thời gian chạy và lưu trữ thời gian chạy, cung cấp chính sách tải lắp ráp và khởi chạy các ứng dụng và công cụ. Giới thiệu ReactJS được hiểu nôm na là một thư viện trong đó có chứa nhiều JavaScript mã nguồn mở và cha đẻ của ReactJS đó chính là một ông lớn với cái tên ai cũng biết đó chính là Facebook. Mục đích của việc tạo ra ReactJS là để tạo ra những ứng dụng website hấp dẫn với tốc độ nhanh và hiệu quả cao với những mã hóa tối thiểu. Và mục đích chủ chốt của ReactJS đó chính là mỗi website khi đã sử dụng ReactJS thì phải chạy thật mượt thật nhanh và có khả năng mở rộng cao và đơn giản thực hiện.
Thành phần chính của ReactJs Redux: Đây có thể gọi là một phần cực kỳ quan trọng đối với ReactJS và không một ai sử dụng mà không biết đến redux. Trong một reactJS không bao gồm những module chuyên dụng để xử lý dữ liệu vì thế ReactJS được thiết lập một cách độc lập bằng việc chia nhỏ view thành các component nhỏ để chúng liên kết chặt chẽ với nhau hơn. Sự liên kết và mối quan hệ giữa các component trong ReactJS cần được quan tâm đặc biệt là vì luồng dữ liệu một chiều từ cha xuống con là luồng dữ liệu duy nhất trong một reactJS việc sử dụng luồng dữ liệu một chiều này có một chút khó khăn cho những người mới tìm hiểu sử dụng và ứng dụng vô các dự án tuy nhiên bên cạnh mặt hạn chế vẫn có mặt nổi trội đó chính là ReactJS sẽ phát huy được hết tất cả chức năng vai trò của mình khi sử dụng cơ chế một chiều này vì nó sẽ làm cho các chức năng của view trở nên phức tạp hơn. Virtual Dom: đây là phần mà hầu như những Framework đều sử dụng Virtual dom và sử dụng nó như một ReactJS khi mà virtual dom thay đổi, điều đặc biệt ở đây là chúng ta không cần thao tác trực tiếp trên dom mà vẫn có thể thấy được view và thấy được những thay đổi đó.
Lợi ích khi sử dụng ReactJs • Lợi ích đầu tiên mà ReactJS đó chính là việc tạo ra cho chính bản thân nó một dom ảo, đây là nơi mà các component được tồn tại trên đó. • Lợi ích thứ hai mà ReactJS đem lại đó chính là việc viết các đoạn code JS sẽ trở nên dễ dàng hơn vì nó sử dụng một cú pháp đặc biệt đó chính là cú pháp JSX nghĩa là cú pháp này cho phép ta trộn được giữa code HTML và Javascript. 15 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT • Có nhiều công cụ phát triển là lợi ích tiếp theo của ReactJS • Thân thiện với SEO 2. Giới thiệu về React Native React Native là một framework do Facebook phát triển hướng đến tối ưu hóa hiệu năng Hybrid và tối giản số lượng ngôn ngữ Native di động 2.
Cách hoạt động của React Native Bằng cách tích hợp 2 thread là Main Thread và JS Thread cho ứng dụng mobile. Với Main Thread sẽ đảm nhận vai trò cập nhật giao diện người dùng(UI). Sau đó sẽ xử lý tương tác người dùng. Trong khi đó, JS Thread sẽ thực thi và xử lý code Javascript.
Hai luồng này hoạt động độc lập với nhau. Để tương tác được với nhau hai Thread sẽ sử dụng một Bridge(cầu nối). Cho phép chúng giao tiếp mà không phụ thuộc lẫn nhau, chuyển đổi dữ liệu từ thread này sang thread khác. Dữ liệu từ hai Thread được vận hành khi tiếp nối dữ liệu cho nhau.
Ưu điểm của React Native • Tối ưu thời gian. • Hiệu năng ổn định. • Tiết kiệm chi phí. • Đội ngũ phát triển ứng dụng không quá lớn.
• Ứng dụng tin cậy, ổn định. • Xây dựng ứng dụng ít native code nhất cho nhiều hệ điều hành khác nhau. • Trải nghiệm người dùng tốt hơn khi so sánh với ứng dụng Hybrid. Giới thiệu về SQL Server SQL Server chính là một hệ quản trị dữ liệu quan hệ sử dụng câu lệnh SQL để trao đổi dữ liệu giữa máy cài SQL Server và máy Client.
Một Relational Database Management System – RDBMS gồm có: databases, database engine và các chương trình ứng dụng dùng để quản lý các bộ phận trong RDBMS và những dữ liệu khác. Các thành cơ bản trong SQL Server gồm có: Reporting Services, Database Engine, Integration Services, Notification Services, Full Text Search Service,… 16 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT Tất cả kết hợp với nhau tạo thành một giải pháp hoàn chỉnh giúp cho việc phân tích và lưu trữ dữ liệu trở nên dễ dàng hơn. • Database Engine (Lõi của SQL Server) • Replication (Cơ chế tạo bản sao): • Integration Services • Analysis Services: • Notification Services • Reporting Services • Full Text Search Service • Service Broker 2. Tại sao lại sử dụng SQL trong thiết kế Website SQL Server không phải là một hệ quản trị cơ sở dữ liệu độc lập mà nó chỉ là một thành phần với vai trò ngôn ngữ là công cụ giao tiếp giữa hệ cơ sở dữ liệu và người dùng.
Chính vì thế nó được sử dụng trong các dịch vụ thiết kế web đẹp với chức năng giao tiếp với người dùng với các vai trò sau: • SQL là một ngôn ngữ đòi hỏi có tính tương tác cao • SQL là một ngôn ngữ lập trình cơ sở dữ liệu • SQL là một ngôn ngữ lập trình quản trị cơ sở dữ liệu • SQL là một ngôn ngữ lập trình cho các hệ thống chủ khách • SQL là ngôn ngữ truy cập dữ liệu trên Internet • SQL là ngôn ngữ cơ sở dữ liệu phân tán 17 CHƯƠNG 3: PHÂN TÍCH VÀ MÔI TRƯỜNG HÓA YÊU CẦU CHƯƠNG 3: PHÂN TÍCH VÀ MÔI TRƯỜNG HÓA YÊU CẦU 3. Phân tích yêu cầu chức năng 3. Chức năng quản lý quiz 3. Mô tả Chức năng dùng để thêm, chỉnh sửa, xóa quiz trong hệ thống.
Mức độ ưu tiên: cao 3. Yêu cầu chức năng Yêu cầu Mô tả 1. Thêm quiz Thêm quiz mới vào hệ thống: Câu hỏi, đáp án, … 2. Xóa quiz Xóa quiz ra khỏi hệ thống Chỉnh sửa thông tin, nội dung quiz trong hệ thống cho 3.
Chỉnh sửa quiz phù hợp 4. Thêm câu hỏi Thêm, xóa câu hỏi khỏi quiz Bảng 3.1: Yêu cầu chức năng quản lý quiz 3. Chức năng quản lý lộ trình học 3. Mô tả Quản lý các lộ trình học có trên hệ thống.
Lộ trình sẽ bao gồm các bài học. Mức độ ưu tiên: cao 3. Yêu cầu chức năng Yêu cầu Mô tả 1. Thêm lộ trình học Thêm lộ trình học mới.
Cập nhật nội dung lộ trình theo yêu cầu. Cập nhật lộ trình học bỏ, sắp xếp bài học. Xóa lộ trình học Xóa lộ trình học.2: Yêu cầu chức năng quản lý tài khoản 3. Chức năng quản lý bài học 3.
Mô tả 18 CHƯƠNG 3: PHÂN TÍCH VÀ MÔI TRƯỜNG HÓA YÊU CẦU Quản lý các bài học có trên hệ thống, bài học là phần chi tiết của lộ trình học. Bài học bao gồm các kịch bản học. Mức độ ưu tiên: cao 3. Yêu cầu chức năng Yêu cầu Mô tả 1.
Thêm bài học Thêm bài học mới. Cập nhật nội dung bài học theo yêu cầu. Cập nhật bài học nội dung các kịch bản có trong bài học. Xóa bài học Xóa bài học.3: Yêu cầu chức năng quản lý tài khoản 3.
Chức năng quản lý câu hỏi 3. Mô tả Chức năng dùng để quản lý ngân hàng câu hỏi có trên hệ thống. Mức độ ưu tiên: Cao 3.