1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xây dựng website học tiếng anh

82 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Website Học Tiếng Anh
Tác giả Văn Quý Thọ
Người hướng dẫn PGS.TS. Phan Huy Khánh
Trường học Đại Học Đà Nẵng Trường Đại Học Sư Phạm Kỹ Thuật
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ Án Tốt Nghiệp Đại Học
Năm xuất bản 2022
Thành phố Đà Nẵng
Định dạng
Số trang 82
Dung lượng 5,22 MB

Nội dung

Giải pháp công nghệ - Ngôn ngữ lập trình: Ruby, framework Ruby on Rails - Hệ quản trị cơ sở dữ liệu: PostgreSQL... Các lợi ích khi sử dụng hệ quản trị cơ sở dữ liệu PostgreSQL Ra mắt ngư

Trang 1

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

XÂY DỰNG WEBSITE HỌC TIẾNG ANH

Sinh viên thực hiện : Văn Quý Thọ

Trang 3

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

KHOA CÔNG NGHỆ SỐ

ĐỒ ÁN TỐT NGHIỆP

ĐẠI HỌC

NGÀNH: CÔNG NGHỆ THÔNG TIN

CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN

ĐỀ TÀI:

XÂY DỰNG WEBSITE HỌC TIẾNG ANH

Giảng viên hướng dẫn duyệt

Trang 7

Tên đề tài: Xây dựng website học tiếng Anh

Sinh viên thực hiện: Văn Quý Thọ

Mã SV: 1811505310145 Lớp: 18T1

Nội dung tóm tắt :

Ngày nay, xu hướng phát triển công nghiêp hóa – hiện đại hóa đất nước ngàycàng được đẩy mạnh Để có thể đáp ứng được khối công việc ngày càng gia tăng, đòihỏi con người phải có phương pháp quản lý hợp lý giúp tiết kiệm thời gian và chi phí.Tuy nhiên không phải ai cũng có thể học tiếng Anh một cách dễ dàng và thuậnlợi Nểu bạn là một người bận rộn, trừ khi bạn sẵn sàng hy sinh giấc ngủ và phá vỡcuộc sống đang cân bằng của bạn thì ban mới hòa mình vào tiếng Anh đươc Tuynhiên sự phổ biến của Internet, nó có thể giúp bạn học tiếng Anh một cách dễ dànghơn, bạn có thể linh hoạt thời gian để học k nhất thiết phải đến trường lớp hay trungtâm để học

Xây dựng website hỗ trợ quá trình học tiếng Anh thuân lợi, linh hoạt, góp phầngiảm thời gian và chi phí để đến trường lớp hoặc các trung tâm dạy tiếng Anh và tăng

sự tiện lợi cho mọi người trong thời đại công nghệ thông tin phát triển mạnh như hiệnnay

Một số nội dung của website:

- Trang chủ, thống kê: thống kê về số lượng người dùng, khóa học, bài học

- Trang quản lý khóa học: Trang này là nơi các quản trị viên có thể cập nhật các thôngtin về khóa học

- Trang quản lý bài học: Trang này là nơi các quản trị viên có thể cập nhật các thông tin

về bài học và bài kiểm tra của mỗi bài học

- Trang quản lý từ vựng: Trang này là nơi các quản trị viên có thể cập nhật các thông tin

về từ vựng thuộc bài học nào

- Trang khóa học: là trang dành cho người dùng vãng lai trên Internet xem được nhữngkhóa học hiện có trên website

Trang 8

thông qua các nhóm hoặc nhắn tin riếng cho nhau.

Trang 9

KHOA CÔNG NGHỆ SỐ Độc lập - Tự do - Hạnh phúc

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆPGiảng viên hướng dẫn: PGS.TS Phan Huy Khánh

Sinh viên thực hiện: Văn Quý Thọ Mã SV: 1811505310145

1 Tên đề tài

- Xây dựng website học tiếng Anh

2 Các số liệu, tài liệu ban đầu

3 Nội dung chính của đồ án

- Mở đầu

- Chương 1: Cơ sở lý thuyết

- Chương 2: Phân tích thiết kế hệ thống

- Chương 3: Xây dựng chương trình

- Kết luận và hướng phát triển

4 Các sản phẩm dự kiến

- Hệ thống website học tiếng Anh

- File báo cáo hoàn chỉnh

5 Ngày giao đồ án: 14/02/2022

6 Ngày nộp đồ án: 20/06/2022

Đà Nẵng, ngày 20 tháng 06 năm 2022

Trang 11

Lời đầu tiên, em xin chân thành cảm ơn Trường Đại học Sư Phạm Kỹ Thuật đãtạo điều kiện để em có được môi trường học tập và phát triển bản thân tốt nhất

Đặc biệt em xin gửi lời cảm ơn chân thành và sâu sắc tới PGS.TS Phan HuyKhánh đã hướng dẫn, giúp đỡ em trong suốt thời gian thực hiện đề tài này

Em xin chân thành cảm ơn thầy cô bộ môn đã tận tình giảng dạy, truyền đạt kiếnthức cho chúng em trong các kỳ học vừa qua

Xin chân thành cảm ơn tất cả bạn bè đã động viên, giúp đỡ chúng em trong thờigian học tập và hoàn thành đồ án

Mặc dù đã cố gắng nhiều nhưng sẽ không thể tránh khỏi những thiếu sót vì thờigian hạn chế và kiến thức trong đề tài làm đồ án Em kính mong nhận được sự góp ýcủa quý Thầy Cô và các bạn để hoàn thành tốt hơn nữa

Em xin chân thành cảm ơn!

Trang 12

Tôi xin cam đoan rằng đồ án tốt nghiệp “Xây dựng website học tiếng Anh” làcông trình nghiên cứu độc lập dưới sự hướng dẫn của giảng viên PGS.TS Phan HuyKhánh Những tài liệu tham khảo đã được liệt kê tại phần tài liệu tham khảo Các nộidung nghiên cứu và kết quả trong đề tài này là hoàn toàn trung thực

Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm trướchội đồng cũng như kết quả đồ án của mình

Sinh viên thực hiện

Trang 14

MỤC LỤC

LỜI CẢM ƠN vi

CAM ĐOAN vii

DANH MỤC BẢNG BIỂU 8

DANH MỤC HÌNH VẼ 9

MỞ ĐẦU 11

1 Mục tiêu đề tài 11

2 Đối tượng nghiên cứu và phạm vi nghiên cứu 12

a Đối tượng nghiên cứu 12

b Phạm vi nghiên cứu 12

3 Phương pháp nghiên cứu 12

4 Giải pháp công nghệ 12

5 Cấu trúc đồ án 12

Chương 1 CƠ SỞ LÝ THUYẾT 13

1.1 Giới thiệu PostgreSQL 13

1.1.2 Các đặc điểm của PostgreSQL 14

1.1.2.1 Các lợi ích khi sử dụng hệ quản trị cơ sở dữ liệu PostgreSQL 14 1.2 Giới thiệu ngôn ngữ lập trình Ruby 18

1.2.2 Ưu và nhược điểm của Ruby 18

1.2.2.1 Ưu điểm 18

1.2.2.2 Nhược điểm của Ruby 19

1.2.3 Giới thiệu về framework Ruby on Rails 19

1.3 Giới thiệu về Visual Studio Code 21

Chương 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 22

Trang 15

2.1 Phân tích tác nhân và chức năng 22

2.1.1 Xác định các tác nhân 22

2.1.2 Các yêu cầu chức năng 22

2.1.2.1 Khách hàng vãng lai 22

2.1.2.2 Khách hàng thành viên 23

2.1.2.3 Quản trị viên 23

2.2 Sơ đồ use-case 24

2.3 Sơ đồ hoạt động 25

2.3.1 Khách hàng vãng lai 25

2.3.1.1 Sơ đồ hoạt động xem các khóa học 25

2.3.1.2 Sơ đồ hoạt động tìm kiếm 26

2.3.2 Khách hàng thành viên 27

2.3.2.1 Sơ đồ hoạt động Đăng nhập 27

2.3.2.2 Sơ đồ hoạt động Đăng ký khóa học 28

2.3.2.3 Sơ đồ hoạt động Chat(nhắn tin) 28

2.3.2.4 Sơ đồ hoạt động bình luận khóa học 29

2.3.2.5 Sơ đô hoạt động Học từ vựng 29

2.3.3 Quản trị viên 30

2.3.3.1 Sơ đồ hoạt động Đăng nhập 30

2.3.3.2 Sơ đồ hoạt động Cập nhật nhân viên 31

2.3.3.3 Sơ đồ hoạt động Cập nhật khóa học 32

2.3.3.4 Sơ đồ hoạt động Cập nhật bài học 33

2.3.3.5 Sơ đồ hoạt động Cập nhật từ vựng 34

2.4 Sơ đồ Mô hình thực thể liên kết 34

2.5 Thiết kế cơ sở dữ liệu 35

Trang 16

2.5.2 Bảng Người Dùng(user) 35

2.5.3 Bảng Khóa Học (course) 36

2.5.4 Bảng bài kiểm tra (kiemtra) 36

2.5.5 Bảng Bài Học (lesson) 37

2.5.6 Bảng Từ Vựng (word) 37

2.5.7 Bảng Đăng Ký Khóa Học(user_course) 38

2.5.8 Bảng Bài Học Đã Học (user_lesson) 39

2.5.9 Bảng Từ Vựng Đã Học (user_word) 39

2.5.10 Bảng Bình Luận (comments) 40

2.5.11 Bảng Phòng Chat (room) 40

2.5.12 Bảng Tin Nhắn (nessages) 41

2.5.13 Bảng Những Người Tham Gia (participants) 41

2.5.14 Bảng Câu Hỏi (question) 42

2.5.15 Bảng Đáp Án (answers) 42

2.6 Kịch bản cho các use-case 43

2.6.1 Xem khóa học 43

2.6.2 Tìm kiếm khóa học 43

2.6.3 Xem chi tiết khóa học 44

2.6.4 Đăng nhập 45

2.6.5 Bình luận 45

2.6.6 Chat 46

2.6.7 Cập nhật người dùng 46

2.6.8 Cập nhật khóa học 47

2.6.9 Cập nhật bài học 48

2.6.10 Cập nhật từ vựng 48

Trang 17

2.6.11 Thống kê 49

Chương 3 XÂY DỰNG CHƯƠNG TRÌNH 50

3.1 Công cụ xây dựng chương trình 50

3.2 Giao diện chương trình 51

3.2.1 Giao diện người dùng 51

3.2.1.1 Giao diện trang chủ 51

3.2.1.2 Giao diện khóa học 52

3.2.1.3 Giao diện chi tiết khóa học 53

3.2.1.4 Giao diện Chat 54

3.2.1.5 Giao diện bình luận 55

3.2.1.6 Giao diện chi tiết bài học 55

3.2.1.7 Giao diện bài kiểm tra 56

3.2.1.8 Giao diện cập nhật thông tin tài khoản 57

3.2.1.9 Giao diện danh sách các từ vựng 58

3.2.1.10 Giao diện đăng nhập 59

3.2.1.11 Giao diện đăng ký tài khoản 60

3.2.2 Giao diện trang quản trị 61

3.2.2.1 Giao diện trang chủ 61

3.2.2.2 Giao diện quản lý tài khoản 63

3.2.2.3 Giao diện quản lý khóa học 64

3.2.2.4 Giao diện quản lý bài học 65

3.2.2.5 Giao diện quản lý từ vựng 66

3.2.2.6 Giao diện chỉnh sửa khóa học 67

3.2.2.7 Giao diện chỉnh sửa bài học 67

3.2.2.8 Giao diện thêm mới bài kiểm tra 68

Trang 18

3.2.2.9 Giao diện thêm mới từ vựng 69

3.2.2.10 Giao diện chình sửa từ vựng 69

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 71

3.3 Kết luận 71

3.4 Hướng phát triển 71

TÀI LIỆU THAM KHẢO 72

Trang 19

DANH MỤC BẢNG BIỂU

Bảng 2.1: Bảng người dùng 35

Bảng 2.2: Bảng khóa học 36

Bảng 2.3: Bảng kiểm tra 36

Bảng 2.4: Bảng bài học 37

Bảng 2.5: Bảng từ vựng 37

Bảng 2.6: Bảng Đăng ký khóa học 38

Bảng 2.7: Bảng bài học đang học 39

Bảng 2.8: Bảng từ vựng đã học 39

Bảng 2.9: Bảng bình luận 40

Bảng 2.10: Bảng phòng chat 40

Bảng 2.11: Bảng tin nhắn 41

Bảng 2.12: Bảng participants 41

Bảng 2.13: Bảng câu hỏi 42

Bảng 2.14: Bảng đáp án 43

Bảng 2.15: Kịch bản usecase Xem khóa học 43

Bảng 2.16: Kịch bản usecase Tìm kiếm khóa học 43

Bảng 2.17: Kịch bản usecase Xem chi tiết khóa học 44

Bảng 2.18: Kịch bản usecase Đăng nhập 45

Bảng 2.19: Kịch bản usecase Bình luận 45

Bảng 2.20: Kịch bản usecase Chat 46

Bảng 2.21: Kịch bản usecase Cập nhật người dùng 46

Bảng 2.22: Kịch bản usecase Cập nhật khóa học 47

Bảng 2.23: Kịch bản usecase Cập nhật bài học 48

Bảng 2.24: Kịch bản usecase Cập nhật từ vựng 48

Bảng 2.25: Kịch bản usecase Thống kê 49

Trang 20

DANH MỤC HÌNH VẼ

Hình 1.1: PostgreSQL 13

Hình 1.2: Ruby 18

Hình 1.3: Visual Studio Code 22

Hình 2.1: Sơ đồ use-case tổng quát 24

Hình 2.2: Sơ đồ hoạt động xem danh sách khóa học 25

Hình 2.3: Sơ đồ hoạt động tìm kiếm 26

Hình 2.4: Sơ đồ hoạt động Đăng nhập 27

Hình 2.5: Sơ đồ hoạt động Đăng ký khóa học 28

Hình 2.6: Sơ đồ hoạt động Chat(nhắn tin) 28

Hình 2.7: Sơ đồ hoạt động Bình luận khóa học 29

Hình 2.8: Sơ đồ hoạt động Học từ vựng 29

Hình 2.9: Sơ đồ hoạt động Đăng nhập 30

Hình 2.10: Sơ đồ hoạt động Cập nhật nhân viên 31

Hình 2.11: Sơ đồ hoạt động Cập nhật khóa học 32

Hình 2.12: Sơ đồ hoạt động Cập nhật bài học 33

Hình 2.13: Sơ đồ hoạt động Cập nhật từ vựng 34

Hình 2.14: Sơ đồ mô hình liên kết thực thể 35

Hình 3.1: Giao diện trang chủ 52

Hình 3.2: Giao diện khóa học 52

Hình 3.3: Chi tiết khóa học 53

Hình 3.4: Giao diện chat 54

Hình 3.5: Chi tiết bài học 55

Hình 3.6: Giao diện bài kiểm tra 56

Hình 3.7: Giao diện cập nhật thông tin tài khoản 57

Hình 3.8: Giao diện danh sách từ vựng 58

Hình 3.9: Giao diện đăng nhập 59

Hình 3.10: Giao diện đăng ký 60

Hình 3.11: Giao diện trang chủ trang quản trị 62

Hình 3.12: Giao diện quản lý người dùng 63

Trang 21

Hình 3.13: Giao diện quản lý khóa học 64

Hình 3.14: Giao diện quản lý bài học 65

Hình 3.15: Giao diện quản lý từ vựng 66

Hình 3.16: Giao diện chỉnh sửa khóa học 67

Hình 3.17: Giao diện chỉnh sửa bài học 67

Hình 3.18: Giao diện thêm mới bài kiểm tra 68

Hình 3.19: Giao diện thêm mới từ vựng 69

Hình 3.20: Giao diện chỉnh sửa từ vựng 70

Trang 22

MỞ ĐẦU

Tiếng Anh hiện nay là ngôn ngữ khá phổ biển, nó dường như được dùng trong tất

cả các mọi lĩnh vực của cụôc sống Vì thế học tiếng Anh là thật sự cần thiết ngày này.Hơn nữa, tiếng Anh được coi là ngôn ngữ kinh doanh - bạn phải thành thạo nó nếumuốn có được nhiều hợp đồng, được thăng tiến trong công việc

Tuy nhiên không phải ai cũng có thể học tiếng Anh một cách dễ dàng và thuậnlợi Nểu bạn là một người bận rộn, trừ khi bạn sẵn sàng hy sinh giấc ngủ và phá vỡcuộc sống đang cân bằng của bạn thì ban mới hòa mình vào tiếng Anh đươc Tuynhiên sự phổ biến của Internet, nó có thể giúp bạn học tiếng Anh một cách dễ dànghơn, bạn có thể linh hoạt thời gian để học k nhất thiết phải đến trường lớp hay trungtâm để học

Xây dựng website hỗ trợ quá trình học tiếng Anh thuân lợi, linh hoạt, góp phầngiảm thời gian và chi phí để đến trường lớp hoặc các trung tâm dạy tiếng Anh và tăng

sự tiện lợi cho mọi người trong thời đại công nghệ thông tin phát triển mạnh như hiệnnay

Hướng tới việc ứng dụng thực tế, đánh giá website từ người dùng để có thể cảithiện website một cách tối ưu hơn và có thể phát triển rộng hơn như các website yêucẩu phải trả phí

Trang 23

o Xem thông tin các khóa học

o Đăng ký các khóa học

o Bình luận

o Làm bài kiểm tra mỗi khi hoàn thành một bài học

o Nhắn tin với người dùng khác

o Xem danh sách các từ vựng của những khóa học đã đăng ký

o Đổi mật khẩu và chỉnh sửa, cập nhật thông tin cá nhân

- Quản trị viên

o Đăng nhập vào website

o Quản lý tài khoản người dùng

o Quản lý khóa học

o Quản lý bài học

o Quản lý các từ vựng

o Thống kê

2 Đối tượng nghiên cứu và phạm vi nghiên cứu

a Đối tượng nghiên cứu

Những người có mong muốn học tiếng Anh

b Phạm vi nghiên cứu

Đề tài được áp dụng đối với tất cả mọi người

3 Phương pháp nghiên cứu

- Nghiên cứu lý thuyết : thu thập thông tin qua sách, các tài liệu, trang web để tìm đượccác cơ sở lý thuyết liên quan vấn đề mình nghiên cứu

- Triển khai thực nghiệp: xây dựng website

4 Giải pháp công nghệ

- Ngôn ngữ lập trình: Ruby, framework Ruby on Rails

- Hệ quản trị cơ sở dữ liệu: PostgreSQL

Trang 24

- Công cụ hỗ trợ: Visual studio code, Dbeaver

5 Cấu trúc đồ án

Mở đầu

Chương 1: Cơ sở lý thuyết

Chương 2: Phân tích thiết kế hệ thống

Chương 3: Xây dựng chương trình

Kết luận và hướng phát triển

Tài liệu tham khảo

Trang 25

Chương 1

CƠ SỞ LÝ THUYẾT1.1 Giới thiệu PostgreSQL

Hệ quản trị cơ sở dữ liệu PostgreSQL là một hệ thống quản trị cơ sở dữ liệu

quan hệ-đối tượng (object-relational database management system) có mục đíchchung, hệ thống cơ sở dữ liệu mã nguồn mở tiên tiến nhất hiện nay PostgreSQL đượcphát triển dựa trên PostgreSQL 4.2 tại phòng khoa học máy tính Berkeley, Đại họcCalifornia

PostgreSQL được thiết kế để chạy trên các nền tảng tương tự UNIX Tuy nhiên,PostgreSQL sau đó cũng được điều chỉnh linh động để có thể chạy được trên nhiềunền tảng khác nhau như Mac OS X, Solaris và Windows PostgreSQL là một phầnmềm mã nguồn mở miễn Mã nguồn của phần mềm khả dụng theo license củaPostgreSQL, một license nguồn mở tự do Theo đó, bạn sẽ được tự do sử dụng, sửa đổi

và phân phối PostgreSQL dưới mọi hình thức

Trang 26

Hình 1.1.1.1.1.1: PostgreSQL

1.1.2 Các đặc điểm của PostgreSQL

Do có nền tảng công nghệ mạnh mẽ, Postgres có hoàn toàn có khả năng xử lýnhiều tiến trình rất hiệu quả Sự hỗ trợ đồng thời đạt được mà không cần đọc các khóanhờ vào sự thực hiện của Multiversion Concurrency Control (MVCC), mà nó cũngđảm bảo việc tuân thủ theo ACID

PostgreSQL là hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở tiên tiến mà mụcđích chính là tuân thủ theo chuẩn và khả năng mở rông PostgreSQL hay còn gọi làPostgree áp dụng chuẩn SQL ANSI/IOS cùng với các phiên bản

Ngày nay, PostgreSQL là một phần quan trọng của ngành dữ liệu GIS cho tổ chứcchính phủ, ngành ngân hàng, thương mại, công nghệ web, PostgreSQL hoàn toànkhông bị quản lý bởi bất kỳ tổ chức nào Tuy vậy, việc không bị quản lý bởi bất kỳ tổchức nào đôi khi lại là yếu điểm của PostgreSQL

1.1.2.1 Các lợi ích khi sử dụng hệ quản trị cơ sở dữ liệu PostgreSQL

Ra mắt người dùng hoàn toàn miễn phí, hệ quản trị cơ sở dữ liệu PostgreSQL mang đến rất nhiều những lợi ích thiết thực, được ứng dụng trong nhiều dự án của các

công ty công nghệ, một trong số đó có thể kể đến những công ty chuyên lập trìnhnhư MonaMedia, Misa,… cùng chúng tôi tìm hiểu những lợi ích thiết thực củaPostgreSQL ngay dưới đây:

1.1.2.1.1 Kiểm soát đồng thời nhiều phiên bản

Postgres là DBMS đầu tiên triển khai điều khiển đồng thời nhiều phiên bản(MVCC), có nghĩa là đọc không bao giờ chặn việc ghi và ngược lại Tính năng này làmột trong những lý do chính tại sao các doanh nghiệp thích Postgres hơn MySQL.Như Postgres giải thích, "Không giống như hầu hết các hệ thống cơ sở dữ liệu khác sửdụng khóa để kiểm soát đồng thời, Postgres duy trì tính nhất quán của dữ liệu bằngcách sử dụng mô hình đa vũ trụ Điều này có nghĩa là trong khi truy vấn cơ sở dữ liệu,

mỗi giao dịch sẽ thấy một ảnh chụp nhanh dữ liệu ( phiên bản cơ sở dữ liệu ) như một

số thời gian trước, bất kể trạng thái hiện tại của dữ liệu cơ bản Điều này bảo vệ giaodịch khỏi việc xem dữ liệu không nhất quán có thể do (khác) cập nhật giao dịch đồng

Trang 27

thời trên cùng các hàng dữ liệu, cung cấp sự cô lập giao dịch cho mỗi phiên cơ sở dữ

liệu

Sử dụng cái mà Oracle gọi là 'cách ly ảnh chụp nhanh', MVCC cho phép nhiềungười đọc và người viết tương tác đồng thời với cơ sở dữ liệu Postgres, loại bỏ nhucầu khóa đọc-ghi mỗi khi ai đó tương tác với dữ liệu Một lợi ích phụ là quá trình nàycung cấp một sự thúc đẩy hiệu quả lớn

1.1.2.1.3 Lưu trữ dữ liệu

Một điểm khác biệt chính giữa PostgreSQL và các hệ thống cơ sở dữ liệu quan hệtiêu chuẩn là PostgreSQL lưu trữ nhiều thông tin hơn trong danh mục của nó: khôngchỉ thông tin về bảng và cột, mà còn thông tin về kiểu dữ liệu, hàm, phương pháp truycập, v.v." của Postgres Người dùng có thể sửa đổi các bảng này, có nghĩa là ngườidùng có thể mở rộng Postgres, không giống như hầu hết các hệ thống cơ sở dữ liệuthông thường, đòi hỏi các thay đổi được mã hóa cứng trong mã nguồn để sửa đổi phầnmềm

1.1.2.1.4 Tính năng phong phú

PostgreSQL nguyên bản hỗ trợ NoSQL cũng như một tập hợp các kiểu dữ liệuphong phú, bao gồm Kiểu số, Kiểu Boolean, Địa chỉ mạng, Kiểu chuỗi bit, Mảng,Kiểu kết hợp, Kiểu định danh đối tượng, Kiểu giả và thậm chí cả Kiểu hình học nhưĐiểm, Đoạn đường , Hộp, Đường dẫn, Đa giác và Vòng tròn Nó cũng hỗ trợ JSON,hstore và XML và người dùng thậm chí có thể thêm các kiểu mới bằng cách sửdụng CREATE TYPE lệnh Postgres cũng hỗ trợ rất nhiều cú pháp SQL, chẳng hạnnhư biểu thức bảng thông thường, hàm Windows và kế thừa bảng

PostgreSQL hoạt động tốt hơn khi phải chạy nhiều truy vấn phức tạp dưới tảinặng Với các hoạt động đọc-ghi phức tạp yêu cầu xác thực dữ liệu, PostgreSQL là

Trang 28

một lựa chọn cơ sở dữ liệu tuyệt vời Tuy nhiên, ORDBMS có thể bị chậm khi có cáchoạt động chỉ đọc (đó là khi MySQL vượt trội).

1.1.2.1.5 Cộng đồng

Postgres tuyên bố đây là 'cơ sở dữ liệu mã nguồn mở tiên tiến nhất trên thịtrường', và đây không phải là sự khoe khoang rỗng tuếch như nhiều người dùng khẳngđịnh táo bạo này Không giống như MySQL, được quản lý bởi Oracle, Postgres đượcgiám sát bởi một cộng đồng các nhà phát triển sôi động, những người có động lực cao

để vừa sử dụng sản phẩm vừa giúp những người khác khám phá nó và giữ cho nó hoạtđộng trơn tru

Dịch vụ hỗ trợ của bên thứ ba có sẵn, nhưng vì Postgres thuộc sở hữu của cộngđồng, nên không có công ty thương mại nào hỗ trợ nó như MySQL với Oracle Tuynhiên, cộng đồng là một cộng đồng có tính tương tác cao và cùng một cộng đồng hỗtrợ và cập nhật liên tục nền tảng thông qua Nhóm phát triển toàn cầu PostgreSQL.1.1.2.1.6 Dữ liệu hình học

Dữ liệu hình học nhanh chóng trở thành một yêu cầu cốt lõi cho nhiều ứng dụng.PostgreSQL từ lâu đã hỗ trợ một loạt kiểu dữ liệu hình học như points, lines, circles,

và polygons Kiểu dữ liệu PATH là một trong số đó Một path bao gồm nhiều điểmtrong một chuỗi và có thể là mở (điểm đầu và điểm cuối không nối với nhau) hoặcđóng (điểm đầu và điểm cuối nối với nhau) Hãy sử dụng một ví dụ đường mòn đi bộđường dài như là một path Trong trường hợp này, đường mòn đi bộ đường dài của tôi

là một vòng lặp vì thế điểm bắt đầu và điểm kết thúc của tôi được nối với nhau, và vìvậy path của tôi là đóng Cặp ngoặc đơn xung quanh tập các tọa độ báo hiệu một pathđóng trong khi một cặp ngoặc [ ] báo hiệu path mở

Phần mở rộng PostGIS có sẵn cho PostgreSQL tăng các tính năng dữ liệu hìnhhọc có sẵn với việc thêm các kiểu không gian, các hàm, các thao tác và các chỉ mục

Nó là vị trí nhận biết và hỗ trợ cả dữ liệu raster và vector Nó cũng cung cấp khả năngtương tác với một loạt mã nguồn mở của bên thứ 3 và các công cụ không gian địa lýđộc quyền để làm việc, lập bản đồ và vẽ các dữ liệu

1.1.2.1.7 Hỗ trỡ JSON

Trang 29

Hỗ trợ JSON của PostgreSQL cho phép bạn ít sơ đồ (schema-less) trong một cơ

sở dữ liệu SQL Điều này có thể hữu ích khi cấu trúc dữ liệu yêu cầu phải có sự linhhoạt bởi vì nó vẫn thay đổi trong phát triển hoặc khi nó không biết các trường dữ liệu

mà đối tượng dữ liệu sẽ chứa

Kiểu dữ liệu JSON tuân theo JSON hợp lệ cái cho phép bạn sử dụng các thao tác

và các hàm xây dựng trong PostgreSQL để truy vấn và thao tác dữ liệu Cũng có sẵnkiểu JSONB - một dạng nhị phân của JSON nơi các khoảng trắng được loại bỏ, thứ tựđối tượng không được bảo quản nhưng thay vào đó là lưu trữ tối ưu, và chỉ giá trị cuốicùng cho các khóa trùng lặp được giữ lại JSONB thường là định dạng được ưa thíchkhi nó yêu cầu ít khoảng trống cho đối tượng, có thể đánh chỉ mục và có thể xử lýnhanh hơn vì nó không đòi hỏi parsing lại

Trang 30

1.2 Giới thiệu ngôn ngữ lập trình Ruby

Ruby là ngôn ngữ script hướng đối tượng free Vào năm 1993, kỹ sư ngườiNhật tên là Matsumoto Yukihiro đã bắt đầu phát triển ngôn ngữ này và công khai nóvào năm 1995 Kể từ sau khi ngôn ngữ Ruby được công khai, những hiệu quả pháttriển mà nó mang lại ngày càng được biết đến rộng rãi, và hiện tại nó đã trở thành 1ngôn ngữ nổi tiếng trên khắp thế giới Ruby được phát triển với mục tiêu "Là ngôn ngữhướng đối tượng trên cả Python 2 và mạnh mẽ hơn cả Perl" Và trong những năm gầnđây, nhờ vào việc xử lý dễ dàng một lượng lớn dữ liệu mà ngôn ngữ này càng đượcphổ biến hơn nữa

Ruby là loại ngôn ngữ có khả năng giảm thiểu xuống mức thấp nhất cho nội dung

mô tả, cấu trúc của nó cũng rất đơn giản và tạo ra được sự tự do cao Chính vì vậy, đâychính là nguyên nhân đảm bảo cho việc mô tả của người dùng trở nên dễ dàng hơn rấtnhiều

Hình 1.2.1.1.1.1: Ruby

1.2.2 Ưu và nhược điểm của Ruby

Với những tính năng của mình, nó đang là một ngôn ngữ lập trình có sự phát triển

và được nhiều lập trình viên ưa thích sử dụng Tuy nhiên, cũng như nhiều ngôn ngữkhác thì Ruby cũng có cho mình những ưu và nhược điểm riêng, nó được thể hiện qua

1.2.2.1 Ưu điểm

Ưu điểm của Ruby có rất nhiều, trong đó có 5 nội dung chính bao gồm:

Trang 31

- Ruby là loại ngôn ngữ lập trình vô cùng dễ học, nếu như bạn thành thạo Ruby thì việc

sử dụng Ruby on Rails quá đơn giản

- Nhu cầu công việc liên quan đến lập trình viên Ruby ngày càng tăng cao

- Hệ sinh thái của Ruby vô cùng rộng lớn và mang lại nhiều hữu ích

- Ruby là ngôn ngữ lập trình có thể dễ dàng kết nối cùng với DB2, MySQL, Oracle vàSybase

- Bạn có thể thực hiện viết thư viện bền ngoài bằng Ruby hoặc bằng C

- Tính năn bảo mật của Ruby vô cùng cao và tốt

- Cú pháp thực hiện Ruby đang ngày càng trở nên linh hoạt rất nhiều

- Hệ thống chuỗi xử lý của Ruby đang rất mạnh mẽ

- Lập trình viên Ruby có thể hoạt động trên nhiều nền tảng khác nhau

- Bạn có thể ứng dụng Ruby để có thể thực hiện nhúng vào HTML

- Ruby là ngôn ngữ sở hữu mã nguồn mở

- Ngôn ngữ cấp cao

1.2.2.2 Nhược điểm của Ruby

Với những ưu điểm tiện dụng, người học lập trình có thể dễ học thì PHP cũng

có những nhược điểm cơ bản Trong đó, nó được thể hiện qua:

- Cách sử dụng Ruby được các chuyên gia đánh giá là vô cùng đơn giản, tuy nhiên quátrình học Ruby có thể gặp nhiều khó khăn ở phần cài đặt môi trường

- Hiện nay, thời gian xử lý của Ruby thường chậm hơn rất nhiều so với các loại ngônngữ lập trình khác

1.2.3 Giới thiệu về framework Ruby on Rails

Ruby on Rails là một khung làm việc (web framework) được viết trên ngôn ngữlập trình Ruby và được sử dụng trong việc xây dựng và phát triển các ứng dụng web.Phiên bản đầu tiên của Ruby on Rails được giới thiệu ra cộng đồng vào năm 2015.Ruby on Rails là phần mềm mã nguồn mở miễn phí được phát triển bởi DavidHeinemeier Hansson

Trang 32

Ruby on Rails được xây dựng trên các tập quán hiện đại nhất trong xây dựng vàphát triển website do đó khi bạn nắm vững Ruby on Rails bạn sẽ dễ dàng chuyển sangmột web framework khác.

Ruby on Rails có cấu trúc trong sáng và dễ hiểu rất dễ tiếp cận cho những lậptrình viên mới vào nghề Ngoài ra, Rails cung cấp cho chúng ta công cụ cửa sổ dònglệnh CLI giúp tự động hoá nhiều công việc thường gặp khi lập trình qua đó tăng tốc độ

và hiệu suất làm việc

Ngoài ra, Ruby on Rails cũng là một trong những web framework được sử dụngphổ biến nhất hiện nay và được sử dụng bởi nhiều website lớn trên thế giới trong đó cómạng xã hội Twitter, trang mạng xã hội cho lập trình viên Github, công cụ quản lý dự

án hàng đầu Redmine

Điều gì khiến Ruby on Rails trở nên mạnh mẽ:

- Thư viện: Rails có khả năng cung cấp cho người sử dụng gem và tất cả gem này đều

có thể sử dụng miễn phí và dễ dàng

- Công cụ: Người dùng sẽ được Rails cung cấp một cấu trúc siêu chuẩn cho các ứngdụng web Nhờ vậy, chúng ta có thể dễ dàng triển khai mọi tính năng mà không cầnphải bỏ ra quá nhiều thời gian

- Chất lượng code: Nhìn chung hiện nay, chất lượng phần mềm hỗ trợ Ruby code đượcđánh giá là cao hơn nhiều so với những loại ngôn ngữ khác

- Hiệu suất: Rails đang là một trong những ngôn ngữ lập trình vô cùng gọn gàng, nênkhi sử dụng bạn có thể kết hợp đi kèm với những thư viện hỗ trợ khác Từ đó, quátrình phát triển sẽ trở nên nhanh chóng hơn rất nhiều

- Cộng đồng: Hiện tại, cộng đồng Ruby đang rất lớn mạnh và nó là ngôn ngữ lập trìnhđang rất phổ biến trên Github

- Tương lai: Là một trong những ngôn ngữ được các trang học tập đánh giá cao về độphổ biến Chính vì vậy, số lượng lập trình viên giỏi giang đang dần gia nhập vào cộngđồng Ruby nhiều hơn

Trang 33

1.3 Giới thiệu về Visual Studio Code

Là một trình biên tập lập trình code miễn phí dành cho Windows, Linux vàmacOS, Visual Studio Code được phát triển bởi Microsoft Nó được xem là một sự kếthợp hoàn hảo giữa IDE và Code Editor

Visual Studio Code hỗ trợ chức năng debug, đi kèm với Git, có syntaxhighlighting, tự hoàn thành mã thông minh, snippets, và cải tiến mã nguồn Nhờ tínhnăng tùy chỉnh, Visual Studio Code cũng cho phép người dùng thay đổi theme, phímtắt, và các tùy chọn khác

- Cung cấp kho tiện ích mở rộng

- Kho lưu trữ an toàn

- Visual Studio Code hỗ trợ nhiều ứng dụng web Ngoài ra, nó cũng có một trình soạnthảo và thiết kế website

- Lưu trữ dữ liệu dạng phân cấp

- Hỗ trợ Git

Trang 34

Hình 1.3.1.1.1.1: Visual Studio Code

Chương 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG2.1 Phân tích tác nhân và chức năng

Trang 35

- Xem danh sách các từ vựng của những khóa học đã đăng kí

- Làm kiểm tra sau khi hoàn thành một bài học

- Nhắn tin với người dùng khác bằng nhóm chat hoặc là chat riêng giữa 2 người dùng

- Quản lí thông tin cá nhân

2.1.2.3 Quản trị viên

- Đăng nhập/ Đăng xuất

- Quản lí thông tin cá nhân

Trang 36

2.2 Sơ đồ use-case

Hình 2.2.1.1.1.1: Sơ đồ use-case tổng quát

Trang 37

2.3 Sơ đồ hoạt động

2.3.1 Khách hàng vãng lai

2.3.1.1 Sơ đồ hoạt động xem các khóa học

Hình 2.3.1.1.1.1: Sơ đồ hoạt động xem danh sách khóa học

Trang 38

2.3.1.2 Sơ đồ hoạt động tìm kiếm

Hình 2.3.1.2.1.1: Sơ đồ hoạt động tìm kiếm

Trang 39

2.3.2 Khách hàng thành viên

2.3.2.1 Sơ đồ hoạt động Đăng nhập

Hình 2.3.2.1.1.1: Sơ đồ hoạt động Đăng nhập

Trang 40

2.3.2.2 Sơ đồ hoạt động Đăng ký khóa học

Hình 2.3.2.2.1.1: Sơ đồ hoạt động Đăng ký khóa học

2.3.2.3 Sơ đồ hoạt động Chat(nhắn tin)

Hình 2.3.2.3.1.1: Sơ đồ hoạt động Chat(nhắn tin)

Ngày đăng: 07/03/2024, 10:44

w