1. Trang chủ
  2. » Giáo Dục - Đào Tạo

báo cáo thực tập intern java spring boot

32 2 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Báo cáo thực tập Intern Java Spring Boot
Tác giả Hồ Minh Tuệ
Người hướng dẫn Hồ Thị Mỹ Uyên
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Công nghệ Phần mềm
Thể loại Báo cáo thực tập
Năm xuất bản 2023
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 32
Dung lượng 2,59 MB

Cấu trúc

  • CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP (6)
    • 1.1. Giới thiệu (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 (7)
  • CHƯƠNG 2: NỘI DUNG THỰC TẬP (8)
    • 2.1. Các quy tắc trong công ty (8)
    • 2.2. Quá trình tham gia dự án (11)
      • 2.2.1. Phân tích yêu cầu (11)
      • 2.2.2. Thiết kế hệ thống (13)
      • 2.2.3. Lập trình (15)
      • 2.2.4. Kiểm thử, triển khai (18)
    • 2.3. Kết quả (31)
  • CHƯƠNG 3: TỔNG KẾT (32)

Nội dung

Sau những năm tháng trong môi trường đại học, với mong muốn áp dụng những kiến thức đã học và có được trải nghiệm trong môi trường thực tế, em đã quyết định tham gia vào FPT Software– mộ

GIỚI THIỆU CÔNG TY THỰC TẬP

Giới thiệu

FPT Software, thuộc về Tập đoàn FPT, là công ty cung cấp dịch vụ và giải pháp phần mềm cho khách hàng quốc tế, với hơn 27000 nhân viên và phục vụ hơn 1000 khách hàng cả trong và ngoài nước Công ty được thành lập năm 1999, sau hơn 20 năm phát triển đã vươn tầm và có 71 văn phòng ở 28 quốc gia trên thế giới Các lĩnh vực hỗ trợ của FPT Software bao gồm: Y tế, Ngân hàng tài chính, Cơ khí và tự động hóa, Phương tiện truyền thông,…

Sản phẩm công ty

Công ty chuyên về mảng outsourcing cho các công ty trong và ngoài nước, gồm nhiều mảng như Blockchain, AI, Big Data, Ngoài ra cũng có những sản phẩm tự phát triển như:

Hình 1.2 Logo Utop Đây là ứng dụng thanh toán nhanh trên thiết bị di động Thiết bị cho phép tích điểm người dùng và đổi điểm ở các chi nhánh sử dụng Ứng dụng có tích hợp với các bên thứ

3 như Momo hay tích hợp với ngân hàng cho thuận tiện việc thanh toán Utop dược xây dựng với công nghệ Blockchain để đảm bảo an toàn thông tin người sử dụng

Trang web đào tạo lập trình trực tuyến CodeLearn, hướng dẩn ứng dụng các công nghệ hiện đại như trình biên dịch, AI, docker, AWS… giúp người học rèn luyện kỹ năng lập trình đa cấp Ngoài ra còn có hỗ trợ cộng đồng học thuật để tăng tính tương tác, thực tế của các khóa đào tạo.

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

Em bắt đầu làm việc từ ngày 22/6 đến 21/8, làm việc trực tiếp trên công ty thứ 3 và thứ

5, làm việc online tại nhà vào thứ 2, 4, 6 Công việc bắt đầu từ 8h sáng đến 17h chiều, được nghỉ trưa từ 11h30 đến 1h 3 tuần đầu kỳ thực tập dành ra để làm quen với cách làm việc, tiếp nhận, phân tích dự án Công ty có tổ chức các cuộc thi Code War, đại hội nhạc vào các buổi chiều cho thực tập sinh tham gia Mỗi tuần sẽ có review lại những việc đã làm và cập nhật lại trên lịch của nhóm Và có các buổi giảng của mentor để nhóm làm quen với văn hóa làm việc trong công ty

NỘI DUNG THỰC TẬP

Các quy tắc trong công ty

- Nghiêm cấm sử dụng github trong mọi trường hợp

- Nghỉ phép phải báo trước 3 ngày

- Tham gia đầy đủ các buổi training, kiểm tra

Em được giới thiệu bản than và phân chia nhóm để làm việc cùng, 1 nhóm có 10 người và có trường nhóm Các nhóm sẽ làm việc chính với các mentor, các mentor đánh giá về mức độ của dự án, các điểm cần lưu ý và cải thiện Ngoài ra còn tổ chức các buổi kiểm tra về kiến thức, trình độ kỹ thuật, được tham khảo ý kiến từ những người có kinh nghiệm trong ngành

Nhóm em được phân công phụ trách Backend của Website Quản lý tuyển dụng Dự án được viết bằng Java Spring Boot, Frontend là React JS do nhóm khác đảm nhiệm 2 nhóm làm việc độc lập, nhưng có sự hợp tác, làm việc chung thông qua trưởng nhóm Mỗi khi có thay đổi sẽ có buổi góp ý của 2 nhóm với nhau Các nhóm được tham gia vào quy trình phát triển sản phẩm từ khâu phân tích yêu cầu đến deploy dự án và làm theo mô hình Scrum

Hình 2.1 Mô hình Scrum Đối với mỗi thành viên, chúng em phân công công việc dựa vào kiến thức, khả năng mỗi người Trong nhóm sẽ có người chuyên về phân tích yêu cầu, thiết kế hệ thống, cơ sở dữ liệu, phát triển, kiểm thử, devops, Mỗi công đoạn đều có sự đóng góp của tất cả thành viên, nhưng sẽ có người phụ trách chính Công việc các thành viên được phân chia và tiến độ được cập nhật thường xuyên trên ClickUp Đây là phần mềm dùng để quản lý dự án được nhiều người ưa dùng Ngoài ra còn sử dụng GitLab để quản lý source code

Hình 2.3 Logo GitLab Cuối kỳ thực tập, dự án sẽ phải deploy lên hosting thật để chấm điểm và đánh giá Sau đó người chấm sẽ đặt các câu hỏi liên quan đến dự án để kiểm tra kiến thức, đóng góp

11 của mỗi người từ đó đánh giá kỳ thực tập của sinh viên Dự án deploy trên https://www.sap.com/

Quá trình tham gia dự án

Tuần 1 và tuần 2 nhận yêu cầu từ mentor, được hướng dẫn cách phân tích tính năng và yêu cầu của người dùng Được mentor hướng dẫn cách làm việc nhóm, quản lý thời gian và phân chia công việc cho hiệu quả Nhóm chọn sử dụng các công cụ như

ClickUp để quản lý tiến độ và thường xuyên liên lạc thông qua Discord, Messager

Hình 2.5 Giao diện chính và phân chia công việc

Về người dùng thì có thể phân chia ra 4 loại:

- Admin: Quản lý quyền người dùng Có thể gắn blacklist Candidate hoặc xóa người dùng

- RECcer: Tổ chức các sự kiện tuyển dụng, các sự kiện sẽ phải rõ ràng vị trí, ngôn ngữ, kỹ năng yêu cầu cần phải có Các câu hỏi tuyển dụng sẽ do RECcer soạn ra Sau khi xem kết quả phỏng vấn và điểm tổng kết, RECcer có thể duyệt đậu hay rớt

- Interviewer: Người phỏng vấn được RECcer phân công vào buổi phỏng vấn Người phỏng vấn sẽ đặt câu hỏi được phân công sẵn trong buổi phỏng vấn và chấm điểm từng câu

- Candidate: Ứng cử viên phỏng vấn Có thể tạo CV hoặc upload lên hồ sơ Khi có sự kiện phỏng vấn thì có thể đăng ký vào sự kiện

Bên trên là những chức năng cơ bản yêu cầu phải có Ngoài ra còn các chức năng khác như là đặt phòng phỏng vấn không được trùng nhiều buồi cùng 1 phòng, tạo link Google Meet hoặc Zoom để hỗ trợ buổi phỏng vấn, gỡ blacklist tài khoản sau 2 tháng,

Từ các yêu cầu trên nhóm đã phân tích và thiết kế use case tổng quát phù hợp

Hình 2.6 Mô hình use case của dự án

Sau đó nhóm báo cáo use case và được chấp nhận, nhóm bắt đầu triển khai làm những use case chi tiết hơn

Sau khi đã có use case, nhóm bắt đầu triển khai các mô hình dữ liệu:

Hình 2.7 Mô hình trong cơ sở dữ liệu

Mô hình do tất cả thành viên thực hiện, nên cần có sự đồng nhất khi gắn kết lại với nhau

Sau khi có sự đồng thuận, nhóm bắt đầu thực hiện thiết lập các thực thể trong dự án dựa theo mô hình đã được thiết kế

Cơ sở dữ liệu sử dụng là MySQL

Hình 2.8 Các đối tượng trong dự án

Trong lúc áp dụng thiết kế, đã có những chỉnh sửa để phù hợp hơn trong dự án so với thiết kế ban đầu

Sau 3 tuần phân tích yêu cầu, thiết kế hệ thống thì nhóm bắt đầu chia task ra để xử lý Bắt đầu từ những chức năng lớn như bảo mật, nghiệp vụ chính

Hình 2.9 Một số API chính của dự án

Em tham gia vào việc lập trình những API liên quan đến việc candidate tạo CV,

RECcer quản lý các vị trí tuyển dụng trong buổi phỏng vấn, các yêu cầu về kỹ năng, ngôn ngữ trong vị trí candidate đăng ký ứng tuyển Ngoài ra còn có kiểm thử các API, viết test case để kiểm tra trước khi triển khai lên host

Test case được viết bằng Junit và được thiết lập CI/CD trên GitLab Chỉ khi các API đạt hết tất cả test case 100% mới được merge được code lên nhánh development

Em còn được phân công nghiên cứu JWT Authentication và áp dụng cơ chế Access, Refresh Token cho hệ thống

JWT là cơ chế bảo mật dữ liệu và thông tin được mã hóa trong chuỗi JWT, được định dạng theo kiểu JSON Chuỗi JWT bao gồm header, payload và signature, thông tin được bảo mật và mã hóa nhờ vào 3 thành phần này, chính vì thế dù là cùng 1 thông tin nhưng chuỗi JWT vẫn có thể khác nhau Dựa vào cơ chế này, ta có thể giải mã những thông tin trong chuỗi JWT để xác thực và phân quyền người dùng

Client sẽ không tạo ra chuỗi JWT và gửi lên server để giải mã, mà server sẽ làm việc mã hóa thông tin xác thực và giải mã thông tin luôn, nhờ vào cơ chế Access, Refresh

Hình 2.12 Cơ chế Access, Refresh Token

Ta áp dụng JWT vào cơ chế như sau:

- Khi người dùng đăng nhập thành công, server sẽ tạo ra refresh token và access token, lưu lại refresh token trong cơ sở dữ liệu và đồng thời đặt tất cả refresh token tạo ra trước đó thành hết hạn Refresh token sẽ có thời gian hết hạn sau 3 giờ, trong khi access token chỉ có hạn trong vòng 15 giây

- Khi người dùng truy cập vào các API cần xác thực hay quyền hạn cao, client sẽ gửi lên access token và refresh token để kiểm tra thông tin

- Nếu access token vẫn còn hạn, thông tin access token có tài khoản hợp lệ và phân quyền phù hợp thì sẽ thực hiện tác vụ

- Nếu access token đã hết hạn thì xác thực thông tin trong refresh token, khởi tạo access token mới và gửi lại access token cho client, kèm thông báo để client gửi lại access token mới

- Nếu refresh đều hết hạn, server gửi thông báo cho client yêu cầu đăng nhập trở lại

Cơ chế trên giúp cho việc phân quyền người dùng, tăng tính bảo mật khi access token chỉ có thời hạn ngắn tránh việc lợi dụng cookies và không cho người dùng đăng nhập nhiều nơi cùng lúc vì refresh token sẽ được tạo mới và các refresh token sẽ không còn tác dụng

Hình 2.13 Đăng nhập thành công và trả về refresh token cùng access token

Nhóm quyết định chọn SAP làm host cho backend

Sau khi kiểm thử và bắt đầu triển khai lên host SAP cho nhóm frontend React JS sử dụng

20 Hình 2.15 Mô tả công việc

21 Hình 2.16 Candidate đăng CV để ứng tuyển

22 Hình 2.17 Các vị trí tuyển dụng hiện tại

23 Hình 2.18 Màn hình đăng nhập

25 Hình 2.20 Candidate từ tạo CV

26 Hình 2.21 RECcer soạn các câu hỏi cho buổi phỏng vấn

27 Hình 2.22 Các câu hỏi hiện có

28 Hình 2.23 Interviewer chấm điểm buổi phỏng vấn

30 Hình 2.25 Tổng hợp các buổi phỏng vấn

Kết quả

- Quá trình thực tập có những trải nghiệm mới nhưng dễ làm quen

- Học được cách quy trình các doanh nghiệp đang hoạt động

- Cải thiện khả năng làm việc nhóm, giao tiếp với các thành viên

- Biết thêm các ứng dụng, các công vụ mới trong quá trình làm việc

- Được làm quen với những người làm việc chung

- Đạt được kết quả tốt với các yêu cầu được đặt ra

- Thái độ khi làm việc nhóm cũng như giao tiếp với mentor tốt

Ngày đăng: 15/05/2024, 09:07

HÌNH ẢNH LIÊN QUAN

Hình 1.2 Logo Utop - báo cáo thực tập intern java spring boot
Hình 1.2 Logo Utop (Trang 6)
Hình 1.1. Logo FPT Software - báo cáo thực tập intern java spring boot
Hình 1.1. Logo FPT Software (Trang 6)
Hình 1.3 Logo CodeLearn - báo cáo thực tập intern java spring boot
Hình 1.3 Logo CodeLearn (Trang 7)
Hình 2.1 Mô hình Scrum - báo cáo thực tập intern java spring boot
Hình 2.1 Mô hình Scrum (Trang 9)
Hình 2.2 Logo ClickUp - báo cáo thực tập intern java spring boot
Hình 2.2 Logo ClickUp (Trang 10)
Hình 2.4 Trang chủ SAP - báo cáo thực tập intern java spring boot
Hình 2.4 Trang chủ SAP (Trang 11)
Hình 2.5 Giao diện chính và phân chia công việc - báo cáo thực tập intern java spring boot
Hình 2.5 Giao diện chính và phân chia công việc (Trang 11)
Hình 2.10 EventControllerTest - báo cáo thực tập intern java spring boot
Hình 2.10 EventControllerTest (Trang 16)
Hình  2.12 Cơ chế Access, Refresh Token  Ta áp dụng JWT vào cơ chế như sau: - báo cáo thực tập intern java spring boot
nh 2.12 Cơ chế Access, Refresh Token Ta áp dụng JWT vào cơ chế như sau: (Trang 17)

TỪ KHÓA LIÊN QUAN

w