Tải bản đầy đủ (.docx) (17 trang)

Báo cáo thực tập backend developer

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (520 KB, 17 trang )

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
BACKEND DEVELOPER

Công ty thực tập:
Người phụ trách:

Công ty cổ phần công
nghệ GEEK Up
ThS Trần Thị Hồng Yến

Thực tập sinh:

Võ Vương Thanh Tú

1


TP. Hồ Chí Minh, tháng 12 năm 2022

LỜI MỞ ĐẦU

Ngày nay, ngành công nghiệp xây dựng sản phẩm số là một phần không
thể thiếu của ngành công nghiệp phát triển phần mềm. Với tốc độ phát
triển vô cùng mạnh mẽ, ngành xây dựng sản phẩm số đã 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ù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ệ. Việt Nam cũng góp phần vào sự phát triển của ngành phát triển sản
phẩm số với sự tham gia của những công ty như GEEK Up.


Ngành phát triển sản phẩm số được sinh ra là do nhu cầu sử dụng phần
mềm trong công việc và cuộc sống hằng ngày bằng những thiết bị cơng
nghệ mới nhất. Vì lý do này, em quyết định chọn phát triển sản phẩm số
làm định hướng cho việc học tập của mình.
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 tham gia làm sản phẩm trong một môi
trường chuyên nghiệp, em có dự định là sẽ thực tập. Vì vậy, em quyết định
chọn GEEK Up - một mơi trường lý tưởng để phát triển những sản phẩm
tuyệt vời - là nơi sẽ giúp em thực hiện được dự định này.

2


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.
Chỉ trong một thời gian ngắn, nhưng nhờ sự chỉ dẫn nhiệt tình của nhóm
trainer, nhóm thực tập chúng em đã tiếp thu được những kiến thức quan
trọng để có thể làm được một trang web thương mai điện tử. 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 hồn thành đợt thực tập này.
Đặc biệt cảm ơn anh Khoa, đã training Backend, hướng dẫn, giúp đỡ cho
chúng em tận tình cả những khó khăn trong cơng việc; cảm ơn anh Tuấn,
đã training Frontend, hỗ trợ chúng em rất nhiều về các vấn đề kỹ thuật
của Frontend; cảm ơn anh Hiếu, đã chỉ dẫn chúng em về cách làm báo
cáo, lên kế hoạch, những kỹ năng không thể thiếu để có thể làm ra một
sản phẩm trong thời gian qua.
Em cũng xin cảm ơn Team People của GEEK Up đã luôn quan tâm, lắng
nghe và thấu hiểu vấn đề của tụi em.

Em cũng xin cảm ơn cô lao công đã hàng ngày mang trái cây lên phòng
làm việc cho tụi em, cảm ơn các anh chị nhân viên pha chế đã làm ra
những ly nước, những phần bánh tuyệt ngon và những câu quote cực kỳ
truyền cảm hứng khiến cho chúng em ln có động lực để làm việc, khơng
những thế lại còn được free nữa.
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 cho em làm bài báo cáo này.
TP. HCM, ngày 31 tháng 12
năm 2022

Võ Vương Thanh Tú

3


NHẬN XÉT CỦA KHOA
......................................................................................................................
............................. ........................................................................................
........................................................... ..........................................................
......................................................................................... ............................
......................................................................................................................
. ....................................................................................................................
............................... ......................................................................................
............................................................. ........................................................
........................................................................................... ..........................
......................................................................................................................
... ..................................................................................................................
................................. ....................................................................................
............................................................... ......................................................
............................................................................................. ........................

......................................................................................................................
..... ................................................................................................................
................................... ..................................................................................
................................................................. ....................................................
............................................................................................... ......................
......................................................................................................................
....... ..............................................................................................................
..................................... ................................................................................
................................................................... ..................................................
................................................................................................. ....................
......................................................................................................................
......... ............................................................................................................
....................................... ..............................................................................
..................................................................... ................................................
................................................................................................... ..................
......................................................................................................................
........... ..........................................................................................................
......................................... ............................................................................
....................................................................... ..............................................
..................................................................................................... ................
......................................................................................................................
............. ........................................................................................................
........................................... ..........................................................................
......................................................................... ............................................
....................................................................................................... ..............
......................................................................................................................
............... ......................................................................................................
............................................. ........................................................................
4



........................................................................... ..........................................
......................................................................................................... ............
......................................................................................................................
................. ....................................................................................................
............................................... ......................................................................
............................................................................. ........................................
........................................................................................................... ..........
......................................................................................................................
................... ..................................................................................................
................................................. ....................................................................
...............................................................................

MỤC LỤC
LỜI MỞ ĐẦU............................................................................................................................2
LỜI CẢM ƠN............................................................................................................................3
NHẬN XÉT CỦA KHOA.........................................................................................................4
MỤC LỤC..................................................................................................................................5
CHƯƠNG 1: GIỚI THIỆU CƠNG TY THỰC TẬP.................................................................6
1.1. Giới thiệu cơng ty cơng nghệ Geek Up...........................................................................6
1.2. Sản phẩm công ty............................................................................................................6
1.3. Lịch làm việc khi thực tập tại công ty.............................................................................6
CHƯƠNG 2: NỘI DUNG THỰC TẬP.....................................................................................9
2.1. Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty..................................................9
2.2. Nghiên cứu kỹ thuật........................................................................................................9
2.2.1. Các công cụ làm việc...............................................................................................9
2.3. Tham gia dự án thực tế....................................................................................................9
2.3.1. Công nghệ................................................................................................................9
2.3.2. Mơ tả dự án............................................................................................................10
2.3.3. Q trình thực hiện:................................................................................................12

CHƯƠNG 3: TỔNG KẾT.......................................................................................................14
3.1. Điểm mạnh....................................................................................................................14
3.2. Điểm yếu.......................................................................................................................14
3.3. Chuẩn đạt được.............................................................................................................14
TÀI LIỆU THAM KHẢO........................................................................................................15

5


6


CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP

1.1. Giới thiệu cơng ty cơng nghệ Geek Up

Hình 1.1. Logo cơng ty GEEK UP
GEEK Up được thành lập bởi các kỹ sư lập trình và chuyên viên thiết
kế đam mê phát triển sản phẩm phần mềm. Mục tiêu ban đầu của GEEK
Up cực kỳ đơn giản: trở thành môi trường lý tưởng để phát triển các sản
phẩm tuyệt vời.
Sau hơn 8 năm, với thế mạnh chun mơn trong tất cả các khía
cạnh của phát triển sản phẩm phần mềm, GEEK Up quy tụ hơn 80 tài
năng, cùng nhau phát triển và cho ra đời hơn 180 products chất lượng cho
các doanh nghiệp khắp nơi trên thế giới.
GEEK Up đã và đang trở thành một đối tác uy tín, một lựa chọn đáng
tin cậy từ nhiều khách hàng lớn trong và ngoài nước, như TPBank, SSI,
Viettel, Heineken, The Coffee House, ELSA, Wall Street English, Le
&Associates, Mobifone, VietCapital Bank, cungmua.com, Action Aid,...và
khách hàng nước ngoài như SMRT (Singapore), Hitachi (Nhật Bản),

NordLevel (Đức), KerryTTC (Thái Lan), Giinger Group (Singapore),...
Trong quá trình phát triển sản phẩm, GEEK Up áp dụng những công
nghệ hiện đại và thịnh hành nhất hiện nay như: ReactJS, NodeJS, NestJS,
Docker, Amazon Web Service,...
Với tư duy tạo ra sản phẩm mang lại giá trị cho người dùng và ứng
dụng phương pháp Agile chuẩn quốc tế, GEEK Up đã phần nào chứng minh
rằng: tài năng Việt Nam hồn tồn có thể tạo ra những sản phẩm phần
mềm đạt tiêu chuẩn toàn cầu!

1.2. Sản phẩm công ty
GEEK Up vun đắp kinh nghiệm sâu rộng để cung cấp giải pháp toàn diện, mang lại
trải nghiệm tối ưu cho người dùng và ấn tượng đa dạng mọi ngành nghề từ kinh tế, thực
phẩm, đến giao thông, du lịch, nhà hàng, khách sạn, ... GEEK Up tự hào là đối tác sản phẩm
7


đáng tin cậy trên hành trình xây dựng các giải pháp số đột phá, thúc đẩy tăng trưởng cho
doanh nghiệp.

1.3. Lịch làm việc khi thực tập tại công ty

Tuần 1

Tuần 2
Tuần 3
Phân tích & thiết
Phát triển sản
Giới thiệu và tìm
kế hướng đến
phẩm (Frontend,

hiểu về:
người dùng
Backend,
 Phương pháp
(Product
Development)
Agile & Scrum
Analysis &
 Phối hợp với
 Phân tích và thiết
Product Design)
Product Analyst
kế hướng đến
& Product
người dùng
Phát triển sản
Designer
(User-centered
phẩm (Frontend,  Nhận feedback,
Product Analysis
Backend,
reviews & un& Product
Development)
block từ Senior
Design)
members
 Product Frontend
 Technical &
 Product Backend
Soft-skill

Workshop
Tuần 5
Tuần 6
Tuần 7
Phát triển sản phẩm
Phát triển sản
Phát triển sản
(Frontend, Backend, phẩm (Frontend, phẩm (Frontend,
Development)
Backend,
Backend,
 First Product
Development)
Development)
Demo – trình bày  Phối hợp với  Phối hợp với
giải pháp về
Product
Product Analyst
product
Analyst &
& Product
 Review
Product
Designer
Technical output
Designer
 Nhận feedback,
 Nhận
standards
reviews & un Nhận feedback,

feedback,
block từ Senior
reviews & unreviews &
members
un-block từ
 Technical &
block từ Senior
members
Senior
Soft-skill
members
 Technical &
Workshop
 Technical &
Soft-skill
Workshop
Soft-skill
Workshop

Tuần 4
Phát triển sản
phẩm (Frontend,
Backend,
Development)
 Phối hợp với
Product Analyst
& Product
Designer
 Nhận feedback,
reviews & unblock từ Senior

members
 Technical
&
Soft-skill
Workshop
Tuần 8
Phát triển sản
phẩm (Frontend,
Backend,
Development)
 Final Product
Demo – trình
bày thành phẩm
giải pháp
product
 Nghiệm thu,
deploy và vận
hành sản phẩm
(Deployment,
launching &
operations)
 Product Sharing
Workshop
 Review
Contribution &
Performance

8



Em tham gia làm việc tại công ty bắt đầu từ ngày 1/11/2022 tới
31/12/2023, các ngày làm việc trong tuần là từ thứ 2 đến thứ 6. Công việc
hằng ngày bắt đầu từ lúc 8 giờ 30 đến 17 giờ 30. Thời gian nghỉ trưa
khoảng 2 tiếng. Sau mỗi ngày làm việc em sẽ báo cáo tiến độ công việc
trong ngày, đặt mục tiêu cho ngày làm việc tiếp theo. Mỗi tuần sẽ họp tiến
độ tuần 1 lần vào sáng thứ 2, mọi người sẽ cùng họp và bàn bạc về các
vấn đề đã giải quyết, tồn đọng, bài học, giải pháp và mục tiêu cho tuần
tiếp theo. Mỗi tuần sẽ tổ chức Technical & Softskill workshop một lần vào
mỗi tối thứ 4 để mọi người trao đổi những chủ đề về kỹ năng làm việc,
cơng nghệ mới nhất. Ngồi ra cịn có buổi họp mặt mọi người vào chiều
thứ 6 hàng tuần để mọi người trong cơng ty có thể gặp gỡ, chia sẻ với
nhau những chuyện trong cuộc sống như nói lời cảm ơn, chúc mừng sinh
nhật đồng nghiệp, kể cho nhau nghe những chuyện vui, và còn nhiều điều
khác nữa.

9


CHƯƠNG 2: NỘI DUNG THỰC TẬP
Đợt thực tập với chủ đề “Lập trình trang web thương mại điện tử” nhằm mục đích
giúp sinh viên thực tập được đào tạo tồn diện về lập trình web app như backend, frontend,
design, dev op, tester, đồ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, trao đổi với khách hàng, quản lý dự án, quản lý thởi gian, quản lý cá nhân, ...
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ơi trường
phát triển product chun nghiệp.

2.1. Tìm hiểu công ty và các kỹ năng cơ bản trong công ty
Thời gian: 4 ngày
Nội dung: Giới thiệu về công ty, cách tổ chức của công ty, giới thiệu về
Agile, Scrum, cách làm việc theo phương pháp Scrum

Được nghe người phụ trách giới thiệu về cơng ty, q trình thành lập
và phát triên (như đã nhắc đến ở trên), quy trình làm việc, cách thức tổ
chức của công ty, cách thức làm việc trong công ty như 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… (1
ngày)
Tiếp đến là học về Agile, Scrum, cách làm việc với Scrum (3 ngày)
Kết quả: Hiểu thêm về cơng ty GEEK Up, q 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 trong cơng việc, làm việc có
kế hoạch, có kỷ luật, có trách nhiệm hơn, và hiểu hơn về Agile mindset và
phương pháp Scrum để áp dụng trong công việc.

2.2. Nghiên cứu kỹ thuật
2.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, supervisor đã hướng dẫn thực tập sinh tìm hiểu
về các cơ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ư Gitlab - sử dụng trong làm việc nhóm, Docker – phần
mềm hỗ trợ việc tách product ra khỏi môi trường giúp cho việc cài đặt
config thuận tiện hơn.
Kết quả: Nắm được kiến thức cơ bản về các phần mềm, công cụ sẽ được sử
dụng trong project

10


2.3. Tham gia dự án thực tế
2.3.1. Công nghệ
Những công nghệ đáng chú ý được sử dụng trong project: NextJS (React franework), Medusa

Express, Docker

11


2.3.2. Mơ tả dự án

Hình 2.1: Hình ảnh một bộ sưu tập

Mỗi sản phẩm có thể được thêm vào một bộ sưu tập, mỗi bộ sưu tập sẽ có 1 trang
riêng biệt để chứa thông tin và những sản phẩm nằm trong bộ sưu tập đó. Admin có tồn
quyền tùy chỉnh màu sắc, hình ảnh, video, mơ tả, icon, và rất nhiều thứ khác của các bộ sưu
tập trên trang web của mình.
Mục đích của trang web là để tăng độ nhận diện thương hiệu cho công ty. Khi khách
hàng vào xem sản phẩm sẽ thấy được cả những sự kiện của cơng ty gắn liền với sản phẩm,
chính điều đó sẽ giúp người dùng nhận ra và nhớ đến thương hiệu của công ty.

12


Hình 2.2: Các thành phần của dự án
Dự án gồm 3 phần: Backend server, trang web cho người dùng và trang web cho admin. Em
phụ trách phần backend server.
Em đã giúp team đi đúng hướng theo thiết kế của framework Medusa bằng cách đọc
documentation và phát hiện ra cách framework sử dụng dependency injection, cách
framework đọc dữ liệu từ database và nâng cấp database, cũng như thay đổi kiểu dữ liệu của
database thông qua để phù hợp hơn với mục đích sử dụng của team.
Nhờ em mà team đã có hiểu biết sâu rộng hơn về cách framework Medusa tạo và quản lý
database. Ngồi ra, em cịn là người thiết kế và tạo ra một số tính năng, cả chính lẫn phụ, của
trang web: chức năng quản lý người dùng, chức năng thanh toán, chức năng về địa chỉ Việt

Nam để hỗ trợ cho chức năng thanh toán, chức năng quản lý mặt hàng, chức năng quản lý
đơn hàng, chức năng về import file cho admin.
Về chức năng quản lý người dùng, khi có người vào trang web và đặt hàng sử dụng số điện
thoại hoặc email, người đó sẽ được tạo một tài khoản để lưu thông tin liên quan về đơn hàng,
địa chỉ, … để hỗ trợ các chức năng khác.
Trong chức năng thanh toán, em đã viết các API để storefront (UI trang web/trình duyệt của
người dùng) giao tiếp với backend server, ghi nhận thông tin của người dùng, lưu vào
database và trả kết quả thanh toán về cho storefront.
Cịn về tính năng địa chỉ, em đã thiết kế các API để server có hết tất cả các quận huyện tỉnh
thành của Việt Nam, khi người dùng chọn Tỉnh/Thành Phố nào đó, thì trang web sẽ hiện lên
các Quận tương ứng, từ đó hiện lên các Phường tương ứng của quận đó. Đồng thời ghi nhận
địa chỉ đó vào trong danh sách địa chỉ của người dùng đó.
Về chức năng quản lý mặt hàng, server có thể quản lý số lượng tồn kho và ngăn người dùng
mua nhiều hơn số lượng tồn kho.

13


Về chức năng quản lý đơn hàng, mỗi đơn hàng có 1 ID riêng biệt, người dùng có thể xem đơn
hàng của mình bằng email và ID đó, khi người dùng nhập ID đơn hàng đúng thì sẽ có 1 email
được gửi đến cho khách hàng chứa kèm 1 đường link có thời hạn truy cập trong vịng 1 giờ
để xem lại đơn hàng đó.
Về tính năng import file dành cho admin, admin có thể import 1 file csv gồm danh sách các
món đồ muốn bán và server sẽ thay đổi vật phẩm hiển thị trên trang web theo file csv đó.

2.3.3. Q trình thực hiện:
a) Giai đoạn trước Demo lần I:
-

-


Khách hàng có thể tìm kiếm sản phẩm theo tên hoặc theo category, xem thông tin
từng sản phẩm, thêm vào giỏ hàng, điền thông tin mua hàng, đặt hàng.
Admin có thể tìm thêm xóa sản phẩm, thêm xóa các loại sản phẩm khác nhau của
từng sản phẩm, giá cả của từng loại sản phẩm, chia sản phẩm thành nhiều category,
collection, tìm kiếm sản phẩm, tìm kiếm đơn hàng, xem thông tin đơn hàng, xác nhận
đang xử lý đơn hàng, xác nhận đã chuẩn bị các sản phẩm của đơn hàng, xác nhận đơn
hàng đã được giao cho đơn vị vận chuyển, xác nhận đã nhận được một phần hoặc toàn
bộ số tiền của đơn hàng, xác nhận đơn hàng đã hồn thành.
Viết documentation.
Deploy server.
Test tìm bugs
Fix bugs.

Kết quả :
-

Tất cả các tính năng trên đã được thực hiện, mặc dù còn nhiều bug.

b) Giai đoạn trước Demo lần II:
-

-

Khách hàng có thể tìm kiếm sản phẩm theo collection, xem thơng tin collection, xem
thơng tin đơn hàng, tình trạng đơn hàng, tìm kiếm đơn hàng bằng email (có xác thực),
gửi mail cho khách hàng khi đơn hàng được tạo, xác nhận, vận chuyển, đã giao.
Admin có thể tùy chỉnh trang collection như màu nền của các vùng khác nhau, hình
nền của các vùng khác nhau, hình banner, icon, mơ tả, link video youtube.
Viết Documentation.

Test tìm bugs
Fix bugs.

Kết quả : Đã hồn thành tồn bộ những tính năng trên, số lượng bugs cũng đã giảm xuống rất
nhiều, hấu như dùng bình thường sẽ khơng bị bug, một số bug đã tìm thấy nhưng không ảnh
hưởng đến server đã được note lại trong document.

14


c) Thuận lợi và khó khăn
Thuận lợi:
-

-

Hầu như mọi người đều hồn thành cơng việc đúng kế hoạch.
Mọi người làm việc vui vẻ, hợp tác ăn ý, cùng nhau lên kế hoạch, thực hiện, test, fix
bugs rất ăn ý, vì tính chất cơng việc làm tại cơng ty, mọi người được ngồi gần nhau
khiến việc giao tiếp làm việc nhóm hiệu quả hơn.
Khơng chỉ trong giờ làm, ngồi giờ làm khi có sự cố gì thì khi liên lạc mọi người vẫn
cố gắng trả lời sớm nhất có thể. Cả các anh coach và team intern.

Khó khăn:
-

-

Document của framework Medusa Express được sử dụng rất ít và sơ xài, khiến việc
hiểu framework tốn một khoản thời gian khá lớn. Trước khi hiểu đúng framework thì

đã phải làm cách khác để kịp tiến độ, khi hiểu đúng rồi thì phải sửa lại cho đúng với
framework đang sử dụng.
Trong quá trình thực hiện project, đã có một số bạn trong team intern vì nhiều lí do
khác nhau đã khơng thể tiếp tục làm việc, điều đó đã ảnh hưởng một phần đến kế
hoạch tổng thể và số lượng công việc mỗi người cần làm.

15


-

CHƯƠNG 3: TỔNG KẾT

Như vậy, chỉ trong vòng hai tháng ngắn ngủi, nhóm đã kịp hồn thành
một trang web thương mại điện tử có khá đầy đủ các tính năng đã đề ra
ban đầu. Do thời gian có hạn nên số tính năng cịn ít, nhưng một anh
coach đã từng nói với chúng em rằng “Thà mình làm một tính năng thơi
nhưng mà nó chất lượng cịn hơn là làm nhiều tính năng nhưng khơng có
cái nào xài được”.
Chân thành cảm ơn sự giúp đỡ của mọi người ở công ty GEEK Up, và sự nỗ
lực của nhóm Geek Intern để có thể hồn thành trang web này. Cảm ơn cơ
Trần Hạnh Xn đã giúp em hồn thành bài báo cáo này..
Khi tham gia vào dự án thực tế, em cũng hoàn thành tốt các tác vụ đúng
hạn và đạt chất lượng tốt.

3.1. Điểm mạnh
- Teamplay: thường xuyên hỗ trợ đồng đội fix bugs, tìm lỗi, lên ý tưởng giúp giải quyết khúc
mắc của tính năng mà đồng đội đang làm.
- Có thể tự nghiên cứu, đọc tài liệu, đọc code của người khác để hiểu thêm về framework
mình đang sử dụng.


3.2. Điểm yếu
- Vì cịn đang đi học, em cũng có điểm yếu về mặt thời gian, em đã không thể đi làm 5 ngày
được mà thường chỉ làm 4 ngày, mặc dù vậy công ty vẫn cho phép em làm thêm tại nhà.

3.3. Chuẩn đạt được
Goal Mục tiêu môn học
G1

Nắm bắt được xu hướng, nhu cầu xã hội và tính đặc thù của doanh nghiệp

G2

Hiểu và giải thích được các khái niệm cơ bản, thuật ngữ và sơ đồ hệ thống trong dự
án

G3

Nắm được quy trình, phương pháp và công nghệ phát triển sản phẩm phần mềm tại
doanh nghiệp

G4

Có khả năng tìm hiểu vấn đề, mơ hình hóa vấn đề và tham gia giải quyết vấn đề

G5

Phát triển kỹ năng tư duy, kỹ năng làm việc nhóm và kỹ năng trình bày

G6


Đọc, hiểu các tài liệu và giao tiếp bằng tiếng Anh

16


TÀI LIỆU THAM KHẢO
1. Medusa Documentation.
2. React Documentation.

17



×