Tải bản đầy đủ (.pdf) (28 trang)

báo cáo thực tập tốt nghệp ngành công nghệ thông tin

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 (1.14 MB, 28 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINHKHOA CƠNG NGHỆ THƠNG TIN</b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM</b>

<b>Độc lập – Tự do – Hạnh Phúc</b>

TP. Hồ Chí Minh, ngày 13 tháng 09 năm 2022

<b>NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN</b>

Sinh viên thực hiện:

 Họ và tên: Trần Việt Anh MSSV: 19110325 Ngành: Công nghệ thông tin Lớp: 19110ST1C

Tp. Hồ Chí Minh, ngày 01 tháng 12 năm 2022 Giáo viên hướng dẫn

(Ký & ghi rõ họ tên)

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>LỜI CẢM ƠN</b>

Lời đầu tiên nhóm xin phép được gửi lời cảm ơn chân thành và sâu sắc nhất đến với Khoa Công Nghệ Thông Tin – Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh đã tạo điều kiện cho người thực hiện báo cáo được học tập, phát triển kiến thức khi thực tập tại FPT Software.

Bên cạnh đó người thực hiện báo cáo xin gửi đến thầy Lê Văn Vinh lời cảm ơn sâu sắc nhất. Trải qua một quá trình thực tập và thực hiện đề tài trong thời gian qua. Thầy đã tận tâm chỉ bảo nhiệt tình người thực hiện báo cáo trong suốt quá trình từ lúc bắt đầu cũng như kết thúc thực tập này.

Với sự hướng dẫn nhiệt tình giúp đỡ tận tình của thầy Lê Văn Vinh và anh mentor Bùi Công Thành, người thực hiện báo cáo đã học tập và hiểu được những kiến thức cơ bản về cơng nghệ mà người thực hiện báo cáo tìm hiểu trong quá trình thực tập

Tuy nhiên lượng kiến thức là vô tận và với khả năng hạn hẹp người thực hiện báo cáo đã rất cố gắng để hồn thành một cách tốt nhất. Chính vì vậy việc xảy ra những thiếu sót là điều khó có thể tránh khỏi. Người thực hiện báo cáo hi vọng nhận được sự góp ý tận tình của q thầy (cơ) và anh mentor qua đó người thực hiện báo cáo có thể rút ra được bài học kinh nghiệm và hoàn thiện và cải thiện nâng cấp lại sản phẩm của mình một cách tốt nhất có thể.

Xin chân thành cảm ơn!

<b>Sinh viên thực hiện</b>

Trần Việt Anh – 19110325

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>MỤC LỤC</b>

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN...2

LỜI CẢM ƠN...3

CHƯƠNG 1: GIỚI THIỆU CÔNG TY VÀ NHIỆM VỤ ĐƯỢC GIAO...6

<b>1.1. Giới thiệu cơ quan thực tập...6</b>

<b>1.2. Giới thiệu lịch làm việc tại cơ quan...6</b>

<b>1.3. Giới thiệu nhiệm vụ được giao...6</b>

CHƯƠNG 2: NỘI DUNG THỰC TẬP...8

<b>2.4. Công việc hàng tuần...9</b>

CHƯƠNG 3: QUÁ TRÌNH XÂY DỰNG PROJECT VÀ KẾT QUẢ...18

<b>3.1. Giới thiệu project...18</b>

<b>3.2. Phân tích và thiết kế hệ thống...18</b>

<b>3.2.1.Xác định yêu cầu...18</b>

<b>3.2.2.Các vai trò và chức năng trong hệ thống...18</b>

<b>3.3. Kết quả thực hiện (Swagger UI)...20</b>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>CHƯƠNG 1: GIỚI THIỆU CÔNG TY VÀ NHIỆM VỤ ĐƯỢC GIAO</b>

<b>1.1.Giới thiệu cơ quan thực tập</b>

FPT Software là công ty thành viên thuộc tập đoàn FPT, chuyên cung cấp các dịch vụ và giải pháp về công nghệ thông tin hàng đầu thế giới.

Được thành lập vào năm 1999, đến nay công ty đã đạt được 1.6 tỷ USD doanh thu và với hơn 54.000 nhân viên đang làm việc tại 28 quốc gia khác nhau trên thị trường quốc tế. Trong nhiều năm liền, FPT Software ln được bình chọn là cơng ty u thích hàng đầu của các lập trình viên và là cơng ty có mơi trường làm việc năng động, tốt nhất châu Á.

<b>Sứ mệnh : Mang lại các giải pháp công nghệ thông tin tốt nhất cho các công ty, tổ</b>

chức hàng đầu thế giới. Cung cấp môi trường làm việc năng động cho các bạn trẻ đang theo đuổi ngành cơng nghệ

<b>Tầm nhìn: Thúc đẩy, phát triển bởi sự đổi mới, cam kết về mức độ hài lòng của</b>

khách hàng với mong muốn trở thành công ty về công nghệ hàng đầu Việt Nam

<b>Giá trị cốt lõi: Nhanh nhẹn - Đổi mới - Cam kết - Tôn trọng</b>

<b>1.2.Giới thiệu lịch làm việc tại cơ quan </b>

Tại FPT Software, số giờ làm việc tiêu chuẩn trong 1 tuần là 40 tiếng. Ngày làm việc bắt đầu từ thứ Hai đến thứ Sáu hàng tuần. Thời gian làm việc ở buổi sáng từ 8h00 đến 12h00, buổi chiều từ 13h00 đến 17h00.

Khi muốn nghỉ phép, nhân viên cần chủ động gửi e-mail cho Admin trước 2-3 ngày để được sắp xếp. Nếu có việc đột xuất, vấn đề về sức khoẻ,… thì nhân viên có thể liên lạc cho Admin ngay trong ngày qua cuộc gọi.

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>1.3.Giới thiệu nhiệm vụ được giao</b>

Về nhiệm vụ được giao sẽ bao gồm ba nhiệm vụ chính như sau:

<b>[1] Thực hành, tìm hiểu về Java Core, Spring Boot, Spring Security và các kiến</b>

thức liên quan đến Back-end như: JWT (JSON Web Token), Swagger (Dùng để host API doc), RESTful API,…

<b>[2] Học tập, nghiên cứu và làm việc theo nhóm (Spring Boot, Spring Data JPA,…)[3] Thực hiện project xây dựng hệ thống Back-end cho website thương mại điện tử</b>

Tiki

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>CHƯƠNG 2: NỘI DUNG THỰC TẬP2.1. Nội dung thực tập </b>

Trong quá trình thực tập kéo dài 2 tháng từ 04/07/2022 đến ngày 31/08/2022 đã hồn thành thực hiện các cơng việc sau đây:

<b>[1] Ơn tập về Java core, tìm hiểu về Spring Boot, Spring Security, Spring Data</b>

Spring Boot là một công cụ dùng để phát triển các ứng dụng web và các microservice với Spring Framework một cách dễ dàng và nhanh chóng. Thơng qua Spring Boot, việc cài đặt cấu hình Spring sẽ được giảm tải đi rất nhiều so với cách cài đặt truyền thống

Spring Boot hỗ trợ các bộ chứa nhúng (Embedded containers) giúp các ứng dụng web có thể chạy độc lập mà khơng cần triển khai chúng lên các Web Server.

Các tính năng của Spring Boot:

<b>[1] Tạo ra các ứng dụng Spring độc lập</b>

<b>[2] Cung cấp rất nhiều các plugin để phát triển và test các ứng dụng Spring Boot</b>

nhanh chóng sử dụng các cơng cụ như Maven và Gradle

<b>[3] Có thể nhúng trực tiếp Tomcat, Jetty hoặc Undertow giúp chạy các ứng dụng</b>

web mà không cần phải triển khai file WAR

<b>[4] Stater Dependency giúp chạy các cấu hình Maven trở nên đơn giản hơn[5] Khơng sinh ra code cấu hình, khơng u cầu phải cấu hình bằng XML</b>

<b>2.2.2. Spring Security</b>

Spring Security là một phần của Spring Framework, hỗ trợ việc triển khai các biện pháp bảo mật ở tầng ứng dụng. Spring Security hoạt động xoay quanh 2 vấn đề chính là xử lý xác thực và xử lý bảo mật ở cấp độ web request.

Spring Security là một framework mạnh và có độ tuỳ biến cao, do đó các lập trình viên có thể sử dụng các cấu hình có sẵn của nó hoặc tuỳ chỉnh theo các bài toán được đặt ra trong hệ thống.

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

Một số tính năng của Spring Security:

<b>[1] Tích hợp các Servlet API</b>

<b>[2] Tích hợp tuỳ chọn với Spring Web MVC</b>

<b>[3] Cung cấp các sự bảo vệ chống lại các cuộc tấn công như session fixation, </b>

clickjacking, CSRF,...

<b>[4] Hỗ trợ tồn diện và có thể mở rộng cho cả xác thực và phân quyền2.2.3. Spring Data JPA</b>

Spring Data là một module thuộc Spring Framework. Spring Data JPA là một phần của Spring Data, nó được sinh ra để giúp tối giản hoá các bước triển khai JPA (Java Persistance API)

Các tính năng của Spring Data JPA:

<b>[1] Hỗ trợ XML mapping</b>

<b>[2] Cấu hình JavaConfig bằng cách sử dụng @EnableJpaRepositories[3] Hỗ trợ phân trang, thực thi các truy vấn động</b>

<b>[4] Hỗ trợ xây dựng các Repositories dựa trên Spring và JPA</b>

<b>[5] Hỗ trợ xác thực các câu truy vấn có chú thích </b>@Query tại thời điểm phát động

<b>2.2.4. JWT</b>

JSON Web Token (JWT) là một tiêu chuẩn mở (<b>RFC 7519</b>) nhằm xác minh tính an tồn cho việc truyền thông tin giữa Client-Server dưới dạng JSON object. Thông tin này sẽ được chứng thực và đảm bảo tin cậy vì nó đã được ký số.

JWT bao gồm 3 thành phần là Header, Payload và Signature. Giữa các thành phần được ngăn cách bởi dấu chấm (.) Ví dụ:

Cách hoạt động của JWT: khi người dùng muốn truy cập vào các đường dẫn hoặc tài nguyên đã được bảo vệ thì trong request được gửi đi phải có JWT được đính kèm ở Authorization header. Phía server sẽ kiểm tra JWT để xem người dùng có hợp lệ và đủ đặc quyền để được truy cập tài nguyên đó hay khơng, nếu hợp lệ thì người dùng sẽ được phép truy cập và ngược lại người dùng sẽ không được phép truy cập vào tài nguyên đó.

<b>2.3.Phương thức làm việc</b>

Mỗi cá nhân trong lớp tự tìm hiểu, học hỏi các kiến thức liên quan đến Java core, Spring Boot thông qua các yêu cầu được đưa ra bởi Mentor trong 2 tuần đầu tiên. Sau đó các thành viên thành lập nhóm 6 người để thực hiện các project về các trang thương mại điện tử bao gồm Tiki, Thế giới di động, Shopee. Sau khi hoàn thành, các nhóm chủ động liên hệ với các nhóm Front-end có chung đề tài để ghép nối giao diện.

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>2.4.Công việc hàng tuần</b>

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<small>Các công c , máy móc, trang ụthiếết b và phịương pháp được </small>

<small>Online meetng g p MentorặOnline meetng g p MentorặNh n task cài đ t các tool hôỗ ậặ</small>

<small>Cài đ t các tool hơỗ tr khóa ặợh cọ</small>

<small>Cài đ t IDEặ EclipseCài đ t công c test APIặụ Postman</small>

<small>Totalhours for the WeekT ng sôế gi trong tuầầnổờ</small>

<small>40</small>

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<small>Các cơng c , máy móc, trang ụthiếết b và phịương pháp được </small>

<small>Totalhours for the WeekT ng sôế gi trong tuầầnổờ</small>

<small>40</small>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<small>Các cơng c , máy móc, trang ụthiếết b và phịương pháp được </small>

<small>Online meetng và h c t p vêề ọ ậ</small>

<small>Totalhours for the WeekT ng sôế gi trong tuầầnổờ</small>

<small>40</small>

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<small>Các công c , máy móc, trang ụthiếết b và phịương pháp được </small>

<small>Totalhours for the Week</small>

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<small>Các công c , máy móc, trang ụthiếết b và phịương pháp được Totalhours for the Week</small>

<small>T ng sôế gi trong tuầầnổờ</small>

<small>40</small>

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<small>Các công c , máy móc, trang ụthiếết b và phịương pháp được </small>

<small> Online meetng làm đôề án Xấy d ng Service CRUD cho ựProvince, District, Commune</small>

<small> Online meetng làm đôề án Xấy d ng Entty Ratng, ựRatngService thêm đánh giá, xem đánh giá theo s n ph mảẩ</small>

<small> Xấy d ng Entty Cart, ựCartDTO, CartService thêm s n ph m vào gi hàng, ch nhảẩỏỉs a sơấ lửượng, xóa s n ph m ảẩkh i gi hàngỏ ỏ</small>

<small>Totalhours for the WeekT ng sôế gi trong tuầầnổờ</small>

<small>40</small>

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<small>Các cơng c , máy móc, trang ụthiếết b và phịương pháp được </small>

<small> Online meetng làm đôề án Merge code v i các thành ớviên, fix bug</small>

<small>Totalhours for the WeekT ng sôế gi trong tuầầnổờ</small>

<small>40</small>

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<small>Các cơng c , máy móc, trang ụthiếết b và phịương pháp được </small>

<small> Lên công ty báo cáo Hoàn thi n báo cáoệMySQL</small>

<small>Totalhours for the WeekT ng sôế gi trong tuầầnổờ</small>

<small>40</small>

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<b>CHƯƠNG 3: QUÁ TRÌNH XÂY DỰNG PROJECT VÀ KẾT QUẢ3.1.Giới thiệu project</b>

- Tên đề tài: Xây dựng hệ thống back-end cho website thương mại điện tử Tiki - Công nghệ sử dụng: Spring boot, Spring Data JPA, Spring Security, Swagger UI - Cơ sở dữ liệu: Mysql

- IDE sử dụng: Eclipse 2022 - Thời gian bắt đầu: 18/07/2022 - Thời gian kết thúc: 28/08/2022 - Số lượng thành viên: 4 người

- Vị trí trong dự án: Xây dựng, ứng dụng Spring Security vào project để xác thực, phân quyền người dùng với JSON Web Token (JWT). Triển khai, xây dựng các module về người dùng, module xác thực, thiết kế mail server dùng để gửi email xác  Xem chi tiết sản phẩm  Thêm hàng vào giỏ hàng  Đặt hàng và thanh toán  Quản lý đơn hàng cá nhân

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

Hình 3.2: Lược đồ thiết kế CSDL

<b>3.3.Kết quả thực hiện (Swagger UI)3.3.1. API auth-controller</b>

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<b>3.3.2. API brand-controller</b>

<b>3.3.3. API cart-controller</b>

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

<b>3.3.4. API category-controller</b>

<b>3.3.5. API order-controller</b>

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<b>3.3.6. API product-controller</b>

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

<b>3.3.7. API province-controller</b>

<b>3.3.8. API rate-controller</b>

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

<b>3.3.9. API user-address-controller</b>

<b>3.3.10.API user-controller</b>

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

<b>CHƯƠNG 4: KẾT LUẬN4.1.Nhận định của bản thân</b>

FPT Software cung cấp môi trường làm việc năng động, cơ sở vật chất hiện đại, đầy đủ đáp ứng được nhu cầu thực tập và làm việc của sinh viên. Ngồi ra, cơng ty cịn tổ chức các hoạt động ngoại khố như các buổi talking, meeting về các chủ đề như English, Tech Talk,… để nâng cao trải nghiệm cho quá trình thực tập cũng như các giải đấu thể thao nâng cao sức khoẻ cộng đồng.

Tuy khoảng thời gian thực tập khá ngắn ngủi nhưng việc các anh chị admin và mentor đã tạo điều kiện hỗ trợ hết sức mình giúp quá trình học tập và làm việc trở nên thú vị, năng động hơn thông qua việc phổ biến, cung cấp chia sẻ các kinh nghiệm qua các buổi Talking cũng như Meeting Online cho sinh viên thực tập.

<b>4.2.Kết quả đạt được</b>

- Học được tác phong làm việc chuyên nghiệp, kỹ năng mềm như viết email - Trau dồi kỹ năng làm việc nhóm, tương tác qua lại giữa các thành viên - Hiểu biết thêm về các công nghệ dùng để triển khai một hệ thống Back-end - Cách thiết kế, triển khai một hệ thống Back-end với Java Spring Boot

<b>4.3.Hạn chế</b>

Thời gian làm việc trực tiếp trên công ty và số lần gặp mặt trực tiếp các trainer/mentor cịn hạn chế. Có 2 lớp Back-end nhưng chỉ có 1 lớp Front-end nên nhóm khơng có Front-end để ghép thành bài hồn thiện, chỉ có thể chạy bài thơng qua các APIs

<b>4.4.Hướng phát triển</b>

- Tạo giao diện đẹp mắt, trực quan, tối ưu hóa hiển thị và độ mượt mà của các trang người dùng.

- Nâng cấp thêm chức năng thanh tốn thơng qua ngân hàng, ví điện tử. - Đăng nhập Website bằng tài khoản Google, Facebook…

- Xây dựng và hoàn thiện chức năng trao đổi trực tiếp với khách hàng bằng chatbox

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

<b>TÀI LIỆU THAM KHẢO</b>

1. 2.

×