1
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO THỰC TẬP
XÂY DỰNG DỰ ÁN WEB E-COMMERCE
Công ty thực tập
: GEEK UP TECHNOLOGY JSC
Người phụ trách
: Nguyễn Minh Trung
Thực tập sinh
: Võ Minh Quý
Mã số sinh viên
: 18521316
TP. Hồ Chí Minh, tháng 1 năm 2022
Võ Minh Quý
2
LỜI MỞ ĐẦU
Ngày nay, ngành công nghiệp phát triển ứng dụng điện thoại và web là một bộ phận không
thể thiếu của ngành công nghiệp phần mềm. Với tốc độ phát triển vô cùng mạnh mẽ, ngành phát
triển ứng dụng điện thoại đã và đang là nhân tố kích thích sự phát triển của công nghệ thông tin
thế giới, cả về phần cứng và phần mềm.
Cùng với xu thế phát triển của thế giới, Việt Nam cũng không phải ngoại lệ. Ngành công
nghiệp phát triển ứng dụng điện thoại non trẻ Việt Nam đã và đang phát triển mạnh mẽ, để hòa
nhập với những công ty hàng đầu về xây dựng ứng dụng điện thoại trên thế giới. Bên cạnh sự
phát triển của ứng dụng di động thì những ngành nghề được tiếp cận người dùng một cách nhanh
chóng như những gì ta có thể thấy là mạng xã hội hay những app bán hàng trực tuyến cũng đang
rất thịnh hành trên cả thế giới lẫn Việt Nam.
Sau ba năm 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 tìm hiểu, bổ sung kiến thức trong một môi trường chuyên nghiệp, em có dự định là
sẽ thực tập trong học kì. Vì vậy, em quyết định chọn GEEK UP TECHNOLOGY JSC là nơi sẽ
giúp em thực hiện được dự định này.
Võ Minh Quý
3
LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn Công ty cổ phần công nghệ GEEK Up đã tạo điều kiện
cho em có cơ hội được thực tập tại công ty.
Trong thời gian ngắn là 10 tuần thực tập ở công ty, nhờ sự chỉ dẫn nhiệt tình của
nhóm trainer, team đã có thể nắm và tiếp thu được những kiến thức nền tảng để có thể xây
dựng được một sản phẩm đúng quy trình. Chân thành cảm ơn các anh chị trong nhóm
trainer đã bỏ ra nhiều thời gian, công sức để hướng dẫn chúng em hoàn thành đợt thực tập
này.
Cảm ơn anh Trung đã giúp đỡ team về workflow, các teamwork và kiến thức về
mảng Frontend. Cảm ơn anh Hiếu đã giúp đỡ team, chia sẻ kinh nghiệm, kiến thức về
mảng Backend. Cảm ơn chị Thương đã giúp team hoàn thành dự án đúng với business
logic. Cảm ơn chị Uyên đã giúp đỡ team hiểu biết hơn về văn hóa, cách làm việc của công
ty, đồng thời đưa ra nhiều lời khuyên giúp team có thể làm việc hiệu quả hơn. Cảm ơn anh
Thịnh đã giúp đỡ team review code, cách giải quyết vấn đề. Cảm ơn toàn thể GEEK Up
đã giúp team hoàn thiện kỹ năng trong quá trình làm việc.
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ều kiện em làm bài báo cáo này.
Võ Minh Quý
TP.HCM, ngày 5 tháng 1 năm 2022
Võ Minh Quý
4
NHẬN XÉT CỦA KHOA
Võ Minh Quý
5
MỤC LỤC
MỤC LỤC
1
Chương 1: Giới thiệu công ty thực tập
2
1. Giới thiệu về công ty cổ phần công nghệ GEEK UP.
2. Sản phẩm của công ty
Chương 2: Nội dung thực tập
1. Tìm hiểu công ty và các kỹ năng cơ bản trong công ty
2. Nghiên cứu kỹ thuật
3. Thực hiện project
4. Lịch làm việc
Chương 3: Chi tiết về project
1. Giới thiệu dự án
2. Team phát triển
3. Công nghệ sử dụng
4. Phạm vi
5. Kết quả
Chương 4: Kết quả đạt được
TÀI LIỆU THAM KHẢO
TỔNG KẾT
6
7
8
8
8
9
10
11
11
11
12
13
14
15
16
17
Võ Minh Quý
6
Chương 1: Giới thiệu công ty thực tập
1. Giới thiệu công ty cổ phần công nghệ GEEK UP
- Tên công ty: Công ty cổ phần công nghệ Geek Up (GEEK UP TECHNOLOGY
JSC)
- Địa chỉ:
+ Trụ sở chính: 244/31 Huỳnh Văn Bánh, Phường 11, Quận Phú Nhuận,
Thành phố Hồ Chí Minh
+ Chi nhánh: 27B/9 Nguyễn Đình Chiểu, Phường Đa Kao, Quận 1, Thành
phố Hồ Chí Minh
- Trang web: www.geekup.vn
- Email:
[email protected]
- Điện thoại: +84 28 6262 4400
- Slogan: “Insightful development”
- Sứ mệnh: Xây dựng các sản phẩm phần mềm mang lại nhiều giá trị cho người
dùng
2. Sản phẩm của công ty
GEEK Up hợp tác và làm việc với vai trò là một Product Partner cung cấp toàn
diện đáp ứng mọi nhu cầu trong toàn bộ chu trình phát triển sản phẩm của doanh
nghiệp. Là đối tác của nhiều tập đoàn lớn như: Viettel, Mobifone, FPT, TPBank, ...
Rất nhiều sản phẩm được sử dụng rộng rãi như: ứng dụng ngân hàng TP Bank, Ứng
dụng Waitrr tại Singapore, d2o hệ thống quản lý hiệu suất dành riêng cho các chuỗi
hospitality lớn nhất thế giới và rất nhiều sản phẩm khác. Tất cả những sản phẩm được
xây dựng bởi GEEK Up đều ở mức “highest standards” cho mỗi dự án phát triển phần
mềm.
Võ Minh Quý
7
Dự án ứng dụng ebank của ngân hàng TPBank
Dự án waitrr của đối tác Singapore
Võ Minh Quý
8
Chương 2: Nội dung thực tậ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: 1 tuần
Nội dung: Giới thiệu về công ty, cách tổ chức của công ty
Được các anh chị là các senior trong từng mảng giới thiệu về công ty. Quy trình
phát triển phần mềm tại công ty. Giới thiệu về mô hình làm việc Agile, các văn hóa của
công ty, thời gian làm việc, cũng như các tool quản lý dự án của công ty. Giới thiệu về các
anh chị sẽ làm việc cùng với team.
Training về công nghệ được sử dụng trong backend, frontend của dự án.
Kết quả: Biết thêm về GEEK Up, quá trình thành lập và phát triển. Hiểu rõ hơn về working
way và các process khi làm việc. Cách sử dụng các tool để quản lý dự án, cách sử dụng
email.
2. Tìm hiểu dự án.
Thời gian: 2 ngày
Nội dung:
- Các bước khởi động cho dự án mới. PA giới thiệu về dự án:
• Mục tiêu, phạm vi của dự án
• Các anh chị sẽ hỗ trợ các mảng trong dự án
- Team thực hiện dự án.
- Lên kế hoạch cho dự án:
• Xây dựng các milestone
• Xây dựng iteration
• Xây dựng sprint
• Xây dựng tài liệu quy chuẩn cho dự án
• Tạo các backlog để làm việc
Kết quả: Nắm và hiểu rõ dự án để tránh đi sai hướng. Thống nhất quy chuẩn
làm việc trong dự án.
3. Xây dựng project.
Sau khi xây dựng kế hoạch cho dự án. Team dựa trên kế hoạch phát triển dự án. Do team
sử dụng Agile trong quá trình phát triển phần mềm nên sẽ có những hoạt động sau:
Võ Minh Quý
9
-
Khỏi đầu project sẽ có 1 buổi backlog workshop. Trong buổi này các member sẽ define ra
toàn bộ công việc cần phải làm trong quá trình thực hiện dự án.
Một milestone sẽ được chia thành cách Sprint (1-4 tuần)
Các hoạt động trong 1 sprint:
-
-
Sprint planning:
- Time box: 2-4h tùy thuộc vào thời gian kéo dài của 1 sprint.
- Goal: Team sẽ define ra mục tiêu của sprint, các Definition of Done.
- What: Team sẽ pick các backlog cần thiết để có thể đạt được mục tiêu. Các
backlog đã define trong backlog workshop.
- How: Team sẽ phối hợp cùng nhau để tìm giải pháp để có thể thực hiện các
backlog một cách tốt nhất.
Daily scrum: Đây là hoạt động khoảng 15p diễn ra hàng ngày, giúp cách member
trong team có thể nắm bắt được tiến độ của dự án và support member nếu cần.
-
Review: (Hoạt động diễn ra mỗi cuối Sprint)
-
- Review là hoạt động review lại sprint đó.
- Xem xét tiến độ công việc.
- Xem lại goal của Sprint để biết được những goal đã đạt được và thất bại.
Retrospective: (Hoạt động diễn ra mỗi cuối Sprint)
-
Team đánh giá lại cách làm việc, những ưu điểm khuyết điểm trong quá trình
làm việc của team. Từ đó đưa ra các action để có thể cải thiện tốt hơn trong
các Sprint sau.
- Sau các mốc milestone sẽ có buổi demo với khách hàng, dựa vào feedback của khách
hàng sẽ cải thiện lại, giúp dự án đi đúng hướng và đúng tiến độ.
-
Sau khi hoàn thiện sản phẩm sẽ có 1 buổi đánh giá tiêu chuẩn của sản phẩm đó.
-
Cuối cùng là demo sản phẩm đang làm trước công ty.
Kết quả: Hiểu rõ quy trình làm việc trên mô hình Agile. Biết cách đặt mục tiêu và cách
thức làm việc nhóm.
4. Lịch làm việc.
- Khung giờ làm từ 8h30 đến 11h30 và từ 13h30 đến 17h30. Từ thứ 2 đến thứ 6 hàng tuần.
Võ Minh Quý
10
Tuần
Công việc
1
- Giới thiệu về mô hình làm việc
Agile
- Văn hóa của công ty, thời gian
làm việc
Làm quen với các tool quản lý
dự án của công ty.
- Giới thiệu về các anh chị sẽ
làm việc cùng với team.
Training về công nghệ được sử
dụng trong backend, frontend
của dự án.
Anh Trung Nguyễn, 9/10
Chị Uyên Phan,
2
- Kick off dự án
- Backlog workshop
- Milestone
Anh Trung Nguyễn
3
- Tiến hành xây dựng dự án
- Xen kẽ là các buổi demo vào
tuần 5, 8
Anh Trung Nguyễn, 8/10
anh Hiếu Đặng
10
- Final demo.
- Đánh giá dự án.
- Chuẩn bị báo cáo trước
công ty về dự án.
Anh Trung Nguyễn, 9/10
anh Hiếu Đặng, anh
Thịnh Võ
11
Làm workshop sharing về dự án
đã làm trước công ty
Anh Trung Nguyễn, 9/10
anh Hiếu Đặng
4
Người hướng dẫn
Mức độ hoàn thiện
9/10
5
6
7
8
9
Võ Minh Quý
11
Chương 3: Chi tiết về project.
1. Giới thiệu về dự án.
Trong GEEK Up xây dựng một hệ thống để nhằm hỗ trợ cho quá trình hoạt động
và phát triển của công ty. Được gọi là GUA (GEEK Up architecture). Dự án của
team là một product nằm trong hệ sinh thái GUA (Vì lý do bảo mật thông tin cho
GEEK Up nên chỉ chia sẻ về phạm vi sử dụng của project).
2. Team phát triển.
Team phát triển bao gồm:
- Anh Hải Nhân (CEO GEEK Up): Product Ower dự án
- Chị Thương (PA tại GU): Product analyst
- Chị Vân (PD tại GU): Product designer
- Anh Trung (Product Frontend): hỗ trợ PF + PIC
- Anh Hiếu (Product Backend): hỗ trợ PB
- Minh Quý: Product Backend
- Duy Nguyễn: Product Backend
- Khang Phạm: Product Backend
- Quang Trần: Product Backend
- Di Nguy: Product Backend
- Hoàng Nhựt: Product Backend
- Tiến Đạt: Product Frontend
- Nhật Quân: Product Frontend
3. Công nghệ sử dụng.
a. Tech stack.
- Backend: Sử dụng framework Nestjs, Postgres DB, docker, docker-compose,
gitlab cicd, sử dụng minio để lưu trữ ảnh
- Frontend: Sử dụng ReactJs, quản lý state bằng dva js, sử dụng umiJs để dựng
skeleton, ant.design cho UI.
- Server: sử dụng Caprover.
- Quản lý source code: Gitlab
- Quản lý tiến độ dự án: Otable (Một app của riêng GEEK UP build dùng cho mục
đích quản lý dự án)
Võ Minh Quý
12
b. Architecture
Dự án được xây dựng dựa trên mô hình hexagon architecture:
Các nguyên lý khi xây dựng theo kiến trúc hexagon
• Nguyên lý 1: Tách biệt User-Side, Business Logic và Server-Side
• Nguyên lý 2: Dependency vào Business Logic
• Nguyên lý 3: Ranh giới được cô lập với Interface
Võ Minh Quý
13
c. Git workflow
-
Workflow:
Nhánh Master là nhánh chính của source.
Nhánh hotfix sẽ là nhánh được checkout từ master để sửa các lỗi còn lại khi test
trên master.
Nhánh Feature sẽ là các nhánh dùng để xây dựng các chức năng của dự án
Nhánh dev sẽ là nhanh dùng trong xuyên suốt dự án. Các nhánh feature sẽ được
merge vào dev để bổ sung các chức năng và test tại nhánh này.
Nhánh release sẽ là nhánh sau khi kiểm thử các tính năng. Xảy ra 2
trường hợp:
+ Nếu nhánh release hoàn thành các bài test và hoàn thành phiên bản sẽ
được đẩy lên nhánh master.
+ Nếu chưa hoàn thiện sẽ được đẩy về nhánh dev để hoàn thiện lại sản phẩm.
Võ Minh Quý
14
4. Phạm vi.
Dự án của team là một product nằm trong hệ sinh thái GUA. Được sử dụng bởi
team tuyển dụng của GEEK Up
5. Kết quả đạt được của project.
- Dự án hoàn thành đầy đủ các tính năng của sản phẩm.
- Xây dựng sản phẩm đúng business logic.
Võ Minh Quý
15
Chương 4: Kết quả đạt được trong quá trình thực tập tại GEEK
Up
- Đạt top performers tại kỳ thực tập.
- Học được những kiến thức cơ bản để xây dựng 1 sản phẩm tế.
- Học được các làm việc và giao tiếp 1 các hiệu quả giữa các chapter khác nhau.
- Áp dụng được scrum vào trong môi trường làm việc thực tế.
- Học hỏi được nhiều kiến thức chuyên môn.
- Tại GEEK Up học được thêm nhiều về các kỹ năng mềm như thuyết trình, kĩ năng
làm việc.
- Tiếp thu được văn hoá tốt tại GEEK Up.
- Cải thiện đáng kể được kỹ năng làm việc nhóm.
Võ Minh Quý
16
TÀI LIỆU THAM KHẢO
NestJs: https://docs.nestjs.com
Antd: https://ant.design
Umijs: https://umijs.org/docs
Postgres: https://www.postgresql.org/docs/
Hexagon:https://herbertograca.com/2017/11/16/explicit-architecture-01-dddhexagonal-onion-clean-cqrs-how-i-put-it-alltogether/?fbclid=IwAR2r8eNY1A4OCOuRfxeoS2skVWbQVXhRmpz8Xd5m_zX8P
-GxXAdRsOOh-ZE
Võ Minh Quý
17
TỔNG KẾT
Trong kì thực tập 11 tuần thực tập tại GEEK Up với sự giúp đỡ nhiệt tình từ các anh chị,
team đã học hỏi được ra rất nhiều kiến thức mới và bổ ích. Team cũng đã xây dựng được 1 product
trong hệ sinh thái của GEEK Up. Hiểu biết và nắm bắt được quy trình để xây dựng được 1 sản
phẩm có giá trị.
Chân thành cảm ơn tất cả các anh/chị trong GEEK Up đã tận tình giúp đỡ để nhóm hoàn
thiện được dự án trên.
Võ Minh Quý