Chương 1: Giới thiệu về đề tài, bối cảnh nảy sinh ra vấn đề, hiện tại vấn đề ấy đã được xử lý như thế nào, mục tiêu của luận văn là gì, mình cần làm gì để cải thiện so với những giải pháp đã được đưa ra. Chương 2: Một số giải pháp liên quan, giới thiệu một số hệ thống blog đang hoạt động trên thị trường. Chương 3: Cơ sở lý thuyết, giới thiệu kiến thức cơ sở và công cụ để hiện thực các giải pháp để giải quyết vấn đề đặt ra. Xây dựng hệ thống hỗ trợ người dùng viết blog về công nghệ 3 Chương 4: Bài toán và giải pháp, nêu ra các bài toán trong hệ thống và cách giải quyết.
Chương 5: Phân tích thiết kế hệ thống, tiến hành phân tích các yêu cầu nghiệp vụ và xây dựng sơ đồ usecase, ERD, kiến trúc hệ thống cũng như cách hiện thực mã nguồn. Chương 6: Triển khai và kiểm thử, cách hệ thống được triển khai, quy trình kiểm thử và kết quả. Chương 7: Tổng kết, đánh giá kết quả đạt được và hướng phát triển của đề tài. Chương 2 Giải pháp liên quan 2.1 Giới thiệu một vài trang blog công nghệ 2.1 Trang Medium Medium là một nền tảng mạng xã hội đơn giản, được xây dựng bởi nhà đồng sáng lập Twitter là Evan Williams và Biz Stone.
Medium cho phép mọi người có thể tự đăng tải bài viết của mình trên tất cả những lĩnh vực ngành nghề và đời sống khác nhau. Ra đời vào tháng 2 năm 2012 và ngày càng thu hút cộng đồng người dùng, đặc biệt ở nước ngoài rất nhiều người thích dùng Medium. Tính đến tháng 5 năm 2017, Medium đã có tới 60 triệu khách truy cập mỗi tháng.2 Trang HackerNoon HackerNoon là một trong những blog công nghệ hàng đầu để tìm hiểu về lập trình, blockchain và khởi nghiệp. Với hơn 7000 người viết và 200.000 người đọc hàng ngày, HackerNoon đã trở thành tiếng nói của giới công nghệ trên toàn thế giới.3 Trang Viblo Viblo bắt đầu được tiến hành phát triển từ khoảng tháng 11/2014, từ một ý tưởng của anh Kobayashi Taihei, lúc đó còn đang là COO của Framgia.
Với phương châm "xây dựng một cộng đồng nơi mọi người có thể tự do chia sẻ kiến thức về IT, bằng tiếng Việt, cho người Việt". Viblo được biết đến là cộng đồng chia sẻ kiến thức về công nghệ thông tin tại Việt Nam, một dịch vụ miễn phí - nơi mọi người có thể viết và đăng tải nội dung liên quan đến các vấn đề kỹ thuật. 4 Xây dựng hệ thống hỗ trợ người dùng viết blog về công nghệ 5 2.4 Trang HubPages HubPages là một nền tảng blog đa trang được ra mắt vào năm 2006. Những người sáng lập là ba cựu nhân viên của Microsoft - Jay Reitz, Paul Deeds và Paul Edmondson.
HubPages khởi đầu là một trang web duy nhất dành cho các nhà văn tự do nhưng đã được mở rộng vào năm 2014 sau khi tiếp quản và sáp nhập với Squidoo. Là một nền tảng có nội dung do người dùng tạo ở cốt lõi của mô hình kinh doanh, HubPages cũng cho phép người dùng tham gia vào các diễn đàn về các chủ đề cụ thể, đăng câu hỏi và câu trả lời trong phần Hỏi & Đáp của nó, cũng như nhận xét về nội dung của người khác và theo dõi những người dùng khác. Đến nay, nền tảng này tự hào có lượng người xem hàng tháng là 29 triệu lượt xem.000 bài báo đã được xuất bản trên 46.000 trung tâm và có hơn 4,1 triệu bài đăng trên diễn đàn.to Dev Community là một cộng đồng với hơn 640.000 lập trình viên đang cùng nhau học tập và giúp đỡ lẫn nhau. Ở đây bạn có thể tìm thấy nhiều bài viết hay được phân loại theo tuần, tháng, năm.
dựa trên sự đánh giá của các lập trình viên khác.6 Trang Tinh tế Tinhte là tạp chí về công nghệ thông tin lớn nhất hiện nay. Các bài đăng trên web được chính những thành viên cập nhật liên tục mỗi ngày. Bạn sẽ được tư vấn về các thiết bị như máy tính, điện thoại, camera, xe,. Ngoài ra, web còn có chuyên mục rao vặt, nơi bạn có thể bán hoặc tìm mua những thiết bị công nghệ thông tin.2 Phân tích chức năng chính của các trang Xây dựng hệ thống hỗ trợ người dùng viết blog về công nghệ 6 Xây dựng hệ thống hỗ trợ người dùng viết blog về công nghệ 7 Xây dựng hệ thống hỗ trợ người dùng viết blog về công nghệ 8 Xây dựng hệ thống hỗ trợ người dùng viết blog về công nghệ 9 Xây dựng hệ thống hỗ trợ người dùng viết blog về công nghệ 10 Xây dựng hệ thống hỗ trợ người dùng viết blog về công nghệ 11 2.3 Đề xuất một số chức năng cho hệ thống 2.1 Chức năng cơ bản Đăng nhập / Đăng xuất.
Like / Share / Comment. Bảng xếp hạng. Nhắn tin: cho phép nhắn tin giữa những người dùng với nhau. Tùy chỉnh chế độ giao diện: cho phép người dùng thay đổi theo các chế độ có sẵn (dark mode).
Vblog: cho phép đăng bài viết dưới dạng video. Đăng tin ngắn: cho phép đăng những video ngắn dưới 30 giây được hiển thị ở một mục riêng. Chế độ bài viết: riêng tư (chỉ tác giả thấy được), công khai (mọi người đều có thể thấy), người theo dõi (chỉ những người theo dõi mới thấy được). Theo dõi: người dùng có thể theo dõi để xem thông tin bài viết của tác giả.
Trang cá nhân: quản lý bài viết, theo dõi, cấp bậc người dùng. Báo cáo: báo cáo những bài viết hoặc người dùng xấu cho quản trị viên có thể xem xét. Trách nhiệm bài viết: bài viết sẽ được tác giả gắn mác và chịu trách nhiệm về bài đăng của mình (có thể là quan điểm cá nhân, những thông tin hoàn toàn chính xác. ) Bảng tin: cá nhân hóa trải nghiệm người dùng khi những thông tin người dùng quan tâm và người dùng theo dõi sẽ được hiển thị ở đây.2 Chức năng nâng cao Lưu bản nháp: khi gặp sự cố khi soạn thảo hoặc tùy chọn vào lưu bản nháp thì bài viết sẽ được lưu lại dưới dạng bản nháp.
Người dùng có thể xem bản nháp trong Dashboard và tiếp tục hiệu chỉnh. Bản nháp sẽ luôn được lưu lại trừ khi người dùng chọn không lưu. Phân loại người dùng: phân loại người dùng theo nhiều cấp bậc (sơ cấp, trung cấp, cao cấp, chuyên gia). Người dùng khi thỏa các điều kiện về lượt xem, theo dõi và đánh giá sẽ được nâng cấp.
Xây dựng hệ thống hỗ trợ người dùng viết blog về công nghệ 12 Phân loại bài viết theo nhiều tiêu chí: • Chủ đề: chia thành nhiều chủ đề lớn và người dùng có thể gán thủ công trong lúc viết bài hoặc tự động gán dựa vào tag. • Tag: mỗi bài viết cho gán tối đa 4 tag và gán thủ công khi viết bài. • Theo cấp bậc tác giả: các bài viết của chuyên gia sẽ được phân loại riêng. Tự động hóa duyệt bài: đưa ra những quy định chặt chẽ cho bài viết và có hệ thống kiểm tra bài viết để những bài viết đạt yêu cầu có thể tự động được đăng duyệt.
Lịch đăng bài: những bài viết đã đạt tiêu chuẩn kiểm duyệt có thể đăng ngay lập tức hoặc được lên lịch đăng bài trong một khoảng thời gian được định trước. Có thể cài đặt thời gian thông báo cho người theo dõi về khoảng thời gian bài viết được đăng. Tùy chỉnh bố cục: cho phép người dùng tùy chỉnh bố cục của trang web. Chương 3 Cơ sở lý thuyết 3.1 Các công nghệ phía Client 3.1 Single page application Single page application (SPA) là một ứng dụng web giúp nâng cao trải nghiệm người dùng bằng cách sử dụng HTML5 và AJAX.
Đầu tiên khi tải một trang web bất kỳ, SPA sẽ tải một trang HTML đơn, sau đó dựa trên request của người dùng, SPA sẽ tiếp tục tải các HTML khác trong cùng một trang đó, SPA có thể sử dụng một vài thư viện JavaScript như AngularJS, Backbone. Hiểu một cách đơn giản, thì toàn bộ resource của web bao gồm các file CSS, Javascript, master layout hay cấu trúc web page sẽ được tải lần đầu tiên khi chúng ta bắt đầu duyệt một website nào đó. Ở những lần sau, khi chuyển trang khác, client sẽ gửi những ajax request để nhận dữ liệu cần thiết (thường là phần nội dung). Việc này mang đến trải nghiệm cho người dùng web tốt hơn, giảm thời gian phải tải lại toàn bộ trang web, tiết kiệm băng thông cũng như thời gian chờ đợi.
Việc này là trái ngược hoàn toàn với trang web truyền thống khi toàn bộ trang web phải tải lại mỗi khi chuyển trang. 13 Xây dựng hệ thống hỗ trợ người dùng viết blog về công nghệ 14 Để có cái nhìn dễ hiểu hơn, bạn hãy nhìn hình minh họa bên dưới về SPA: Hình 3.1: Hình ảnh ví dụ về single page application Vùng màu xanh được coi là khung hay master page của 1 website, vùng màu đỏ là content của web page sẽ hiển thị và thay thế mỗi khi chuyển trang. Ưu điểm • Web SPA có backend và frontend rõ ràng. • Web SPA sẽ đẩy mạnh xử lý ở frontend.
• SPA nhanh, tất cả (HTML + CSS + JS) chỉ phải tải một lần trong quá trình sử dụng, chỉ có dữ liệu là được chuyển qua lại, tăng tính tương tác giữa người dùng, tìm kiếm, tính toán, xử lý nhanh hơn. Nhược điểm • Không thể sử dụng các thủ thuật SEO cao cấp. • Không phù hợp với các lập trình viên thiếu kinh nghiệm frontend. • Chia tách 2 team frontend và backend sẽ làm tăng chi phí (quản lý, giao tiếp, xử lý xung đột.
• Gia tăng khối lượng công việc. Xây dựng hệ thống hỗ trợ người dùng viết blog về công nghệ 15 3.2 ReactJS ReactJS là một opensource được phát triển bởi Facebook, ra mắt vào năm 2013, bản thân nó là một thư viện Javascript được dùng để xây dựng các tương tác với các thành phần trên website. Một trong những điểm nổi bật nhất của ReactJS đó là việc render dữ liệu không chỉ thực hiện được trên tầng Server mà còn ở dưới Client nữa. ReactJS là một thư viện JavaScript chuyên giúp các nhà phát triển xây dựng giao diện người dùng hay UI.
Trong lập trình ứng dụng front-end, lập trình viên thường sẽ phải làm việc chính trên 2 thành phần sau: UI và xử lý tương tác của người dùng. UI là tập hợp những thành phần mà bạn nhìn thấy được trên bất kỳ một ứng dụng nào, ví dụ có thể kể đến bao gồm: menu, thanh tìm kiếm, những nút nhấn, card,.