Bối cảnh và vấn đề nghiên cứu

Báo cáo chuyên đề thực tập tốt nghiệp được thực hiện trong bối cảnh đại dịch COVID-19 diễn biến phức tạp vào cuối năm 2021, làm gián đoạn nhiều hoạt động thực tập trực tiếp tại doanh nghiệp. Nhằm thích ứng với điều kiện giãn cách xã hội và phương thức làm việc trực tuyến, Trường Đại học Thủ Dầu Một (Viện Kỹ thuật – Công nghệ) đã phối hợp cùng Công ty Cổ phần CrossTech và Công ty TEL4VN tổ chức đợt thực tập kết hợp đào tạo chuyên sâu về hệ điều hành Linux. Song song với quá trình thực tập doanh nghiệp, sinh viên Trần Minh Hiếu (Lớp D18PM01, ngành Kỹ thuật phần mềm) đã thực hiện đề tài nghiên cứu ứng dụng: "Xây dựng mạng xã hội địa điểm ẩm thực What Eat dựa trên công nghệ React Native" dưới sự hướng dẫn của ThS. Nguyễn Hữu Vĩnh và cán bộ hướng dẫn doanh nghiệp Nguyễn Nhất Nguyên.

Về mặt thực tiễn, việc lựa chọn món ăn và địa điểm ẩm thực uy tín là nhu cầu thường nhật của người dùng ("Hôm nay ăn gì?"). Sự gia tăng của các chuyên gia đánh giá ẩm thực (Food Reviewer) và các hội nhóm trên mạng xã hội cho thấy nhu cầu chia sẻ, tìm kiếm thông tin ẩm thực rất lớn; tuy nhiên, các nền tảng hiện nay vẫn tồn tại nhiều hạn chế về tính tập trung, độ tin cậy và khả năng cá nhân hóa trải nghiệm.

Mục tiêu và nhiệm vụ nghiên cứu

  1. Nhiệm vụ tại doanh nghiệp: Hoàn thành khóa đào tạo chuyên môn "Linux Essential" do CrossTech và TEL4VN tổ chức, nắm vững kiến thức quản trị dòng lệnh, hệ thống tập tin, phân quyền và bảo mật trên hệ điều hành Linux.
  2. Nhiệm vụ nghiên cứu công nghệ: Tìm hiểu và ứng dụng framework React Native để xây dựng ứng dụng di động đa nền tảng (Android và iOS), tích hợp hệ thống cơ sở dữ liệu thời gian thực Firebase, môi trường máy chủ NodeJS và hệ thống quản trị trạng thái Redux.
  3. Nhiệm vụ phân tích và thiết kế: Khảo sát các nền tảng ẩm thực hiện hành (Foody, Hatto, Bản đồ ăn), từ đó xây dựng hệ thống ca sử dụng (use case), sơ đồ tuần tự và cơ sở dữ liệu hoàn chỉnh cho ứng dụng What Eat.
  4. Nhiệm vụ xây dựng hệ thống: Hiện thực hóa các tính năng mạng xã hội (đăng bài, thích, bình luận, nhắn tin, theo dõi), tích hợp bản đồ số Google Map API và thuật toán gợi ý địa điểm, món ăn dựa trên ma trận người dùng – thực thể (users – items).

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

  • Đối tượng nghiên cứu: Kiến trúc phần mềm ứng dụng di động, hệ thống mạng xã hội chuyên biệt về ẩm thực, hệ thống gợi ý (Recommendation System) và các giao thức kết nối Web API, Google Map API.
  • Phạm vi không gian: Thực tập tại Công ty Cổ phần CrossTech (Phòng 112A, ITP, Đại học Quốc gia TP. HCM, Phường Linh Trung, TP. Thủ Đức, TP. HCM) kết hợp môi trường học tập và làm việc trực tuyến qua Google Meet.
  • Phạm vi thời gian: Đợt thực tập diễn ra từ ngày 26/09/2021 đến ngày 31/10/2021; báo cáo chuyên đề hoàn thành và nộp vào tháng 12/2021.

Cơ sở lý thuyết và phương pháp

Báo cáo kết hợp giữa cơ sở lý thuyết hệ thống máy chủ, công nghệ phần mềm ứng dụng di động và các mô hình thuật toán gợi ý dữ liệu.

Khung lý thuyết và công nghệ sử dụng

  • Hệ điều hành Linux và mã nguồn mở: Kiến thức nền tảng về cấu trúc tệp tin, phân quyền người dùng, quản trị máy chủ dựa trên chương trình chuẩn Linux Essential của LPI (Linux Professional Institute).
  • Framework React Native: Nền tảng phát triển ứng dụng di động đa nền tảng bằng ngôn ngữ JavaScript, cho phép tái sử dụng mã nguồn và xây dựng giao diện native.
  • Môi trường NodeJS & Web API: Môi trường thực thi JavaScript phía máy chủ, chịu trách nhiệm xử lý logic hệ thống và cung cấp các điểm cuối (endpoints) giao tiếp dữ liệu.
  • Nền tảng Firebase: Sử dụng các nhóm dịch vụ thuộc phân hệ Develop & Test Your App (chứng thực người dùng, cơ sở dữ liệu đám mây, lưu trữ tập tin) và Grow & Engage Your Audience (thông báo đẩy, thống kê tương tác).
  • Google Map API: Dịch vụ tích hợp hiển thị bản đồ số, định vị vị trí hiện tại của người dùng và tra cứu tọa độ các địa điểm ăn uống.
  • Kiến trúc Redux: Mô hình quản trị luồng dữ liệu một chiều tập trung (Store, Actions, Reducers) giúp đồng bộ trạng thái giao diện trong toàn bộ ứng dụng.
  • Hệ thống gợi ý (Recommendation System): Cơ chế lọc cộng tác hoặc dựa trên nội dung sử dụng mô hình ma trận người dùng – mục (users – items matrix) kết hợp bước chuẩn hóa dữ liệu để dự đoán sở thích ẩm thực của người dùng.

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

  • Phương pháp phân tích – tổng hợp tài liệu: Thu thập và nghiên cứu tài liệu kỹ thuật từ các tài liệu do cơ quan thực tập cung cấp, tài liệu giáo trình và tài liệu chính thức của React Native, Firebase, NodeJS, LPI.
  • Phương pháp nghiên cứu so sánh: Khảo sát giao diện, luồng chức năng của các sản phẩm thực tế như Foody, Hatto và website Bản đồ ăn để rút ra ưu nhược điểm phục vụ thiết kế ứng dụng What Eat.
  • Phương pháp mô hình hóa phần mềm: Sử dụng ngôn ngữ UML để thiết lập 24 sơ đồ ca sử dụng (use case), sơ đồ tuần tự (sequence diagrams) và sơ đồ triển khai hệ thống.
  • Phương pháp xây dựng và thực nghiệm phần mềm: Lập trình trực tiếp ứng dụng di động, cấu hình dịch vụ cơ sở dữ liệu và thử nghiệm chức năng trên máy ảo/thiết bị di động thực tế.

Thiết kế và triển khai

Hệ thống ứng dụng "What Eat" được thiết kế và cài đặt hoàn chỉnh từ lớp dữ liệu, lớp dịch vụ đến giao diện người dùng di động.

Danh mục bảng cơ sở dữ liệu

Hệ thống lưu trữ thông tin dựa trên cấu trúc bảng dữ liệu được chuẩn hóa phục vụ các nghiệp vụ mạng xã hội và định vị địa điểm:

STT Tên bảng dữ liệu Mã bảng trong báo cáo Chức năng lưu trữ chính
1 Người dùng Bảng 35 Thông tin tài khoản, họ tên, email, mật khẩu, ảnh đại diện, vai trò
2 Tài khoản đang theo dõi Bảng 36 Danh sách người dùng mà tài khoản hiện tại đang theo dõi (following)
3 Tài khoản theo dõi người dùng Bảng 37 Danh sách người dùng đang theo dõi tài khoản hiện tại (followers)
4 Bài viết Bảng 38 Nội dung bài đánh giá, hình ảnh, thời gian đăng, liên kết địa điểm
5 Thích bài viết Bảng 39 Ghi nhận lượt tương tác yêu thích của người dùng đối với từng bài viết
6 Bình luận Bảng 40 Nội dung thảo luận, phản hồi của người dùng trên bài viết
7 Lưu trữ bài viết Bảng 41 Danh sách các bài viết được người dùng đánh dấu lưu lại cá nhân
8 Địa điểm Bảng 42 Tên quán ăn, địa chỉ, tọa độ định vị, giờ mở cửa, thông tin liên hệ
9 Các danh mục Bảng 43 Phân loại ẩm thực (món nước, món khô, đồ uống, tráng miệng...)
10 Các quyền hạn Bảng 44 Bảng định nghĩa quyền hạn truy cập của người dùng và quản trị viên
11 Tin nhắn Bảng 45 Dữ liệu hội thoại trao đổi trực tiếp giữa các người dùng với nhau
12 Món ăn Bảng 46 Chi tiết món ăn, giá cả, hình ảnh và thuộc tính liên kết quán ăn

Phân hệ ca sử dụng (Use Case)

Báo cáo xây dựng chi tiết 24 bảng đặc tả ca sử dụng và các sơ đồ tuần tự tương ứng:

  • Nhóm chức năng tài khoản: Đăng nhập (Bảng 11), Đăng ký (Bảng 12), Quên mật khẩu (Bảng 13), Đổi mật khẩu (Bảng 14), Đăng xuất (Bảng 15), Cập nhật thông tin cá nhân (Bảng 28), Cập nhật ảnh đại diện (Bảng 29).
  • Nhóm chức năng tương tác bài viết: Đăng bài viết (Bảng 16), Chỉnh sửa bài viết (Bảng 17), Xóa bài viết (Bảng 18), Thích bài viết (Bảng 19), Bình luận (Bảng 20), Lưu bài viết (Bảng 21).
  • Nhóm chức năng khám phá và mạng xã hội: Xem bản đồ (Bảng 22), Tìm kiếm và lọc dữ liệu (Bảng 23), Thông báo hệ thống (Bảng 24), Nhắn tin trò chuyện (Bảng 25), Theo dõi người dùng (Bảng 26), Hủy theo dõi (Bảng 27).
  • Nhóm chức năng quản trị hệ thống: Thống kê dữ liệu (Bảng 30), Quản lý người dùng (Bảng 31), Quản trị quyền tài khoản (Bảng 32), Quản lý danh sách địa điểm (Bảng 33), Quản lý danh mục ẩm thực (Bảng 34).

Cấu trúc giao diện và các luồng màn hình

Ứng dụng hoàn thiện hệ thống màn hình chức năng bao gồm:

  • Màn hình chính phân chia 2 tab nội dung: Dành cho bạn (hiển thị nội dung gợi ý thông minh) và Đang theo dõi (dòng thời gian bài viết từ bạn bè/người được theo dõi).
  • Màn hình soạn thảo bài viết mới tích hợp công cụ chọn ảnh từ thư viện, chụp ảnh từ Camera và gắn thẻ (tag) địa điểm thực tế.
  • Phân hệ tìm kiếm nâng cao hỗ trợ bộ lọc đa chiều: lọc theo phạm vi địa điểm, lọc theo danh mục món ăn và lọc theo mức đánh giá sao.
  • Màn hình bản đồ số hiển thị trực quan các vị trí quán ăn xung quanh tọa độ người dùng.
  • Màn hình chi tiết bài viết, chi tiết món ăn, chi tiết địa điểm ẩm thực kèm danh sách bài đánh giá liên quan.
  • Hệ thống quản lý trang cá nhân, danh sách theo dõi/người theo dõi và hộp thư nhắn tin trực tiếp.

Nội dung chính theo từng chương

Báo cáo được cấu trúc thành hai phần chính rõ ràng:

PHẦN 1: THỰC TẬP TẠI DOANH NGHIỆP

Chương 1: Tổng quan về cơ sở thực tập

Chương 1 giới thiệu chi tiết về Công ty Cổ phần CrossTech, thành lập từ năm 2019 tại Vườn ươm Doanh nghiệp ITP (Đại học Quốc gia TP. HCM), hoạt động chính trong lĩnh vực giáo dục CNTT và đào tạo kỹ năng nghề nghiệp. Báo cáo thống kê cơ cấu tổ chức gồm Hội đồng sáng lập (Leader Nguyễn Thị Hồng Nhung, Co-Founders Phùng Đức Chính, Lại Thị Hồng Thơm), các phòng ban nghiệp vụ (Training Team, HR Team, Content Team, Design Team, Marketing Team, Admin Team) cùng danh sách các đơn vị đối tác chiến lược (TEL4VN, MAGIKLAB, gumi Việt Nam, Wolfun Game, ANSCENTER, SaveMoney, Gcalls).

Chương 2: Nội dung thực tập tại cơ quan tiếp nhận

Trình bày chi tiết việc tham gia khóa học chuyên đề "Linux Essential" do Mentor Nguyễn Nhất Nguyên (TEL4VN / SMACTECK) trực tiếp giảng dạy qua Google Meet trong thời gian 4 buổi học (từ ngày 26/09/2021 đến 31/10/2021, khung giờ 14h–16h Chủ nhật hàng tuần). Nội dung đào tạo bao gồm: thao tác dòng lệnh Bash, quản trị hệ thống tập tin, phân quyền thư mục, bảo mật máy chủ và tham gia buổi tọa đàm định hướng nghề nghiệp "Seminar Road Map 4U" (ngày 23/10/2021). Kết thúc khóa đào tạo, sinh viên hoàn thành bài kiểm tra tổng hợp và được cấp chứng chỉ Linux Essential.

Chương 3: So sánh thực tế với lý thuyết. Đề xuất giải pháp cải tiến

Đối chiếu giữa kiến thức lý thuyết đã học tại trường Đại học Thủ Dầu Một với môi trường làm việc và triển khai thực tế tại doanh nghiệp. Tác giả chỉ ra các điểm khác biệt về quy trình vận hành, văn hóa làm việc nhóm, áp lực tiến độ và đề xuất một số giải pháp cải tiến quy trình học tập, nâng cao kỹ năng thực hành cho sinh viên ngành phần mềm.


PHẦN 2: ĐỀ TÀI TỰ NGHIÊN CỨU

Chương 1: Giới thiệu tổng quan đề tài

Phân tích khái niệm mạng xã hội, đặc điểm, mục tiêu và chức năng cốt lõi của mạng xã hội hiện đại. Trình bày lý do hình thành đề tài What Eat từ bài toán thực tế của người dùng, xác định mục tiêu xây dựng một ứng dụng chuyên biệt kết hợp gợi ý thông minh và bản đồ số để hỗ trợ tra cứu ẩm thực.

Chương 2: Cơ sở lý thuyết và công nghệ

Trình bày tổng quan và đánh giá ưu/nhược điểm của các công nghệ nền tảng:

  • Khảo sát các nền tảng ứng dụng ẩm thực thực tế (Foody, Hatto, Bản đồ ăn).
  • Khái niệm, kiến trúc và ưu nhược điểm của React Native, NodeJS, Firebase (phân hệ Develop & Test, phân hệ Grow & Engage).
  • Kiến trúc Web API, giao thức HTTP và dịch vụ Google Map API.
  • Cơ sở toán học của Hệ thống gợi ý (Recommendation System): cấu trúc ma trận tương tác người dùng – thực thể ($Users \times Items$), kỹ thuật chuẩn hóa ma trận để loại bỏ độ lệch đánh giá (bias) và các bước xây dựng luồng gợi ý.
  • Kiến trúc luồng dữ liệu một chiều của Redux.

Chương 3: Phân tích thiết kế

Mô hình hóa toàn bộ yêu cầu chức năng và phi chức năng của hệ thống What Eat. Trình bày chi tiết danh mục 24 ca sử dụng (từ đăng nhập, đăng bài, bình luận, bản đồ, đến quản trị viên) đi kèm 19 sơ đồ tuần tự biểu diễn chi tiết luồng trao đổi thông điệp giữa Actor, Giao diện (Boundary/View), Bộ điều khiển (Controller/Service) và Cơ sở dữ liệu. Thiết lập mô hình dữ liệu quan hệ gồm 12 bảng thực thể.

Chương 4: Xây dựng và cài đặt hệ thống

Mô tả chi tiết kết quả xây dựng ứng dụng với giao diện đồ họa hoàn chỉnh: luồng màn hình chính (Dành cho bạn / Đang theo dõi), màn hình tạo bài viết và tích hợp camera, màn hình bản đồ định vị, màn hình tìm kiếm kèm 3 bộ lọc nâng cao, màn hình chi tiết món ăn / địa điểm / bài viết, màn hình nhắn tin cá nhân, sơ đồ liên kết các màn hình và sơ đồ triển khai phần cứng/phần mềm.

Chương 5: Kết luận

Tổng kết các kết quả kỹ thuật đã hoàn thành, nhận diện các điểm tồn tại và định hướng các nội dung phát triển mở rộng trong tương lai.


Kết quả và đóng góp

Kết quả chính đạt được

  • Về học phần thực tập doanh nghiệp: Sinh viên hoàn thành 100% thời lượng khóa đào tạo Linux Essential, đạt kết quả xuất sắc trong bài kiểm tra cuối khóa và được cán bộ hướng dẫn doanh nghiệp đánh giá điểm tối đa 10/10 (Mười điểm) tại Phiếu nhận xét và đánh giá thực tập.
  • Về sản phẩm phần mềm: Xây dựng thành công ứng dụng di động What Eat chạy trên nền tảng React Native với đầy đủ các phân hệ chức năng:
    • Hiện thực hóa 24 use case nghiệp vụ tương tác mạng xã hội và quản trị.
    • Tích hợp hoàn chỉnh bản đồ Google Map API cho phép tìm kiếm tọa độ quán ăn và hiển thị trực quan trên giao diện bản đồ.
    • Triển khai mô hình hệ thống gợi ý dựa trên ma trận người dùng – món ăn để phân phối nội dung vào tab "Dành cho bạn".
    • Thiết lập thành công cơ sở dữ liệu gồm 12 bảng thực thể đồng bộ với dịch vụ Firebase và Backend NodeJS.

Đóng góp của đề tài

  • Đề xuất một mô hình ứng dụng chuyên biệt kết hợp giữa mạng xã hội tương tác (chia sẻ bài viết, hình ảnh, bình luận, theo dõi bạn bè) và tiện ích tra cứu địa điểm ẩm thực thực tế kèm bản đồ số.
  • Ứng dụng thành công kỹ thuật quản lý trạng thái tập trung Redux và dịch vụ đám mây Firebase vào một đồ án ứng dụng di động hoàn chỉnh.
  • Cung cấp tài liệu phân tích thiết kế chi tiết (đặc tả 24 use case, 19 sơ đồ tuần tự, 12 bảng dữ liệu) có thể làm mẫu tham khảo cho các đồ án phát triển phần mềm di động.

Hạn chế và hướng nghiên cứu tiếp

Dựa trên nội dung tự đánh giá trong báo cáo, các hạn chế và hướng mở rộng được xác định như sau:

Hạn chế

  • Do thời gian thực tập và năng lực kinh nghiệm cá nhân còn hạn chế, hệ thống gợi ý mới dừng lại ở mô hình ma trận cơ bản, chưa xử lý triệt để bài toán khởi đầu lạnh (cold-start problem) khi người dùng mới chưa có nhiều dữ liệu tương tác.
  • Một số tính năng phức tạp về tối ưu hóa hiệu năng ứng dụng di động và bảo mật tầng API chưa được triển khai chuyên sâu.

Hướng nghiên cứu tiếp

  • Nâng cấp thuật toán gợi ý sang các mô hình học máy nâng cao (như Deep Learning / Neural Collaborative Filtering) để tăng độ chính xác của đề xuất món ăn và địa điểm.
  • Bổ sung thêm các tính năng thương mại điện tử như đặt bàn trực tuyến, liên kết thanh toán điện tử và giao đồ ăn.
  • Tối ưu hóa hiệu năng giao diện, giảm dung lượng bộ nhớ khi xử lý tải nhiều hình ảnh chất lượng cao từ người dùng.

Giá trị tham khảo

Báo cáo chuyên đề thực tập tốt nghiệp này có giá trị tham khảo thiết thực cho các đối tượng:

  • Sinh viên ngành Kỹ thuật phần mềm, Công nghệ thông tin: Là tài liệu tham khảo hoàn chỉnh về cấu trúc một báo cáo thực tập tốt nghiệp kết hợp giữa học phần chứng chỉ doanh nghiệp (Linux Essential) và đề tài nghiên cứu xây dựng phần mềm.
  • Người phát triển ứng dụng di động React Native: Tham khảo quy trình phân tích thiết kế hướng đối tượng (UML), cách tổ chức Redux store, tích hợp Firebase, Google Map API và thiết kế luồng màn hình ứng dụng mạng xã hội.
  • Nhà nghiên cứu về hệ thống gợi ý: Tham khảo phương pháp biểu diễn dữ liệu ma trận Users – Items và các bước chuẩn hóa dữ liệu thực nghiệm trong bài toán gợi ý địa điểm ẩm thực.

Câu hỏi thường gặp

1. Cơ quan tiếp nhận thực tập của sinh viên là đơn vị nào và nội dung thực tập chính gồm những gì?
Cơ quan tiếp nhận là Công ty Cổ phần CrossTech (địa chỉ tại ITP, Đại học Quốc gia TP. HCM, TP. Thủ Đức). Nội dung thực tập chính của sinh viên là tham gia và hoàn thành khóa đào tạo "Linux Essential" do CrossTech phối hợp cùng TEL4VN tổ chức gồm 4 buổi học và tham gia seminar định hướng nghề nghiệp.

2. Đề tài tự nghiên cứu được thực hiện trong báo cáo tên là gì và giải quyết bài toán nào?
Đề tài có tên: "Xây dựng mạng xã hội địa điểm ẩm thực What Eat dựa trên công nghệ React Native". Đề tài giải quyết nhu cầu tìm kiếm, đánh giá món ăn và địa điểm uy tín của người dùng ("Hôm nay ăn gì?") thông qua nền tảng mạng xã hội chuyên biệt tích hợp hệ thống gợi ý và bản đồ định vị.

3. Kiến trúc công nghệ chính được sử dụng để xây dựng ứng dụng What Eat là gì?
Hệ thống sử dụng framework React Native cho ứng dụng di động phía người dùng, quản lý trạng thái bằng Redux, máy chủ backend viết bằng NodeJS / Web API, nền tảng dịch vụ đám mây Firebase lưu trữ dữ liệu và tích hợp Google Map API cho tính năng bản đồ.

4. Cơ sở dữ liệu của hệ thống What Eat được thiết kế gồm những bảng nào?
Cơ sở dữ liệu gồm 12 bảng: Người dùng, Tài khoản đang theo dõi, Tài khoản theo dõi người dùng, Bài viết, Thích bài viết, Bình luận, Lưu trữ bài viết, Địa điểm, Các danh mục, Các quyền hạn, Tin nhắn và Món ăn.

5. Kết quả đánh giá thực tập của sinh viên tại đơn vị tiếp nhận đạt mức nào?
Sinh viên Trần Minh Hiếu được cán bộ hướng dẫn tại Công ty Cổ phần CrossTech (ông Nguyễn Nhất Nguyên) đánh giá xếp loại xuất sắc ở tất cả các tiêu chí và đạt điểm số tuyệt đối: 10/10 (Điểm chữ: Mười).


Kết luận

Báo cáo chuyên đề thực tập tốt nghiệp của sinh viên Trần Minh Hiếu (Trường Đại học Thủ Dầu Một) đã phản ánh toàn diện quá trình rèn luyện chuyên môn tại Công ty Cổ phần CrossTech và kết quả thực hiện đề tài phần mềm ứng dụng "What Eat". Báo cáo cung cấp đầy đủ từ cơ sở lý thuyết, phân tích 24 ca sử dụng, thiết kế 12 bảng cơ sở dữ liệu đến việc hiện thực hóa ứng dụng di động đa nền tảng bằng React Native kết hợp Firebase và Google Map API. Toàn bộ công trình thể hiện tính thực tiễn cao, đáp ứng đầy đủ các tiêu chuẩn học thuật của một chuyên đề thực tập tốt nghiệp ngành Kỹ thuật phần mềm.