You are on page 1of 19

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

BÁO CÁO
THỰC TẬP CHUYÊN NGÀNH
NGÀ NH: CÔ NG NGHỆ THÔ NG TIN

Cá n bộ hướ ng dẫ n: Nguyễn Hoài Sơn


Cô ng ty thự c tậ p: Công ty AMELA

Sinh viên: Nguyễn Thế Quyết


Mã sinh viên: 20020467
Lớ p: K65-CD

1
Hà Nội, tháng 9 năm 2023

2
LỜI CẢM ƠN

Để hoà n thà nh chuyên đề bá o cá o thự c tậ p nà y trướ c hết em xin gử i


đến quý thầ y, cô giá o trong khoa Cô ng nghệ thô ng tin, Trườ ng Đạ i họ c Cô ng
Nghệ - Đạ i họ c Quố c gia Hà Nộ i lờ i cả m ơn châ n thà nh.
Em xin châ n thà nh cả m ơn Ban Lã nh Đạ o ,Ban Đà o tạ o cù ng cá c phò ng
ban củ a cô ng ty Amela đã tạ o điều kiện thuậ n lợ i cho em đượ c tìm hiểu
thự c tiễn trong suố t quá trình thự c tậ p tạ i cô ng ty.
Em xin cả m ơn nhà trườ ng đã tạ o cho em có cơ hộ i đượ c thự c tậ p nơi
mà em yêu thích, cho em bướ c ra đờ i số ng thự c tế để á p dụ ng nhữ ng kiến
thứ c mà cá c thầ y cô giá o đã giả ng dạ y. Qua cô ng việc thự c tậ p nà y em nhậ n
ra nhiều điều mớ i mẻ và bổ ích trong ngà nh IT để giú p ích cho cô ng việc sau
nà y củ a bả n thâ n.
Em xin cả m ơn thầ y Nguyễn Ngọ c Sơn đã định hướ ng, hướ ng dẫ n em,
anh Nguyễn Duy Trườ ng củ a cô ng ty đã giú p đỡ , cung cấ p nhữ ng tà i liệu
thự c tế để em có thể hoà n thà nh tố t chuyên đề thự c tậ p doanh nghiệp nà y.
Vì kiến thứ c bả n thâ n cò n hạ n chế, trong quá trình thự c tậ p, hoà n thiện
chuyên đề nà y em khô ng trá nh khỏ i nhữ ng sai só t, kính mong nhậ n đượ c
nhữ ng ý kiến đó ng gó p từ thầ y cô cũ ng như quý cô ng ty.

3
I. Giớ i thiệu chung
a. Giớ i thiệu cô ng ty
Amela là doanh nghiệp cung cấ p cá c dịch vụ , giả i phá p phầ n mềm và
CNTT, đượ c thà nh lậ p từ nă m 2019, có trụ sở chính tạ i Hà Nộ i và vă n phò ng
quố c tế tạ i Tokyo, Nhậ t Bả n. Tuy là mộ t doanh nghiệp trẻ, nhưng vớ i tố c độ
tă ng trưở ng hà ng đầ u trong ngà nh IT Việt Nam nă m 2020, Amela nắ m giữ
đầ y đủ nguồ n lự c và kinh nghiệm để sẵ n sà ng phá t triển cù ng tấ t cả doanh
nghiệp ở mọ i ngà nh nghề, cũ ng như tham gia đó ng gó p và o phá t triển kinh
tế xã hộ i.

Cá c lĩnh vự c hoạ t độ ng:


- Advanced Creative Engineering
- Advanced Business Development
- Advanced Talent Development
Website cô ng ty: https://amela.vn/
b. Giớ i thiệu cô ng việc
Vị trí thự c tậ p: Lậ p trình viên backend.
Thờ i gian thự c tậ p: 01/06/2023 đến 1/9/2023.
Em đượ c cô ng ty đà o tạ o cá c kiến thứ c về lậ p trình Web bằ ng ngô n ngữ
nestjs theo lộ trình như sau:
- Họ c kiến thứ c về Git, luồ ng hoạ t độ ng Git củ a Amela và cá c
convention về cá ch viết mã nguồ n theo chuẩ n củ a cô ng ty Amela.
- Họ c kiến thứ c về cơ sở dữ liệu sql, postSql, mongoDB.
- Họ c cá c kiến thứ c về base Nodejs express thô ng qua cá c bà i toá n
đưa ra như đă ng nhậ p, đă ng ký, bả o vệ an toà n dữ liệu.
- Tìm hiểu về job, queue, socketIo,… thô ng qua việc là m 1 app chat
đơn giả n dễ sử dụ ng,…
- Nghiên cứ u kiến thứ c về ngô n ngữ lậ p trình nestjs hiểu cá c câ u lệnh,
cú phá p củ a ngô n ngữ .
- Nghiên cứ u cá c kiến thứ c cơ bả n và nâ ng cao về nestjs thự c hà nh tạ o
website cơ bả n qua sự chỉ dẫ n củ a anh mentor cụ thể là web chat và
tham gia và o dự á n quả n lý coin củ a cô ng ty.

4
- Thự c hà nh là m cá c Project vớ i nhó m là m ra sả n phẩ m, nhậ n lờ i nhậ n
xét từ phía ngườ i đà o tạ o để sử a đổ i mã nguồ n, nâ ng cao chấ t lượ ng
mã nguồ n.
- Họ c kiến thứ c về mô hình phá t triển phầ n mềm scrum.
- Họ c cá ch deploy web trên server thô ng qua AWS.
- Cá ch sử dụ ng docker, backlog cho dự á n.
- Thự c hà nh vớ i dự á n thự c tế củ a cô ng ty.
c. Giớ i thiệu bà i toá n
Hệ thố ng dà nh cho cá c nhâ n viên hà nh chính. Hệ thố ng nà y là nơi để cá c
nhâ n viên hà nh chính có thể truy cậ p và hỗ trợ nhau là m nhữ ng dịch vụ
hà nh chính mà ngườ i kia khô ng có chuyên mô n. Ngoà i ra cá c nhâ n viên
hà nh chính cò n có thể tạ o template hướ ng dẫ n thủ tụ c hà nh chính để sử
dụ ng cũ ng như đă ng bá n.
Hệ thố ng web bao gồ m giao diện cho User và CMS (Admin)

II. Yêu cầ u bà i toá n


1. Yêu cầ u chứ c nă ng
Ứ ng dụ ng gồ m có cá c tá c nhâ n tham gia:

 Member : Tấ t cả cá c thà nh viên trong cô ng ty.


 Admin : Ngườ i quả n lý củ a mỗ i phò ng ban
1.1. Yêu cầ u về chứ c nă ng củ a Member
- Xá c thự c ngườ i dù ng: Đă ng ký, đă ng nhậ p, đă ng xuấ t, ghi nhớ
phiên là m việc.

5
- Thô ng tin cá nhâ n:
 Sử a thô ng tin củ a bả n thâ n như tên tuổ i email , ả nh , …
 Xem thô ng tin củ a bả n thâ n và cá c thà nh viên khá c trong cô ng
ty

6
- Chuyển tiền và să n coin:
 Cá c thà nh viên trong cô ng ty có thể chuyển tiền cho bấ t kỳ
thà nh viên nà o trong cô ng ty vớ i số coin hiện có .
 Thà nh viên có thể quét QR để ra thô ng tin ngườ i mà mình
muố n chuyển.
 Cá c thà nh viên trong cô ng ty có thể să n coin và đượ c nhậ n tiền
từ cá c chương trình sự kiện mà cô ng ty tạ o ra
 Xem lịch sử chuyển tiền
 Nhậ n thô ng bá o mỗ i khi coin trong ví thay đổ i ví dụ như đượ c
ngườ i khá c chuyển tiền hay mua quà .
 Nhậ n đượ c thư thô ng bá o mỗ i khi đượ c thêm mớ i hoặ c xó a
khỏ i khó a họ c.

7
- Đổ i quà tặ ng
 Xem thô ng tin cá c quà tặ ng trong cô ng ty .
 Dù ng số tiền (coin) hiện có để đổ i cá c quà tặ ng và có thể đượ c
giả m giá nếu có mã ưu đã i.
- Mã bả o mậ t và lịch sử xem dịch:
 Có thể xem đượ c tấ t cả lịch sử giao dịch khi sử dụ ng coin là m
bấ t kì hà nh độ ng nà o trong web.
 Mã bả o mâ t : là mã cá c thà nh viên tạ o ra để bả o vệ tà i khoả n
mỗ i khi bị đá nh cắ p , mã nà y sẽ giú p thà nh viên có thể thanh
toá n hay chuyển tiền đi bấ t kỳ đâ u , nếu khô ng có sẽ khô ng
đượ c phép thự c hiện hà nh độ ng nà o cả (giố ng vớ i mã pin ngâ n
hang)

8
- Thô ng bá o : hiển thị tấ t cả thô ng bá o khi hệ thố ng phá t hà nh
chương trình hay quà hay sự kiện mớ i .
- Khoá họ c : hiển thị tấ t cả cá c khoá họ c hiên có củ a cô ng ty và có
thể đă ng ký tham gia khoá họ c,…
1.2. Yêu cầ u về chứ c nă ng củ a Admin
- Xá c thự c ngườ i dù ng: Đă ng ký, đă ng nhậ p, đă ng xuấ t, ghi nhớ
phiên là m việc.
- Thô ng tin cá nhâ n:
 Sử a thô ng tin củ a bả n thâ n.
- Xem thô ng tin củ a bả n thâ n, và cá c thà nh viên trong cô ng ty
- Khó a họ c:
 Xem tấ t cả khó a họ c.
9
 Thêm, sử a, xó a khó a họ c.
 Thêm, xó a giả ng viên và o khó a họ c.
 Thêm, xó a họ c viên và o khó a họ c.
 Xem cá c mô n họ c trong khó a.
 Xem tiến trình họ c củ a cá c họ c viên trong khó a.
 Hoà n thà nh khó a họ c.
- Quả n lý coin:
 Admin có thể chuyển coin(tặ ng coin cho bấ t cứ thà nh viên nà o
trong cô ng ty ) có thể chuyển cho toà n bộ thà nh viên , .
 Có thể xem đượ c thô ng tin củ a tá t cả cá c ví trong hệ thố ng như
: Ví hệ thố ng , ví nhâ n viên , ví coin huỷ ,
 Xem đượ c thô ng tin củ a tấ t cả cá c loạ i giao dịch trong hệ thố ng
, có thể tìm kiếm sắ p xếp theo cá c trườ ng như ngà y , tên , email
, sdt ,…
 Admin có thể phá t hà nh coin , huỷ coin củ a bấ t kì giao dịch nà o
- Quả n lý quà tặ ng:
 Admin có thể thêm sử a xoá quà tặ ng , sả n phẩ m trong hệ
thố ng .
- Quả n lý mã giả m giá : Admin có thể tạ o mã giả m giá , sử a xoá
thô ng tin .mã giả m giá theo ý mình muố n để ngườ i dù ng có thể
sử dụ ng và giả m thiểu tiền mua .
- Thố ng kê top sở hữ u coin củ a từ ng thà nh viên và 1 phò ng ban
trong thá ng
2. Yêu cầ u phi chứ c nă ng
- Khả nă ng hỗ trợ
 Phầ n mềm có thể hoạ t độ ng tố t trên cá c má y tính, má y tính
bả ng, điện thoạ i và cá c thiết bị khá c có thể truy cậ p mạ ng
Internet vớ i cá c hệ điều hà nh khá c nhau.
 Hệ thố ng cho trả i nghiệm tố t nhấ t khi dù ng trên cá c má y tính
cá nhâ n.
- Khả nă ng sử dụ ng

10
 Ngườ i dù ng có thể dễ dà ng sử dụ ng và nhớ cá c thao tá c ngay
trong vò ng 15 phú t tiếp cậ n vớ i phầ n mềm.
- Yêu cầ u giao diện
 Khô ng sử dụ ng quá 2 font chữ .
 Giao diện có bố cụ c rõ rà ng, mà u sắ c đẹp mắ t, thu hú t ngườ i
dù ng.
 Giao diện dễ hiểu, dễ thao tá c, thâ n thiện vớ i ngườ i dù ng
- Yêu cầ u hiệu nă ng
 Thờ i gian tả i trang khi truy cậ p và o website khô ng quá 1 phú t.
 Hệ thố ng cầ n đá p ứ ng đượ c tố i đa 100 lượ t ngườ i truy cậ p
trong cù ng mộ t thờ i điểm.
 Thờ i gian xá c nhậ n và phả n hồ i cá c yêu cầ u từ phía ngườ i
dù ng khô ng quá 2 phú t.
- Cá c rà ng buộ c thiết kế
 Khả nă ng mở rộ ng: có thể mở rộ ng thêm cá c chứ c nă ng dễ
dà ng
 Khả nă ng tá i sử dụ ng: có thể sử dụ ng lạ i cá c phương thứ c
dù ng chung để nâ ng cao chấ t lượ ng mã nguồ n.
- Tính bả o mậ t
 Mậ t khẩ u ngườ i dù ng đượ c mã hoá và bả o mậ t.
 Hệ thố ng phả i đả m bả o bả o mậ t thô ng tin cá nhâ n củ a ngườ i
dù ng.
- Tính sẵ n sà ng
 Website có thể truy cậ p 24/24, thờ i gian bả o trì phả i đượ c bá o
trướ c vớ i ngườ i dù ng và khô ng quá 2 tiếng.

11
III. Tó m tắ t lý thuyết, giả i phá p, thuậ t toá n
1. Cá c lý thuyết, giả i phá p, thuậ t toá n liên quan
1.1. MVC

Hình 1.1. Mô hình MVC

Mô hình MVC là mô hình phá t triển ứ ng dụ ng web gồ m 3 thà nh phầ n


Model – View – Controller.
- Model: Phầ n tương tá c vớ i cơ sở dữ liệu để trả lạ i dữ liệu cho
controller.
- View: Phầ n hiển thị để tương tá c vớ i ngườ i dù ng.
- Controller: Phầ n xử lý logic, tiếp nhậ n dữ liệu từ model và cung
cấ p cho ngườ i dù ng qua view.
1.2. MySQL
- MySQL là hệ quả n trị cơ sở dữ liệu tự do nguồ n mở phổ biến
nhấ t thế giớ i và đượ c cá c nhà phá t triển rấ t ưa chuộ ng trong quá
trình phá t triển ứ ng dụ ng.
- Vì MySQL là cơ sở dữ liệu tố c độ cao, ổ n định và dễ sử dụ ng, có
tính khả chuyển, hoạ t độ ng trên nhiều hệ điều hà nh cung cấ p
mộ t hệ thố ng lớ n cá c hà m tiện ích rấ t mạ nh. Vớ i tố c độ và tính

12
bả o mậ t cao, MySQL rấ t thích hợ p cho cá c ứ ng dụ ng có truy cậ p
CSDL trên internet.
1.3.Nestjs
Nest (NestJS) là mộ t framework cho việc xâ y dự ng hiệu quả , cá c ứ ng
dụ ng phía má y chủ Node.js có thể mở rộ ng hiệu quả . Nó sử dụ ng JavaScript,
đượ c xâ y dự ng và hỗ trợ đầ y đủ TypeScript (và vẫ n hỗ trợ javascript thuầ n)
và hợ p cá c yếu tố củ a lậ p trình hướ ng đố i tượ ng, lậ p trình hà m và lậ p trình
phả n ứ ng hà m
2. Giả i quyết
2.1. Cá ch giả i quyết củ a sinh viên
- Sử dụ ng ngô n ngữ nestjs để giả i quyết bà i toá n, hệ quả n trị
MySQL để lưu trữ dữ liệu củ a bà i toá n.
- Xử lý cá c điều kiện về vai trò ngườ i dù ng để thự c hiện cá c chứ c
nă ng và hiển thị cá c view khá c nhau vớ i mỗ i vai trò khá c nhau.
- Xử lý Thự c hiện cá c chứ c nă ng api quả n lý coin , quả n lý mã giả m
giá , quả n lý giao dịch , thô ng bá o ,….
- Thố ng kê xâ y dự ng biểu đồ sở hữ u coin củ a cá c thà nh viên trong
cô ng ty

13
2.2. Thiết kế cơ sở dữ liệu

Hình 1.2. Thiết kế cơ sở dữ liệu

14
3. Liên hệ & so sá nh vớ i cá c cá ch đã có
- Ưu điểm khi sử dụ ng Nestjs :
 Cung cấ p cho mộ t cấ u trú c chuẩ n cho ứ ng dụ ng web.
 Đượ c hỗ trợ bở i mộ t cộ ng đồ ng phá t triển lớ n.
 Cung cấ p cá c dịch vụ để có thể phá t triển cá c chứ c nă ng mộ t
cá ch chính xá c và nhanh chó ng.
 Là mộ t trong nhữ ng nền tả ng an toà n nhấ t, cho phép xâ y dự ng
cá c dự á n web an toà n, do đó ngă n ngừ a cá c kiểu tấ n cô ng
SQL-injections và XSS (cross-site scripting).
 Mã nguồ n cấ u trú c rõ rà ng, đầ y đủ hỗ trợ cả mô i trườ ng
development và production
 Hỗ trợ graphQl
 Thờ i gian phá t triển ứ ng dụ ng nhanh .
- Hạ n chế khi sử dụ ng Laravel
 Quá nhiều thay đổ i trong 1 bả n update
 Khó debug.

IV. Mô tả phầ n mềm cà i đặ t


Visual Studio Code (VSCode):
Visual Studio Code là mộ t trong nhữ ng cô ng cụ soạ n thả o vă n bả n lậ p
trình tố t nhấ t. Đâ y là mộ t ứ ng dụ ng JavaScript dự a trên Electron (như
Atom, mộ t trình soạ n thả o code đượ c đá nh giá cao khá c), nhưng nhanh và
khô ng gặ p phả i cá c vấ n đề về hiệu suấ t như hầ u hết cá c ứ ng dụ ng JavaScript
khá c.

V. Kết quả đạ t đượ c, hướ ng phá t triển


1. Kỹ nă ng & kiến thứ c thu thậ p đượ c
Qua quá trình thự c tậ p tạ i cô ng ty, em đã tích lũ y đượ c rấ t nhiều kiến
thứ c và đượ c rèn luyện nhiều kỹ nă ng quan trọ ng và cầ n thiết cho lậ p trình
viên.
- Kiến thứ c thu thậ p đượ c

15
 Kiến thứ c về cô ng cụ git và github,gitlab luồ ng hoạ t độ ng khi
sử dụ ng git để phá t triển phầ n mềm ở cô ng ty.
 Hiểu biết rõ về quy trình phá t triển phầ n mềm Scrum theo
nguyên lý Agile và cá ch á p dụ ng nó trong phá t triển phầ n mềm
thự c tế.
 Củ ng cố kiến thứ c về phâ n tích và thiết kế cơ sở dữ liệu cho
bà i toá n cụ thể.
 Cá c kiến thứ c cơ bả n và nâ ng cao về ngô n ngữ qua việc á p
dụ ng và o là m dự á n nà y.
 Củ ng cố kiến thứ c về MySQL
- Kỹ nă ng tích lũ y đượ c
 Kỹ nă ng là m việc nhó m: kỹ nă ng trao đổ i, bà n bạ c vớ i cá c
thà nh viên trong nhó m để đi tớ i thố ng nhấ t đồ ng thờ i có trá ch
nhiệm cù ng hợ p tá c phá t triển dự á n.
 Kỹ nă ng quả n lý dự á n phầ n mềm, ướ c lượ ng thờ i gian phá t
triển, khố i lượ ng cô ng việc, đả m bả o tiến độ và hoà n thà nh
đú ng thờ i gian đã đượ c giao.
 Viết mã nguồ n theo chuẩ n củ a cô ng ty, đú ng convention, code
sạ ch.
 Kỹ nă ng thu thậ p và phâ n tích yêu cầ u phầ n mềm qua việc suy
nghĩ ra ý tưở ng, viết tà i liệu cho dự á n.
 Thiết kế cơ sở dữ liệu hợ p lý và hiệu quả .
 Phâ n tích, thiết kế kiến trú c và hướ ng đố i tượ ng cho phầ n
mềm.
 Kỹ nă ng thuyết trình bá o cá o dự á n.

2. Hướ ng phá t triển tiếp theo để hoà n thiện giả i phá p


- Giả i quyết vấ n đề khi dữ liệu lớ n.
- Á p dụ ng cá c thư viện củ a Nestjs để nâ ng cao hiệu suấ t củ a dự á n.

16
Tà i liệu tham khả o
1. Nestjs documentation: https://docs.nestjs.com/

17
Ý kiến đá nh giá củ a cô ng ty
- Thá i độ họ c tậ p: Tố t

 Ngoan, chă m chỉ


 Chịu khó họ c hỏ i tiếp thu
 Chủ độ ng trong họ c tậ p
 Teamwork tố t
- Nă ng lự c IT:

 Tố c độ là m task nhanh
 Chủ độ ng trao đổ i khi gặ p vấ n đề
 Tech khá , có thể tự mình giả i quyết vấ n đề
 Pull sạ ch ít comment
 Cẩ n thậ n trong cô ng việc
 Project ổ n, chứ c nă ng hoà n thiện cơ bả n, ít lỗ i
- Điểm yếu: Đô i lú c cò n hơi cẩ u thả cầ n phả i chỉnh sử a.
Điểm số : 9.5 điểm

Ban giám đốc Hà Nội, ngày 01 tháng 09 năm 2023


(Ký, ghi rõ họ tên & dấ u cô ng ty) Người hướng dẫn
(Ký, ghi rõ họ tên)

18
Ý kiến đá nh giá :
……………………………………….………………………
……………………………………….………………………
……………………………………….………………………
……………………………………….………………………
……………………………………….………………………
……………………………………….………………………
……………………………………….………………………
……………………………………….………………………

Điểm số : ……. Điểm chữ : …………

Hà Nộ i, ngà y thá ng nă m 20
Giảng viên đánh giá
(Ký, ghi rõ họ tên)

19

You might also like