Nội dung thực tậpĐợt thực tập với chủ đề “Đào tạo kỹ sư back-end toàn diện” kéo dài từ 1/4 đến30/6 nhằm mục đích giúp sinh viên thực tập được đào tạo toàn diện về lập trình back-end, đồn
Trang 1KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO THỰC TẬP LẬP TRÌNH BACKEND VỚI METEOR
Công ty thực tập : Công ty TNHH Giải pháp Phần mềm TISOHA Người phụ trách : Đỗ Công Bá
Thực tập sinh : Lê Thành Luân
TP Hồ Chí Minh, tháng 06 năm 2023
Trang 2tỷ trang web, nhưng nhu cầu tạo ra những trang web mới vẫn chưa có dấu hiệu giảm.
Do đó, một trang web muốn được nhiều người sử dụng phải đáp ứng được yếu tố hìnhthức và nội dung Làm thế nào để sản phẩm tạo ra đạt chất lượng cao ở hai yếu tố trên luôn làmbất kì một đội ngũ phát triển website nào cũng cần phải suy nghĩ đau đầu Để thử thách bản thântrong ngành công nghiệp web, em đã lựa chọn thực tập với vị trí Kỹ sư phần mềm là địnhhướng cho việc học tập và nghiên cứu sâu hơn trong quy trình sản xuất web
Bên cạnh thời gian học tập trên trường, do mong muốn có thêm kinh nghiệm thực tế,cũng như muốn được tham gia làm việc trong một môi trường chuyên nghiệp, em có dự định là
sẽ thực tập trong kì này Vì vậy, em quyết định chọn Công ty TNHH Giải pháp Phần mềmTISOHA là nơi sẽ giúp em thực hiện được dự định này
Trang 3Đặc biệt cảm ơn anh Võ Hoàng Đức Khoa đã training về JavaScript cũng như hướngdẫn, hỗ trợ em rất nhiều từ các vấn đề kỹ thuật đến những khó khăn trong công việc Cảm ơnanh Trương Gia Thạch và anh Dương Hoài Nam, đã giúp đỡ cho em tận tình những khó khănviệc làm quen với môi trường mới Cảm ơn anh Đỗ Công Bá đã tạo văn hóa công ty lành mạnh,chuyên nghiệp, đầy năng động giúp em hoàn thành thực tập và có thêm niềm đam mê, nhiệthuyết với lập trình Web.
Cũng xin cảm ơn thầy cô trong khoa Công nghệ phần mềm đã nhiệt tình hỗ trợ, tạo điềukiện em làm bài báo cáo này
Lê Thành LuânTpHCM, ngày 30 tháng 06 năm 2023
Trang 4NHẬN XÉT CỦA KHOA
Trang 5
MỤC LỤC
MỤC LỤC 4
CHƯƠNG 1 GIỚI THIỆU CÔNG TY THỰC TẬP 6
1 GIỚI THIỆU CÔNG TY TNHH GIẢI PHÁP PHẦN MỀM TISOHA 6
2 SẢN PHẨM CỦA CÔNG TY 6
CHƯƠNG 2 NỘI DUNG THỰC TẬP 8
1 TÌM HIỂU CÔNG TY VÀ CÁC KỸ NĂNG CƠ BẢN TRONG CÔNG TY 8
2 NGHIÊN CỨU KỸ THUẬT 8
2.1 Các công cụ làm việc 8
2.2 Tìm hiểu ngôn ngữ JavaScript 9
2.3 Nghiên cứu tài liệu và những kỹ thuật về cơ sở dữ liệu MongoDB 10
2.4 Nghiên cứu tài liệu và những kỹ thuật về framework Meteor 12
2.5 Thực hành xây dựng ứng dụng Iyyara 14
3 THỰC HIỆN PROJECT 15
4 LỊCH LÀM VIỆC 15
CHƯƠNG 3 CHI TIẾT VỀ PROJECT 19
1 GIỚI THIỆU VỀ PROJECT 19
2 CÁC CÔNG VIỆC ĐÃ LÀM 19
2.1 Cài đặt, chạy thử dự án 19
2.2 Chức năng quản lý các gói đăng ký sử dụng ứng dụng 19
2.3 Chức năng quản lý và nhận các phần thưởng 20
2.4 Chức năng quản lý các phân khúc người dùng 20
2.5 Chức năng quản lý và sử dụng các mã giảm giá 21
2.6 Chức năng đăng ký/hủy đăng ký gói và quản lý các đăng ký 21
Trang 62.8 Chức năng thanh toán khi đăng ký gói 22
2.9 Một số công việc khác 22
3 KẾT QUẢ 22
TÀI LIỆU THAM KHẢO 23
TỔNG KẾT 24
Trang 7Chương 1 Giới thiệu công ty thực tập
1 Giới thiệu Công ty TNHH Giải pháp Phần mềm TISOHA
Công ty TNHH Giải pháp phần mềm TISOHA là một doanh nghiệp được thànhlập vào 10/2020 đến nay đã hoạt động được gần 3 năm Trong thời gian hoạt động,công ty đã nhận cung cấp dịch vụ cho nhiều khách hàng tại Mỹ, Malta, Úc vàSingapore nơi tập trung phát triển ứng dụng trên nền web và lập trình ứng dụng chođiện thoại thông minh
TISOHA đem lại cho khách hàng những dịch vụ lập trình, gia công phần mềm uytín chất lượng với độ an toàn cao, khả năng mở rộng và tiết kiệm chi phí cho kháchhàng
2 Sản phẩm của công ty
Sản phẩm của công ty chủ yếu là các dự án outsource về giáo dục, giải trí, thươngmại
Trang 8Công ty luôn mang đến cho khách hàng dịch vụ phát triển, gia công phần mềmhoàn hảo từ hỗ trợ, tư vấn, bảo trì đến phát triển các ứng dụng, phần mềm một cáchtoàn diện Các sản phẩm và giải pháp do công ty triển khai được đảm bảo mức độ antoàn cao, có khả năng mở rộng, mang lại sự hài lòng về chất lượng và thỏa mãn vềchi phí.
Trang 9Chương 2 Nội dung thực tập
Đợt thực tập với chủ đề “Đào tạo kỹ sư back-end toàn diện” kéo dài từ 1/4 đến30/6 nhằm mục đích giúp sinh viên thực tập được đào tạo toàn diện về lập trình back-end, đồng thời rèn luyện những kỹ năng mềm như làm việc nhóm, thuyết trình, giao tiếp.Tại công ty, sinh viên có cơ hội được học tập, khám phá và làm việc trong một môitrường phát triển web chuyên nghiệp
1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty
Thời gian: 2 ngày
Nội dung: Giới thiệu về công ty, cách tổ chức của công ty
Được nghe người phụ trách giới thiệu về công ty, quá trình thành lập và phát triển(như đã nhắc đến ở trên), quy trình làm việc từ cao xuống thấp, cách thức tổ chức củacông ty
Ngoài ra, thực tập sinh còn được giới thiệu về cách thức làm việc trong công tynhư thời gian đi làm, các quy định cần phải tuân thủ, cách sử dụng email trong công việc,cách ước tính thời gian hoàn thành công việc, sử dụng các phần mềm chuyên nghiệp chocông việc,…
Kết quả: Hiểu thêm về công ty TISOHA, quá trình thành lập và phát triển Có thêm các
kỹ năng về việc sử dụng email, các phần mềm trong công việc, làm việc có kế hoạch, có
kỷ luật, có trách nhiệm hơn
2 Nghiên cứu kỹ thuật
2.1 Các công cụ làm việc
Thời gian: 1 ngày
Nội dung: Tìm hiểu về các công cụ sẽ được sử dụng trong quá trình làm việc.
Trong thời gian này, người phụ trách đã hướng dẫn thực tập sinh tìm hiểu về cáccông cụ sẽ giúp ích cho trong công việc sau này Một số phần mềm trong số đó như
Trang 10Slack – Phần mềm chat, report công việc hàng ngày của công ty, Jira – Ứng dụngtheo dõi và quản lý quy trình phát triển phần mềm, Redmine – Công cụ quản lý vàtheo dõi, kiểm soát các vấn đề của dự án, Visual Studio Code – Trình chỉnh sửa mãnguồn, Git – Hệ thống quản lý các phiên bản mã nguồn phân tán, Gitlab – Phần mềmquản lý kho mã nguồn Git,…
Thực hiện : Thực hành sử dụng các phần mềm đã nêu trên.
Kết quả : Làm quen và sử dụng được những phần mềm đã nêu trên.
2.2 Tìm hiểu ngôn ngữ JavaScript
Thời gian: 4 ngày.
Nội dung: Tham gia khóa đào tạo “Cấp tốc JavaScript trong 4 ngày”:
JavaScript là một ngôn ngữ lập trình phổ biến được sử dụng rộng rãi trong phát triểnweb Ban đầu, nó được tạo ra để thực hiện các tác vụ phía máy khách trên trình duyệtweb, nhưng hiện nay nó cũng được sử dụng cho việc phát triển ứng dụng di động và phíamáy chủ Để nắm được các kiến thức cơ bản của JavaScript, em đã tham gia khóa học
“Cấp tốc JavaScript trong 4 ngày” của công ty dưới sự hướng dẫn của anh Võ HoàngĐức Khoa với lộ trình như sau:
- Ngày 1:
Học cú pháp cơ bản của JavaScript, bao gồm biến, kiểu dữ liệu, toán tử và cấutrúc các câu lệnh điều kiện và vòng lặp
Tìm hiểu về hàm và cách khai báo, gọi và truyền tham số cho hàm
Thực hành với các bài tập về cú pháp và hàm để làm quen với việc viết mãJavaScript đơn giản
Trang 11 Thực hành với các bài tập liên quan đến mảng và đối tượng để nắm vững các kháiniệm này.
- Ngày 3:
Học về sự kiện và xử lý sự kiện trong JavaScript, bao gồm việc tạo các hàm xử lý
sự kiện và gán chúng cho các phần tử HTML
Tìm hiểu về DOM (Document Object Model) và cách truy cập, thay đổi nội dung
và thuộc tính của các phần tử HTML bằng JavaScript
Thực hành với các bài tập liên quan đến xử lý sự kiện và DOM để hiểu rõ hơn vềtương tác với trang web
- Ngày 4:
Học về AJAX và cách sử dụng Fetch API để gửi và nhận dữ liệu từ máy chủ
Tìm hiểu về JSON (JavaScript Object Notation) và cách làm việc với dữ liệuJSON trong JavaScript
Thực hành với các bài tập liên quan đến AJAX và JSON để làm quen với việctương tác với dịch vụ web
Thực hiện:
- Tham gia đầy đủ các buổi training của công ty
- Nghiên cứu, kết hợp thực hành tài liệu mà công ty cung cấp
Kết quả:
- Nắm được kiến thức JavaScript cơ bản
- Có thể tạo một ứng dụng TodoApp đơn giản bằng JavaScript
2.3 Nghiên cứu tài liệu và những kỹ thuật về cơ sở dữ liệu MongoDB
Thời gian: 5 ngày (1 tuần).
Nội dung: Tham gia khóa đào tạo của công ty về các kiến thức về MongoDB:
Trang 12MongoDB là một hệ quản trị cơ sở dữ liệu phi quan hệ (NoSQL) mã nguồn mở và linhhoạt Nó được thiết kế để lưu trữ và xử lý dữ liệu phi cấu trúc, cho phép lưu trữ dữ liệudưới dạng tài liệu kiểu JSON được gọi là BSON (Binary JSON).
Để nắm vững các kiến thức cơ bản về framework này, em đã tham gia một khóa học
“Làm chủ MongoDB trong 10 ngày” với sự hỗ trợ hướng dẫn đến từ anh Võ Hoàng ĐứcKhoa với lộ trình như sau:
- Ngày 1: Giới thiệu về MongoDB
Tìm hiểu về cấu trúc và tính năng của MongoDB
Cài đặt MongoDB trên máy tính và tạo cơ sở dữ liệu đầu tiên
- Ngày 2: Câu truy vấn và tìm kiếm dữ liệu
Học cách thực hiện các câu truy vấn cơ bản trong MongoDB
Tìm hiểu cách tìm kiếm và lọc dữ liệu theo các tiêu chí khác nhau
- Ngày 3: Quản lý dữ liệu
Nắm vững cách thêm, sửa và xóa dữ liệu trong MongoDB
Tìm hiểu về các toán tử cập nhật dữ liệu và đảm bảo tính nhất quán của dữ liệu
- Ngày 4: Cấu trúc dữ liệu phức tạp
Học cách làm việc với các cấu trúc dữ liệu phức tạp như mảng và nhúng
Tìm hiểu về các chỉ mục và tối ưu hóa truy vấn dữ liệu
- Ngày 5: Tích hợp và triển khai
Tìm hiểu cách kết hợp MongoDB với ứng dụng web
Trang 13 Thực hiện quá trình triển khai MongoDB lên môi trường production.
Thực hiện:
- Tham gia đầy đủ các buổi trainning
- Làm các bài tập thực hành từ hướng dẫn của tài liệu
- Tìm kiếm tài liệu trên mạng để tìm hiểu thêm
Kết quả:
- Hiểu được những khái niệm cơ bản về MongoDB
- Tạo được cơ sở dữ liệu cho TodoApp bằng MongoDB
2.4 Nghiên cứu tài liệu và những kỹ thuật về Meteor
Thời gian: 10 ngày (2 tuần).
Nội dung: Tham gia khóa đào tạo của công ty về sử dụng framework Meteor trong lập
trình giao diện ứng dụng web:
Meteor là một framework JavaScript hỗ trợ lập trình ứng dụng web ở cả phía client vàserver, vốn được biết đến nhiều bởi sự đơn giản và dễ sử dụng Với sự kết hợp giữaNodeJS, MongoDB và các front-end framework như Blaze hay React, Meteor cho phépcác nhà phát triển xây dựng những ứng dụng web thời gian thực Meteor còn cho phép tựđộng cập nhật giao diện tương ứng với dữ liệu ở phía server thông qua sự đồng bộ hóa
dữ liệu giữa server và client Các đặc điểm nổi bật của Meteor bao gồm đồng bộ hóa dữliệu, bộ nhớ cơ sở dữ liệu ở phía client, và một trình CLI mạnh mẽ Cộng đồng củaMeteor cũng khá đông và nhiệt tình giúp đỡ lẫn nhau
Để nắm vững các kiến thức cơ bản về framework này, em đã tham gia một khóa học
“Làm chủ framework Meteor trong 10 ngày” với sự hỗ trợ hướng dẫn đến từ anh VõHoàng Đức Khoa với lộ trình như sau:
Trang 14- Ngày 1: Giới thiệu về Meteor
Tìm hiểu về cấu trúc và tính năng của Meteor
Cài đặt môi trường phát triển ứng dụng với Meteor
- Ngày 2: Xây dựng ứng dụng Meteor cơ bản
Tìm hiểu về Blaze, framework xây dựng giao diện mặc định của Meteor
Tạo một ứng dụng đơn giản sử dụng Blaze và Meteor
Tìm hiểu về cấu trúc và tổ chức file trong Meteor
- Ngày 3: Làm việc với Collections
Nghiên cứu về hệ thống collections của Meteor và các phương thức CRUD
Thực hiện các chức năng tạo, đọc, cập nhật và xóa dữ liệu
- Ngày 4: Tạo ứng dụng TodoApp với Meteor và React
Học cách tích hợp React vào dự án Meteor
- Ngày 5 và 6: Cập nhật dữ liệu thời gian thực
Hiểu về khái niệm publications và subscriptions trong Meteor
Thực hiện cập nhật dữ liệu thời gian thực trong ứng dụng Meteor sử dụng React
- Ngày 7: Routing và điều hướng
Tạo các route trong ứng dụng Meteor bằng React Router
Xây dựng các liên kết và điều hướng giữa các trang
Trang 15
- Tìm hiểu về cách quản lý trạng thái giao diện ứng dụng web với Redux.
Tích hợp Redux vào TodoApp
- Ngày 10: Tối ưu hóa và triển khai
Tìm hiểu về cách tối ưu hiệu suất trong Meteor
Thực hiện quá trình triển khai ứng dụng Meteor lên môi trường production
]Thực hiện:
- Tham gia đầy đủ các buổi training
- Làm các bài tập thực hành từ hướng dẫn của tài liệu
- Tìm kiếm tài liệu trên mạng để tìm hiểu thêm
Kết quả:
- Nắm được các kiến thức cơ bản về Meteor
- Nắm được các kiến thức về lập trình ứng dụng web toàn diện bằng Meteor vàReactJS
- Tạo được ứng dụng TodoApp bằng Meteor và ReactJS
2.5 Thực hành xây dựng máy chủ API cho dự án Iyyara
Thời gian: 2 tháng.
Nội dung: Thực hành các kiến thức đã học và tìm hiểu được để xây dụng một máy chủ
API theo yêu cầu của người hướng dẫn
Kết quả: Xây dựng được một máy chủ API đáp ứng được những yêu cầu đặt ra.
Trang 163 Thực hiện project
Sau một tháng được đào tạo và thực hành, thực tập sinh đã nắm được những kiếnthực cơ bản về API, JavaScript, Meteor, MongoDB Trong tháng thứ hai, người hướngdẫn đã hướng dẫn thực tập sinh áp dụng những kiến thức đã học để tham gia thực chiến
dự án mới của công ty
Chi tiết thực hiện dự án sẽ được nói ở phần sau
4 Lịch làm việc
Tuần Công việc Người hướng dẫn
Mức độ hoàn thành
Nhận xét của người hướng dẫn
1
- Tìm hiểu về công
ty, cách tổ chức củacông ty
- Làm quen với cáccông cụ làm việctrong công ty
- Học cách trao đổi,làm việc qua email,Slack, Jira
- Tìm hiểu về ngônngữ lập trìnhJavaScript
- Làm ứng dụng
JavaScript
Anh Võ HoàngĐức Khoa
3 - Tìm hiểu về Anh Võ Hoàng
Trang 17- Tìm hiểu thêm vềframework Meteor
- Cài đặt hệ thốngAPI cho TodoApp
sử dụng frameworkMeteor và cơ sở dữliệu MongoDB
Anh Võ HoàngĐức Khoa
5
Iyyara spring 1:
- Đọc tài liệu, đọc mãnguồn dự án
- Tham gia các buổihọp với khách hàng
Anh Võ HoàngĐức Khoa
6
Iyyara spring 1(tiếp):
- Tạo schema và cácAPI của taskRewards
Management
- Viết unit tests
- Sửa các lỗi logic
Anh Võ HoàngĐức Khoa
segmentationsManagement
Anh Võ HoàngĐức Khoa
Trang 18- Viết unit tests.
8
Iyyara spring 2 (tiếp):
- Tạo schema và cácAPI của taskCoupons
Management
- Viết unit tests
- Sửa các lỗi logic
Anh Võ HoàngĐức Khoa
Management
- Viết unit tests
Anh Võ HoàngĐức Khoa
10
Iyyara spring 3 (tiếp):
- Tìm hiểu về kháiniệm cronjob vàviết các cronjobscho task Entitiesauto expiration
- Sửa các lỗi logic
Anh Võ HoàngĐức Khoa
Anh Võ HoàngĐức Khoa
12 Iyyara spring 4 (tiếp):
- Dùng webhookscủa Stripe bắt sựkiện thanh toán
Anh Võ HoàngĐức Khoa
Trang 19thành công.
- Sửa các lỗi logic
- Viết báo cáo thựctập
Trang 20Chương 3 Chi tiết về project
1 Giới thiệu về project
Iyyara là một nền tảng tìm kiếm và xếp hạng các nhà hàng dành cho người Hồi giáo ởSingapore Ứng dụng hoạt động như một trang tìm kiếm, đánh giá và cung cấp các ưu đãicũng như quà tặng cho người dùng khi đến các nhà hàng được ứng dụng khuyến nghị.Iyyara bao gồm cả nền tảng ứng dụng di động (Android/iOS) và web
2 Các công việc đã làm
2.6 Cài đặt, chạy thử dự án
Nội dung: Clone source code và chạy thử dự án.
Thực hiện:
- Cài đặt Docker, Git và đăng nhập Gitlab
- Đọc tài liệu về dự án và tài liệu hướng dẫn
- Cài đặt pre-commit
2.7 Chức năng quản lý các gói đăng ký sử dụng ứng dụng
Nội dung: Viết các API quản lý các gói đăng ký sử dụng ứng dụng, đặc biệt là về gói
đăng ký 1 kèm 1
Thực hiện:
- Đọc tài liệu yêu cầu của task
- Thảo luận với nhóm đảm nhận mảng front-end
Trang 21- Viết các API phục vụ cho việc quản lý gói đăng ký.
- Viết các unit test
- Test các API với bên front-end
2.8 Chức năng quản lý và nhận các phần thưởng
Nội dung: Viết các API quản lý và nhận các phần thưởng khi người dùng sử dụng ứng
dụng
Thực hiện:
- Đọc tài liệu yêu cầu của task
- Thảo luận với nhóm đảm nhận mảng front-end
- Viết các API phục vụ cho việc quản lý và nhận phần thưởng
- Viết các unit test
- Test các API với bên front-end
2.9 Chức năng quản lý các phân khúc người dùng
Nội dung: Viết các API quản lý các phân khúc người dùng.
Thực hiện:
- Đọc tài liệu yêu cầu của task
- Thảo luận với nhóm đảm nhận mảng front-end
- Viết các API phục vụ cho việc quản lý các phân khúc người dùng
- Viết các unit test