Chương 1: GIỚI THIỆU ĐỀ TÀI 1. Tổng quan: InStare là một trang web mạng xã hội tập trung vào nội dung trực quan như hình ảnh và video, là một nơi để mọi người kết nối, thể hiện bản thân, lan tỏa nguồn cảm hứng đến với mọi người xung quanh. Với giao diện thân thiện và công cụ chỉnh sửa ảnh, InStare cho phép bạn chia sẻ những khoảnh khắc, sự sáng tạo và sở thích của mình với người theo dõi. Khái niệm: Mạng xã hội là một nền tảng trực tuyến cho phép các cá nhân và tổ chức tương tác với nhau thông qua việc chia sẻ thông tin, ý kiến, nội dung, hình ảnh và video.
Nó cho phép người dùng kết nối với những người khác, đồng thời tạo ra một cộng đồng trực tuyến với những người có cùng sở thích, quan điểm và hoạt động. Mạng xã hội cũng cung cấp các công cụ để quản lý mối quan hệ, tạo thương hiệu, quảng cáo và kinh doanh trực tuyến. Mục đích: - Đem đến một cộng đồng có thể đưa những người cùng sở thích, sở trường đến với nhau, cùng nhau chia sẻ và tạo dựng mối quan hệ. - Cung cấp một nền tảng cho mọi người giao tiếp với nhau qua tin nhắn.
- Chia sẻ hình ảnh và video đến lượng lớn người dùng. - Cung cấp các tính năng và công cụ để nâng cao tầm nhìn, tạo giá trị cho cộng đồng và đóng góp vào cuộc sống của người dùng. - Thiết kế và phát triển một ứng dụng web chất lượng cao, đáp ứng các yêu cầu của người dùng và đảm bảo tính ổn định và an toàn. - Tối ưu hóa trải nghiệm người dùng bằng cách xây dựng một hệ thống trực quan, dễ sử dụng, cải thiện tính năng, hiệu suất, giao diện.
- Thiết kế và triển khai một hệ thống lưu trữ và quản lý dữ liệu hiệu quả. Đối tượng sử dụng: Đối tượng sử dụng của mạng xã hội có thể là bất kỳ ai (thông thường là từ 13 tuổi trở lên), bao gồm các cá nhân, tổ chức, doanh nghiệp hoặc cộng đồng. Mạng xã hội đã trở thành một phương tiện truyền thông mạnh mẽ để kết nối và tương tác với những người có cùng sở thích, hoạt động và quan điểm. Nó được sử dụng để chia sẻ thông tin, đưa ra ý kiến, giải trí, tạo mối quan hệ kinh doanh, quảng cáo và nhiều mục đích khác.
Người dùng có thể tùy chỉnh trang cá nhân của mình và lựa chọn những người bạn muốn kết nối với để xây dựng một mạng lưới cá nhân hoặc cộng đồng trực tuyến. Case-study tham khảo: - Instagram - Facebook - Twitter 1. Môi trường phát triển: - Hệ điều hành: Windows 10. - Cơ sở dữ liệu: MongoDB, Redis.
- Công cụ phân tích, thiết kế: Figma, draw.io, StarUML,… - IDE: Visual Studio Code. - Môi trường làm việc nhóm: Notion, Google Drive, Microsoft Teams, Facebook Messenger. - Các framework sử dụng: NodeJS, NestJS, ReactJS. - Ngôn ngữ lập trình: JavaScript, TypeScript.
- Quản lý phiên bản: Git. - Thư viện hỗ trợ: Socket. Mô tả quy trình thực hiện các công việc chính: • Bước 1: Xác định các yêu cầu: - Phân tích khả thi quy mô thực hiện. - Tìm hiểu quy trình nghiệp vụ.
- Tham khảo và trải nghiệm các ứng dụng liên quan. - Khảo sát người dùng qua mạng. - Thu thập thông tin yêu cầu. 13 • Bước 2: Thiết kế hệ thống: - Vẽ sơ đồ Use-case: phân tích nghiệp vụ tổng quan.
- Vẽ Sequence Diagram • Bước 3: Thiết kế dữ liệu - Thiết kế dữ liệu tương ứng với từng loại yêu cầu của phần mềm để đảm bảo được tính đúng đắn và tính tiến hóa với phần mềm, có hiệu quả về mặt truy xuất và lưu trữ - Xác định và lập danh sách các bảng dữ liệu cần thiết cho các yêu cầu của phần mềm - Xây dựng sơ đồ logic cụ thể của phần mềm • Bước 4: Thiết kế giao diện - Lập ra danh sách các màn hình khi người dùng tương tác với phần mềm - Mô tả các đối tượng trên từng màn hình - Xác định những chức năng hiển thị trên từng màn hình • Bước 5: Code và kiểm thử - Code trình bày theo mô hình 3 lớp và được phân chia theo các nhiệm vụ yêu cầu. - Testcase rõ ràng để kiểm tra tính hiệu quả của hệ thống. 14 Chương 2: CƠ SỞ LÝ THUYẾT 2. Ngôn ngữ lập trình Javascript: 2.
Javascript là gì? Hình 2. Logo JavaScript JavaScript là ngôn ngữ lập trình phổ biến dùng để tạo trang web tương tác, tích hợp và nhúng vào HTML để làm cho trang web sống động hơn. Đóng vai trò như một phần của trang web, JavaScript thực thi Client-Side Script từ phía người dùng và máy chủ (Nodejs), tạo ra các trang web động. Nó là ngôn ngữ thông dịch hướng đối tượng, chiếm một trong 3 ngôn ngữ chính trong lập trình web.
Trong quá trình xây dựng trang web chuyên nghiệp, HTML cung cấp cấu trúc cơ bản, CSS kiểm soát và định dạng thiết kế, trong khi JavaScript tạo nội dung động trên trang web. Cách thức hoạt động của Javascript trên trang web: JavaScript thường sẽ được nhúng trực tiếp vào một trang web hoặc được tham chiếu qua file. JavaScript là ngôn ngữ từ phía client nên script sẽ được tải về máy client khi truy cập và được xử lý tại đó. Thay vì tải về máy server và sau khi xử lý xong mới phản hồi kết quả đến client.
Ưu điểm: JavaScript có các ưu điểm được xem là vượt trội so với các đối thủ khác trong các trường hợp thực tế như: - Chương trình JavaScript rất dễ học. - Lỗi JavaScript dễ phát hiện và sẽ giúp bạn sửa lỗi nhanh hơn. - Các trình duyệt web có thể dịch nó bằng HTML mà không cần một compiler. - JS hoạt động trên rất nhiều nền tảng và trình duyệt khác nhau.
15 - Được đánh giá là ngôn ngữ lập trình nhẹ, nhanh so với các ngôn ngữ khác. - JS có thể được gắn trên một số element hoặc các events của trang web. - Khi website có sử dụng JS thì sẽ giúp cho trang web đó tương tác và tăng trải nghiệm người dùng khi truy cập. - Bạn có thể tận dụng JavaScript để kiểm tra các input thay vì kiểm tra thủ công thông qua việc truy xuất database.
- Giao diện phong phú gồm các thành phần Drag and Drop, Slider để cung cấp một Rich Interface (Giao diện giàu tính năng). Nhược điểm: Mặt khác, ngoài những ưu điểm nhưng mọi ngôn ngữ lập trình khác đều có những nhược điểm riêng của nó như: - Dễ bị khai thác từ những hacker và scammer. - Có thể được dụng để thực thi mã độc trên máy tính của người dùng. - JS code snippet lớn.
- Các thiết bị khác nhau có thể thực hiện JS khác nhau dẫn đến không đồng nhất. - Vì tính bảo mật nên client-side JavaScript không cho phép đọc và ghi các file. - JS không được hỗ trợ khi sử dụng trong kết nối mạng. - JavaScript không có khả năng đa luồng hoặc đa xử lý.
Ngôn ngữ lập trình TypeScript: 2. TypeScript là gì? Hình 2. Logo TypeScript TypeScript, do Microsoft phát triển, là một mã nguồn mở nâng cấp từ JavaScript, tăng tính kiểu tĩnh và hướng đối tượng để phát triển nhanh chóng và ổn định. Được sử dụng rộng rãi trong các ứng dụng client-side như Angular và NodeJS, TypeScript tích hợp đầy đủ tính năng của ECMAScript 2015 - ES6 và liên tục cập nhật để áp 16 dụng kỹ thuật mới từ ECMAScript.
Người phát triển chính là Anders Hejlsberg, có đóng góp lớn trong nhiều ngôn ngữ lập trình hàng đầu như Delphi, Turbo Pascal, và C#. Đặc điểm: - Nhiều Framework lựa chọn. - Dễ phát triển các dự án lớn. - Hỗ trợ nhiều tính năng của JavaScript.
Ưu điểm: Với vô số tính năng hiện đại, tới nay TypeScript đã mang đến cho người dùng vô số trải nghiệm nhờ vào hàng loạt ưu điểm cực kỳ nổi bật. Đảm bảo đáp ứng tối ưu nhu cầu sử dụng đa dạng của mọi lập trình viên như sau: - Vận hành miễn phí, tiết kiệm thời gian sử dụng nhờ vào IDE và trình biên dịch vượt trội. - Giảm thiểu phần trăm va chạm lỗi trong suốt quá trình vận hành. - Đảm bảo tính hoạt động ổn định – thuận tiện.
- Thao tác mượt mà, nhanh chóng, vô cùng đơn giản, dễ sử dụng. - TypeScript hỗ trợ các bước chỉnh sửa code tiện lợi hơn nhờ vào lệnh Rename Symbol, Find All Occurrences và RegEx. - Giúp người dùng tái cấu trúc, nâng cấp hệ thống, phần mềm và ứng dụng vượt trội hơn nhờ vào tính xử lý thông minh. - Hạn chế thử nghiệm Boilerplate rất hiệu quả, gia tăng xác suất hoàn thành công việc.
- TypeScript còn hợp nhất mã code và đánh giá chính xác khi biên dịch cực kỳ dễ dàng, đơn giản. - Hỗ trợ tối ưu hóa quy trình làm việc của người dùng, hạn chế tính nhảy bước rồi thực hiện sai thao tác. Nhược điểm: Bên cạnh những ưu điểm đầy nổi bật, tuy nhiên TypeScript vẫn còn tồn tại một số nhược điểm nhất định trong suốt quá trình lập trình viên thao tác, ứng dụng như sau: - Người dùng cần biên dịch đuôi .js tệp TypeScript tại nền tảng Node. - TypeScript cần đảm bảo máy chủ Node.js, webpack và trình thử nghiệm hoạt động ổn định.
- Cần thêm Typedef mỗi khi apply Redux, Styled-Component và React. - TypeScript không vận hành độc lập hay thay thế bất kỳ vai trò chính nào của JavaScript. - TypeScript chỉ nâng cấp những nhược điểm còn hạn chế của JavaScript. Hệ quản trị cơ sở dữ liệu MongoDB: 2.
MongoDB là gì? Hình 2. Logo MongoDB - MongoDB là một cơ sở dữ liệu mã nguồn mở và là cơ sở dữ liệu NoSQL hàng đầu, được hàng triệu người sử dụng. MongoDB được viết bằng C++. - Ngoài ra, MongoDB là một cơ sở dữ liệu đa nền tảng, hoạt động trên các khái niệm Collection và Document, nó cung cấp hiệu suất cao, tính khả dụng cao và khả năng mở rộng dễ dàng.
Đặc điểm: - MongoDB hoạt động dưới tiến trình ngầm, lắng nghe truy vấn trên cổng 27017. - Mỗi bản ghi có trường "_id" kiểu ObjectId để xác định tính duy nhất và được đánh index. - Truy vấn dữ liệu được cache trong RAM để tăng tốc độ truy vấn. - Thay đổi dữ liệu chỉ được cập nhật xuống ổ cứng sau 60 giây để đảm bảo hiệu suất ứng dụng.
- Cấu trúc của một đối tượng rõ ràng. - Không có các Join phức tạp. - Khả năng mở rộng cực lớn. - Sử dụng bộ nhớ trong để lưu giữ cửa sổ làm việc cho phép truy cập dữ liệu nhanh hơn.