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
LẬP TRÌNH WEB VỚI DJANGO
Cơng ty thực tập:
Công Ty Cổ Phần Giải Pháp
Công Nghệ Minerva
Người phụ trách:
Phạm Thành Đạt
Thực tập sinh:
Nguyễn Cơng Hiếu
TP. Hồ Chí Minh, tháng 12 năm 2021
Nguyễn Công Hiếu
2
LỜI MỞ ĐẦU
Ngày nay, công nghệ thông tin là một bộ phận không thể thiếu của doanh
nghiệp. Với nhiều lĩnh vực kinh doanh, công nghệ đang dần nắm quyền quyết định
yếu tố thành bạ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ệ.
Outsourcing được xem như một nguồn thu ổn định nhưng bản thân các doanh nghiệp
luôn muốn chủ động đưa các sáng tạo và tiến bộ về công nghệ vào các sản phẩm do
chính mình làm chủ. Danh sách này được nhóm nghiên cứu ghi nhận từ những sản
phẩm nổi bật và đã thực sự đạt được thành công kể từ khi chính thức “cất cánh” ra thị
trường nội địa và trong khu vực.
Ngành phần mềm đang đến các lợi ích: Tiết kiệm chi phí vận hành, doanh
nghiệp tiếp cận nhân lực đảm bảo chuyên môn, chuyên nghiệp, giảm tải cho nhân
viên, chuyển hướng tập trung nhiệm vụ. Công việc IT có tính chuyên biệt và vô cùng
phong phú đến mức không một ai có thể phụ trách tất cả các nhiệm vụ. Buộc doanh
nghiệp phải thuê ngoài dịch vụ để có thể hồn thành cơng việc được tốt nhất.
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 phần mềm trong một môi trường chuyên nghiệp,
em có dự định là sẽ thực tập trong hè. Vì vậy, em quyết định chọn Minerva
Technology Solutions JSC - một môi trường lý tưởng, hiện đại, chuyên nghiệp - là
nơi sẽ giúp em thực hiện được dự định này.
Nguyễn Công Hiếu
3
LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn Công ty Minerva Technology Solutions JSC đã tạo
điều kiện cho em có cơ hội được thực tập tại công ty.
Chỉ trong thời gian ngắn, nhưng nhờ sự chỉ dẫn nhiệt tình của người hướng dẫn
và đội ngũ phát triển, 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. Chân thành cảm ơn các anh chị trong
đội ngũ phát triển đã 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 biệt cảm ơn anh Phạm Thành Đạt, đã training Python, Django, hướng dẫn,
giúp đỡ cho em tận tình cả những khó khăn trong cơng việc, đến những khó khăn
trong việc làm quen với môi trường mới.
Cũng xin cảm ơn thầy cô trong khoa Cơng nghệ Phần mềm đã hỗ trợ nhiệt
tình, tạo điều kiện cho em làm bài báo cáo này.
Nguyễn Công Hiếu
TP HCM, Ngày 23 Tháng 12 Năm 2021
Nguyễn Công Hiếu
4
NHẬN XÉT CỦA KHOA
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
Nguyễn Công Hiếu
5
MỤC LỤC
Chương 1: Giới thiêu công ty thực tập ............................................................................................ 1
1. Giới thiệu công ty Minerva .................................................................................................... 1
2. Sản phẩm của công ty ............................................................................................................ 1
Chương 2: Nội dung thực tập ........................................................................................................... 2
1. Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty ....................................................... 2
2. Nghiên cứu kỹ thuật ............................................................................................................... 2
2.1.
Các cơng cụ làm việc........................................................................................................ 2
2.2.
Tìm hiểu ngơn ngữ Python nâng cao.............................................................................. 3
2.3.
Thực hiện thiết kế một database đúng chuẩn ................................................................. 3
2.4.
Lập trình trên Web với Django ........................................................................................ 4
2.5.
Lập trình trên Web với Django REST Framework ........................................................ 5
3. Thực hiện project ................................................................................................................... 6
4. Lịch làm việc ........................................................................................................................... 6
Chương 3: Chi tiết về project ........................................................................................................... 8
1. Giới thiệu về project ............................................................................................................... 8
2. Thực hiện: ............................................................................................................................... 9
TÀI LIỆU THAM KHẢO ................................................................................................................. 10
TỔNG KẾT ....................................................................................................................................... 11
Nguyễn Công Hiếu
1
Chương 1: Giới thiêu công ty thực tập
1. Giới thiệu cơng ty Minerva
MINERVA là tở chức gờm những người đồn kết đóng góp kiến thức, nỗ lực dẫn dắt
lĩnh vực kinh doanh tri thức góp phần đưa Việt Nam trở thành nước tiên tiến trong nền kinh
tế tri thức số tồn cầu.
2. Sản phẩm của cơng ty
MINERVA TECHNOLOGY SOLUTIONS JSC là công ty cung cấp các giải pháp
tổng thể dựa trên công nghệ Internet of Things (IoT) cho các lĩnh vực như nông nghiệp, du
lịch, bán lẻ và bất động sản. MINERVA cũng chuyên về Phân tích/xử lý dữ liệu lớn – Big
Data/Analytics và Trí Tuệ Nhân tạo – Machine Learning + Artificial Intelligence cho phép
xây dựng các hệ thống hỗ trợ quyết định mạnh mẽ và hiệu quả kinh tế cho các cơ quan
Chính phủ, thành phố và các ngành công nghiệp.
Nguyễn Công Hiếu
2
Chương 2: Nội dung thực tập
Đợt thực tập với chủ đề “Lập trình web với Django” 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 với ngôn ngữ Python trên Django,
đồ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ơi trường phát
triển phần mềm 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: 1 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ủa cơng ty.
Ngồ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
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…
Kết quả: Hiểu thêm về công ty Minerva Technology Solutions JSC, 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 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: 4 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 như git – sử dụng trong quá trình
quản lý cấu hình của dự án, VSCode - một trình biên tập mã rất hữu ích và phổ
biến với lập trình viên.
Thực hiện: Thực hành sử dụng các phần mềm đã nêu trên.
Nguyễn Công Hiếu
3
Kết quả: Lập trình sử dụng các công cụ miễn phí, giúp dễ dàng kết hợp các cơng
cụ với nhau.
2.2.
Tìm hiểu ngôn ngữ Python nâng cao
Thời gian: 14 ngày (2 tuần)
Nội dung: Được training về các kỹ thuật Python nâng cao.
-
Lập trình hướng đối tượng
Các kiến thức cơ bản về lập trình hướng đối tượng như khái niêm, các đặc tính
như tính kế thừa, tính đóng gói, tính ảo hóa, tính đa hình. Ngồi ra, thực tập
sinh cịn được hướng dẫn về cách thiết kế cho một phần mềm.
-
Quản lý bộ nhớ
Thực tập sinh sẽ được hướng dẫn về cách cấp phát, quản lý bộ nhớ sao cho tối
ưu, tránh rò rỉ bộ nhớ, một trong những phần rất quan trọng trong lập trình
game trên điện thoại, vì bộ nhớ trên điện thoại không thể lớn như trên máy
tính được.
Thực hiện:
-
Tham gia đầy đủ các buổi training của công ty.
-
Đọc document của mentor
-
Làm các bài thực hành, kiểm tra về kiến thức đã học.
Kết quả:
-
Nâng cao kỹ năng lập trình với ngôn ngữ Python
-
Có được những kiến thức quan trọng cho việc lập trình phần mềm sau này.
-
Ngồi ra cịn được biết thêm một số quy tắc trong việc viết code sao cho đúng
chuẩn, dễ đọc, dễ hiểu.
2.3.
Thực hiện thiết kế một database đúng chuẩn
Thời gian: 5 ngày (1 tuần)
Nội dung: Tìm hiều và thiết kế một database đúng chuẩn trong dự án.
-
Tìm hiểu về l̀ng hoạt động của các chức năng.
Nguyễn Công Hiếu
4
-
Áp dụng kiến thức tìm hiểu để thiết kế một database theo yêu cầu.
Thực hiện:
-
Tham gia đầy đủ các buổi training.
-
Thiết kế database
Kết quả:
2.4.
-
Hiểu được luồng hoạt động của các chức năng trong một database
-
Biết được cách thiết kế database phù hợp để thực hiện dự án.
Lập trình trên Web với Django
Thời gian: 14 ngày (2 tuần)
Nội dung: Các kỹ thuật tạo ra một trang web cơ bản và nâng cao với Django.
-
Định nghĩa về Django:
Django là một trong số những web framework bậc cao miễn phí, là mã nguồn
mở được tạo ra bởi ngôn ngữ Python dựa trên mô hình mô hình MTV (gồm ModelTemplate-Views). Hiện framework này được phát triển, quản lý bởi Django
Software Foundation.
Django ra đời với mục tiêu hỗ trợ thiết kế các website phức tạp dựa trên
những CSDL có sẵn. Nó hoạt động dựa theo nguyên lý ‘cắm’ các thành phần và và
tái sử dụng để tạo nên các website với ít code, ít khớp nối, có khả năng phát triển
và không bị trùng lặp.
Thực hiện:
-
Đọc document của mentor
-
Tham gia đầy đủ các buổi training.
-
Tạo ra những ứng dụng cơ bản, viết các API đơn giản
Kết quả:
Nguyễn Công Hiếu
5
2.5.
-
Nâng cao kỹ năng lập trình với ngơn ngữ Python và framework Django
-
Đã có thể tạo ra web trong ứng dụng thực tế.
Lập trình trên Web với Django REST Framework
Thời gian: 14 ngày (2 tuần)
Nội dung: Xây dựng RestAPI trong Django
-
Định nghĩa về RestAPI:
API (Application Programming Interface) là một tập các quy tắc và cơ chế mà
theo đó, một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay
thành phần khác. API có thể trả về dữ liệu mà bạn cần cho ứng dụng của mình ở
những kiểu dữ liệu phổ biến như JSON hay XML.
Restful (REpresentational State Transfer) là một dạng chuyển đổi cấu trúc dữ
liệu, một kiểu kiến trúc để viết API. Nó sử dụng phương thức HTTP đơn giản để
tạo cho giao tiếp giữa các máy. Vì vậy, thay vì sử dụng một URL cho việc xử lý
một số thông tin người dùng, REST gửi một yêu cầu HTTP như GET, POST,
DELETE, vv đến một URL để xử lý dữ liệu.
RestAPI là một tiêu chuẩn dùng trong việc thiết kế các API cho các ứng dụng
web để quản lý các resource. RESTful là một trong những kiểu thiết kế API được
sử dụng phổ biến ngày nay để cho các ứng dụng (web, mobile…) khác nhau giao
tiếp với nhau.
-
Django REST Framework là một framework của Django giúp xây dựng API
theo chuẩn Restful
Thực hiện:
-
Đọc document của mentor
-
Tham gia đầy đủ các buổi training.
-
Viết các API tiêu chuẩn theo chuẩn Restful
Kết quả:
Nguyễn Công Hiếu
6
-
Viết được các API tiêu chuẩn để xây dựng trang web
3. Thực hiện project
Sau vài tháng được training và thực hành, thực tập sinh đã nắm được những kiến
thực cơ bản về Python, Django, Django Rest Framework. Trong tháng thứ ba, trainer
đã hướng dẫn thực hiện một vài phần project của công ty.
Chi tiết đồ án sẽ được nói ở phần sau.
4. Lịch làm việc
Mức
Tuần
Cơng việc
Người hướng dẫn
độ
Nhận xét của
hồn
người hướng dẫn
thành
- Tìm hiểu về công ty, cách Anh Phạm Thành 100%
tở chức của cơng ty.
1
Đạt
Hồn thành tốt cơng
việc được giao.
- Làm quen với các công cụ
làm việc trong công ty.
- Học cách trao đổi, làm
việc qua email, telegram.
- Tìm hiểu ngơn ngữ lập Anh Phạm Thành 100%
2
trình Python
Đạt
Hồn thành tốt công
việc được giao.
- Thực hành Python
- Làm bài tập Python
- Tìm hiểu ngơn ngữ lập Anh Phạm Thành 100%
3
trình Python
Đạt
Hồn thành tốt cơng
việc được giao.
- Thực hành Python
- Làm bài tập Python
Nguyễn Công Hiếu
7
- Tìm hiểu về Database
4
- Thực
hành
xây
Anh Phạm Thành 100%
dựng Đạt
Hoàn thành tốt công
việc được giao.
Database
-
Tìm hiểu về Django
Anh Phạm Thành 100%
-
Thực hành tạo một ứng Đạt
Hồn thành tốt cơng
việc được giao.
dụng web Django cơ bản
5
-
Viết các API và xây
dựng các template cơ bản
-
Tìm hiểu về Django
Anh Phạm Thành 100%
-
Thực hành tạo một ứng Đạt
Hồn thành tốt cơng
việc được giao.
dụng web Django cơ bản
6
-
Viết các API và xây
dựng các template cơ bản
-
Tìm hiểu về Restful API
-
Tìm hiểu về Django Rest Đạt
7
Anh Phạm Thành 100%
Hồn thành tốt cơng
việc được giao.
Framework
-
Viết các RestAPI trên
một ứng dụng Django
-
Tìm hiểu về Restful API
-
Tìm hiểu về Django Rest Đạt
8
Anh Phạm Thành 100%
Hồn thành tốt cơng
việc được giao.
Framework
-
Viết các RestAPI trên
một ứng dụng Django
9-12
-
Thực hiện project
Anh Phạm Thành 100%
Hồn thành tốt cơng
-
Viết các API
Đạt
việc được giao.
-
Fix bug dự án
Nguyễn Công Hiếu
8
Chương 3: Chi tiết về project
1. Giới thiệu về project
Sunny World App là một ứng dụng quản lý bất động sản UNIPRIME hỗ trợ người dùng
trong việc quản lý tình hình kinh doanh và thẩm định của các dự án.
Các chức năng:
- Quản lý dự án
Quản lý tình hình thẩm định các dự án trong các mặt pháp lý, tài chính, quản lý thiết
kế và sales & marketing
- Quản lý công việc
Hỗ trợ người dùng trong việc quản lý các công việc được giao trong dự án
- Quản lý nội bộ
Hỗ trợ người dùng trong việc quản lý các công việc được giao trong các phòng ban
- Quản lý tài liệu
Lưu trữ các hồ sơ và tài liệu trong các công việc và nhiệm vụ được giao
- Quản lý danh bạ
Ứng dụng hỗ trợ người dùng tạo ra các danh bạ và liên hệ để sử dụng trong lúc triển
khai công việc
- Quản lý tin nhắn
App Sunny World có chức năng nhắn tin riêng để bảo mật các thông tin liên quan
đến công việc và dự án
Nguyễn Công Hiếu
9
2. Thực hiện:
Các thành viên của công ty Minerva thực hiện dự án trong suốt 3 tháng
vừa qua.
Team Back-end thực hiện dự án gờm có 4 người:
- 1 Manager
- 2 Developer Back-end
- 1 Intern
Các thành viên sẽ thực hiện viết các API cho các chứng năng, sau đó sẽ
thực hiện push code lên git. Manager sẽ review code và thực hiện merge code
vào dự án
Hàng tuần sẽ có b̉i họp để đánh giá tổng kết và phân chia công việc cho
tuần tiếp theo
Nếu developer có gặp vấn đề hay có trục trặc gì thì sẽ được review và giải
thích với Manager
Kết quả: Project vẫn đang trong giai đoạn thực hiện, sắp hồn tất pharse 1
của dự án
Nguyễn Cơng Hiếu
10
TÀI LIỆU THAM KHẢO
Python
3.10.1 Documentation (python.org)
Django
Django documentation | Django documentation | Django (djangoproject.com)
Django Rest Framework
Home - Django REST framework (django-rest-framework.org)
Nguyễn Công Hiếu
11
TỔNG KẾT
Như vậy, chỉ trong vài tháng ngắn ngủi ở Minerva em đã học được một số
công nghệ nổi tiếng, phù hợp với thị trường hiện tại và cũng như là những dự án thực
tế giúp em cọ xát hơn với nhu cầu thị trường. Do thời gian có hạn, kinh nghiệm của
bản thân chưa cao nên dự án em làm còn một vài thiếu sót, giao diện chưa đẹp và
chức năng chưa được hoàn chỉnh.
Chân thành cảm ơn sự giúp đỡ của các anh chị của công ty Minerva đã tạo điều
kiện cho em học hỏi và phát triển bản thân trong con đường sắp tới. Cảm ơn thầy Lê
Thanh Trọng đã giúp em hoàn thành bài báo cáo này.
Nguyễn Công Hiếu