KHOA CÔNG NGHỆ PHẦN MỀMBÁO CÁO THỰC TẬP LẬP TRÌNH ỨNG DỤNG WEB VỚI JAVA SPRING BOOT Người phụ trách : Thạc sĩ - Kĩ sư Âu Mậu Dương TP... Với nhu cầu đó, việc xây dựng và phát triển các ứ
Trang 1KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO THỰC TẬP
LẬP TRÌNH ỨNG DỤNG WEB VỚI JAVA
SPRING BOOT
Người phụ trách : Thạc sĩ - Kĩ sư Âu Mậu Dương
TP Hồ Chí Minh, tháng 12 năm 2022
Trang 2LỜI MỞ ĐẦU
Ngày nay, với sự phát triển mạnh mẽ của Internet, vai trò của website cũng như các ứng dụngweb đã và đang trở nên rõ ràng hơn bao giờ hết trong tất cả các lĩnh vực, tính đến năm 2021, cóhơn 1,8 tỷ website đang hoạt động trên Internet Có thể nói, Website chính là sản phẩm tốt nhấtcủa internet khi mang đến những lợi ích vô cùng to lớn cũng như đem lại rất nhiều cơ hội chochính người sử dụng
Với những đặc điểm ưu việt, website đang được áp dụng triệt để trong công tác quảng bá, quảngcáo, quản lý, xây dựng thương hiệu cho các doanh nghiệp Chỉ riêng tại Việt Nam, đã có hơn42% doanh nghiệp đã xây dựng website riêng và con số đó đã liên tục tăng mạnh qua nhiềunăm Với nhu cầu đó, việc xây dựng và phát triển các ứng dụng web đang ngày càng được chútrọng và nhiều framework đã ra đời để hỗ trợ điều đó điển hình chính là Java Spring Boot.Trước thị trường xây dựng website rất phát, ngày càng nhiều công ty ra đời và một trong nhữngcông ty phần mềm chuyên thiết kế website cực kì uy tín tại Việt Nam không thể không nhắc đếnchính là Công ty TNHH Phần mềm FPT
Chính sự cần thiết và nhu cầu của xây dựng website, webapp đang tăng nhanh, việc làm vàtuyển dụng kỹ sư lập trình web cũng ngày càng nhiều Vì những lý do đó, em quyết định lựachọn con đường lập trình web là đị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 webapp trong một môi trường chuyên nghiệp, em có dự định là sẽ thực tậptrong hè Vì vậy, em quyết định chọn FPT software - 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
Trang 3Đặc biệt cảm ơn anh Âu Mậu Dương, đã hướng dẫn rất kĩ phần nền tảng lý thuyết và tập trungnhững kỹ năng quan trọng cũng như giúp đỡ cho chúng em tận tình cả những khó khăn trongcông việc, đến những khó khăn việc làm quen với môi trường mới; cảm ơn anh Thành đãtraining module Spring boot, hỗ trợ chúng em rất nhiều về các vấn đề kỹ thuật và áp dụng vào
dự án thực tế; cảm ơn chị Phạm Hồng Thắm, đã chỉ dẫn chúng em về cách viết mail, cách làmbáo cáo, lên kế hoạch, những kỹ năng, văn hóa không thể thiếu trong công sở
Em cũng xin cảm ơn quý 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
Bùi Như Phước
Trang 4TP HCM, ngày 23/12/2022
NHẬN XÉT CỦA KHOA
Trang 5
MỤC LỤC
1 Gi i thi u công ty TNHH ph n m m FPT (FPT Software) ớ ệ ầ ề 6
∙ Tìm hi u v Spring Framwork và Hibernate, Spring JPA ể ề 10
∙ L p trình Spring boot và Spring Security ậ 11
Trang 6CH ƯƠ NG 4: T NG K T Ổ Ế 21
Trang 7Chương 1: Giới thiêu công ty thực tập
1 Giới thiệu công ty TNHH phần mềm FPT (FPT Software)
Công ty TNHH phần mềm FPT (hay còn được biết đến với tên gọi FPT Software) đượcthành lập ngày 13/01/1999, là một thành viên của Tập đoàn FPT FPT Software ra đời vớihướng đi chiến lược là xuất khẩu các dịch vụ phần mềm, trở thành một mắt xích quan trọnggiúp tập đoàn viết tiếp giấc mơ toàn cầu hóa, đưa trí tuệ Việt vươn ra thế giới
Hiện tại FPT Software đáp ứng nhu cầu gia công phần mềm lớn cho hơn 150 công ty hàng đầutại 20 quốc gia lớn nhất trên thế giới hiện nay với các hợp đồng lớn có khi đạt cả 1 triệu USDdành cho một số đối tác lớn như Hitachi, NEOPOST, Petronas, Deutsche Bank, và Unilever vớihơn 4000 nhân viên trên toàn thế giới
FPT Software theo đuổi mục tiêu gia công phần mềm để đáp ứng cho nhu cầu phát triển CNTTcủa các hãng phần mềm trong nước, các công ty lớn trong nước và tham vọng hơn là xuất khẩuphần mềm trên toàn thế giới cho các công ty nước ngoài biết đến tập đoàn FPT, mục đích chính
là vươn đến tầm cao mới thông qua công nghệ nhằm nâng cao năng suất lao động
2 Sản phẩm của công ty
Với bề dày gần 26 năm trong việc tạo dựng và phát triển các mô hình kinh doanh quy mô lớntrong lĩnh vực phần mềm, FPT Software cung cấp các dịch vụ đạt tiêu chuẩn quốc tế ở cácmảng:
● Dịch vụ phần mềm truyền thống (Application Services, Business Application Services,Legacy Migration, Testing & BPO);
● Dịch vụ Digital Age services (Cloud, Mobility, Analytics & Internet of Things)
● Dịch vụ Product Engineering bao gồm Embedded System, CAD/CAM và IC Design
Trang 8Với tham vọng trở thành công ty được hướng dẫn bởi những đổi mới công nghệ, cam kết đemlại sự hài lòng cao nhất cho khách hàng, góp phần vào sự phát triển thịnh vượng của quốc gia vàcung cấp cho nhân viên môi trường làm việc thuận lợi nhất, FPT Software đã tạo nên sự khácbiệt cho mình nhờ 5 yếu tố:
● Chất lượng dịch vụ đạt chuẩn thế giới
● Đáp ứng được nhu cầu khắt khe của các công ty hàng đầu
● Luôn đi đầu về công nghệ
● Nguồn nhân lực chuyên nghiệp
● Giá thành cạnh tranh
Trang 9Chương 2: Nội dung thực tập
Đợt thực tập với chủ đề “LẬP TRÌNH ỨNG DỤNG WEB VỚI JAVA SPRING BOOT” nhằmmục đích giúp sinh viên thực tập được đào tạo toàn diện về lập trình ứng dụng web bằng javaspring framework, đồ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 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
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
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 ty như thờigian đ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, 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
● Các công cụ làm việc
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 Các công cụ và IDE được sử dụng chính là MicrosoftSQL Server để quản lý database, Eclipse và IntelliJ để lập trình java và spring boot, ngoài racòn một số công cụ khác như Github, SourceTree, Docker, DBeaver để hỗ trợ quá trình thựchiện dự án
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ậ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, so với việc dung các IDE
● Tìm hiểu về SQL và Microsoft SQL server
Nội dung training:
o Database Concepts và ER Model
o Giới thiệu SQL và SQL Server
o DML Statements
o Advance DML Statements
o SQL Joins
o Sub-Queries và thực hành
Trang 10Thực hiện:
- Tham gia đầy đủ các buổi training của công ty
- Làm các bài thực hành, kiểm tra về kiến thức đã học
Kết quả :
- Nắm chắc các kiến thức căn bản của SQL
- Áp dụng xây dựng cơ sở dữ liệu cho dự án
- Có kiến thức phỏng vấn về SQL
● Tìm hiểu ngôn ngữ Java core
Nội dung : Được training gần như tất cả các kiến thức cần thiết của java core, chi tiết
gồm có:
- Java Introduction
- Control Flow Statements
- Classes and Object
- Java Polymorphism and Abstraction
- String and Collections
- Java Set Collection
- Java Map Collection
- Exception Handing in Java
- Basic Java IO
- Programming with JDBC
- Java Application Debugging
- Coding Conventions and Best Practices
- Testing with JUnit in Java
Trong đó, thực tập sinh được tập trung kĩ vào các phần như:
o 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ượngnhư 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 Ngoài ra,thực tập sinh còn được hướng dẫn về cách thiết kế lớp căn bản trong Java web
o Java collection: tìm hiểu về các collection interface của Java như Set, List, Queue,Map, nắm chắc khái niệm và cách sử dụng, áp dụng cho các trường hợp cần thiết
o Kiến trúc JDBC: học cách dùng JDBC API dùng để kết nối và thực thi các câulệnh SQL xuống database
o Debugging và Testing với Unit test trong Java: học cách debug bằng eclipse vàcách test ứng dụng Java bằng Unit Test
o Coding convention: học cách đọc coding convention của công ty và áp dụng vàoproject thực tế
Thực hiện :
- Tham gia đầy đủ các buổi training của công ty
- Làm các bài thực hành, kiểm tra về kiến thức đã học
Trang 11- Nâng cao kỹ năng lập trình với ngôn ngữ Java.
- Có được những kiến thức quan trọng cho việc lập trình web app sau này
- Ngoài ra còn được biết thêm một số quy tắc trong việc viết code sao cho đúngchuẩn, dễ đọc, dễ hiểu
● Lập trình Frontend với HTM, CSS và JS
Nội dung: Các kiến thức căn bản về HTML, CSS và JS, từ đó có thể áp dụng vàotạo ra giao diện website cá nhân và sẵn sàng học lên các Framework hiện đại hơn Nộidung trainning chi tiết gồm có:
Cụ thể, thực tập sinh được tập trung vào phần sử dụng Bootstrap và Jquery
để tạo giao diện tương tác với người dùng hoặc nhận API từ phía backend
Thực hiện:
- Tham gia đầy đủ các buổi training của công ty
- Làm các bài thực hành, kiểm tra về kiến thức đã học
Kết quả:
- Trang bị kiến thức nền tảng về HTML, CSS và JS để có thể học tiếp cácFramework dành cho Frontend
- Tự xây dựng được giao diện căn bản của project
● Tìm hiểu về Spring Framwork và Hibernate, Spring JPA
Nội dung: chi tiết gồm các phần:
Trang 12o Tính năng JPA
o Kiến trúc JPA
o Mối quan hệ class JPA
o Triển khai JPA
o Object-Relation Mapping (ORM)
o Phiên bản JPA
o Sự khác biệt giữa JPA và Hibernate
o Dữ liệu khởi động Spring Boot JPA
o Ví dụ về Spring Boot JPANội dung học tập trung nhiều đến phần Spring JPA và áp dụng vào project mẫu để thaotác với dữ liệu
Thực hiện:
- Tham gia đầy đủ các buổi trainning
- Làm các bài tập thực hành như thêm, xóa, sửa các đối tượng
- 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ách hoạt động của Spring JPA
- Áp dụng để thao tác với cơ sở dữ liệu bằng JPA
● Lập trình Spring boot và Spring Security
Nội dung: Các kiến thức về Spring Boot và Spring Security
- Có thể xây dựng được một trang web CRUD căn bản
- Login phân quyền và bảo mật với JWT
3 Thực hiện project
Sau hơn 1 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ề Java Spring boot Trong tháng thứ hai và ba, trainer đã hướng dẫn thực tập sinh áp dụngnhững kiến thức đã học để thực hiện một website bằng java spring boot
Chi tiết đồ á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
Trang 13- Làm bài test Java
Anh Âu Mậu
số giao diện căn bản
- Load data từ Api
mẫu
Anh Âu Mậu
4 -Spring Framwork và Tìm hiểu về
Hibernate, Spring JPA
Anh Âu Mậu
sơ đồ database, kết nối
với project bằng spring
- Thiết kế giao diện
quản lý của admin đơn
giản bằng thymeleaf với
bootstrap 5, HTML5,
Jquery
Anh Bùi Công
8 - Thiết kế giao diện
client bằng Thymeleaf Anh Bùi Công Thành 100%
Trang 14- Đăng nhập phân quyền
với spring security
Anh Bùi Công
Trang 15Chương 3: Chi tiết về project
1 Tên đề tài và mô tả
Tên đề tài: Xây dựng website quản lý trường mầm non
Mô tả đề tài: Website quản lý trường mầm non là một ứng dụng web xây dựng trên nền tảngInternet Được sử dụng bởi bộ phận quản lý, nhân viên của trường mầm non giúp họ có thểquảng bá trường học, thống kê, thực hiện các công tác quản lý học sinh, chương trình học, lớphọc, thời khoá biểu, đơn giản hoá các quy trình nhập học, tư vấn, và đăng tải, chia sẻ cácthông tin, sự kiện của trường hay những kiến thức bổ ích cho quý phụ huynh
2 Lý do chọn đề tài và nhu cầu thực tế
Giáo dục mầm non là cấp học đầu tiên trong hệ thống giáo dục, đặt nền móng cho sự pháttriển toàn diện con người Giáo dục mầm non nhằm phát triển toàn diện trẻ em về thể chất,tình cảm, trí tuệ, thẩm mỹ, hình thành yếu tố đầu tiên của nhân cách, chuẩn bị cho trẻ em vàohọc lớp một Chính vì vậy, việc đầu tư một môi trường giáo dục mầm non chất lượng cho trẻđang trở thành một mối quan tâm rất lớn đối với bậc phụ huynh dẫn đến ngày càng nhiềutrường mầm non tư thục ra đời với rất nhiều chương trình học đổi mới và sáng tạo, nhằm đemđến một môi trường học tập và phát triển tốt nhất cho trẻ Và để có thể quảng bá, giới thiệumái trường của mình đến với quý bậc phụ huynh cũng như tạo sự thuận tiện trong công tácquản lý của nhà trường và đơn giản hoá các quy trình nhập học, tư vấn, nhu cầu xây dựngcác website quản lý trường học ngày càng tăng lên và đó chính là lý do em thực hiện đề tàinày với mong muốn sẽ tạo ra một sản phẩm hữu ích cho các trường mầm non tư thục
3 Phạm vi thực hiện
Đối tượng: Nhân viên quản lý, giáo viên, hiệu trưởng các trường mầm non có nhu cầu xâydựng website để quảng bá trường học và thực hiện các công tác quản lý cho trường
Môi trường sử dụng: Bất kì thiết bị nào hỗ trợ trình duyệt Web và có thể truy cập Internet
4 Nội dung nghiên cứu
Nghiên cứu, tìm hiểu về công nghệ Spring, Hibernate và Thymeleaf Tìm hiểu những best
Trang 16practices tương ứng với những công nghệ này và áp dụng thực tế.
Nghiên cứu các quy tắc thiết kế nhằm bảo mật dữ liệu và bảo vệ hệ thống khỏi sự tấn công từ các tác nhân bên ngoài
Nâng cao và củng cố kĩ năng xây dựng một hệ thống chạy thực tế với quy mô vừa và nhỏ
Tìm hiểu về quá trình vận hành của một trường mầm non tư thục, nắm được các quy trình nhập học, tư vấn, đơn giản hoá và đưa lên trang web
5 Phương pháp thực hiện
Thực hiện đề tài theo các bước:
● Phân tích đề tài: Tìm hiểu những khó khăn hạn chế trong việc quản lý bằng
phương pháp truyền thống, đồng thời đề xuất giải pháp dưới dạng hệ thống tự
động nhằm giúp các quy trình diễn ra hiệu quả hơn và đơn giản hơn
● Tham khảo một số hệ thống tương tự ở nhiều trang Web khác
● Phân tích các yêu cầu đã thu thập được
● Nghiên cứu công nghệ để áp dụng
● Phát triển sản phẩm qua các giai đoạn, đồng thời nhận ý kiến phản hồi
● Kiểm thử và hoàn thiện
● Cài đặt môi trường để triển khai và chạy thử nghiệm, sau đó là chạy thực tế hệ
Trang 17Hệ thống cung cấp một giải pháp hỗ trợ quản lý hữu ích cho các trường mầm non:
● Hỗ trợ quản lý học sinh, chương trình học, lớp học, giáo viên, thời khoá biểu, các
bài viết,
● Với nhu cầu chia sẻ những kiến thức hay đến các bậc phụ huynh, hệ thống có tính
năng đăng bài blog
● Với nhu cầu tối ưu hoá quy trình nhập học, tư vấn, hệ thống có tính năng đăng kí
nhập học, tư vấn online và có gửi thông báo nhắc nhở quản trị viên
● Với nhu cầu hỏi đáp, góp ý về trường học, hệ thống cung cấp tính năng Bình luận
dưới mỗi bài đăng và tính năng "liên hệ" để người dùng bày tỏ
● Ngoài ra, hệ thống còn hỗ trợ phân quyền đăng nhập, thống kê các nội dung quan
trọng của trường, hỗ trợ thông báo đế quản trị viên khi có nhu cầu tư vấn từ phụ
huynh
7 Sơ đồ ERD
Trang 188 Hình ảnh giao diện
- Giao diện client:
Trang 20- Giao diện quản lý của admin
Trang 23CHƯƠNG 4: TỔNG KẾT
1 Đánh giá chung
Trong hơn 3 tháng thực tập tại FPTsoftware, em đã có một trải nghiệm rất tuyệt vời khibắt đầu từ con số không với mảng phát triển ứng dụng web bằng Java Em đã học được các kiếnthức cần thiết nhất để có thể thực hiện một trang web bằng Java Spring boot Ngoài những kiếnthức về công nghệ, em còn học được các làm việc với các dự án thực tế và rất nhiều kĩ năngmềm cần thiết trong môi trường làm việc chuyên nghiệp - những kiến thức và kinh nghiệm rấtcần thiết cho công việc của em sau này
● Biết cách xử lý khi bước chân vào các dự án lớn, biết cách đọc code và nắm luồng hoạtđộng cũng như debug
● Cải thiện kĩ năng dùng GIT và kĩ năng đọc Document
● Biết cách code theo các Coding Convention đã được đề ra của dự án
o 3 Những điểm cần khắc phục
● Kĩ năng lập trình vẫn cần phải hoàn thiện hơn và “sạch” (clean) hơn
● Cần cải thiện kĩ năng testing, đặc biệt là Unit Test
● Đóng góp ý kiến trong các cuộc họp Daily Meeting nhiều hơn