Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 16 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
16
Dung lượng
637,9 KB
Nội dung
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 ỨNG DỤNG ĐĂNG KÍ LỊCH NGHỈ PHÉP Công ty thực tập: Công ty TNHH Giải pháp Phần mềm Tường Minh Người phụ trách : Nguyễn Hà Phi Hùng Thực tập sinh: Đinh Hoàng Nhi TP Hồ Chí Minh, tháng năm 2021 LỜI MỞ ĐẦU Ngày nay, ứng dụng web phận thiếu ngành công nghiệp phần mềm Với nhiều cơng nghệ liên tục thay đổi hồn thiện cho việc phát triển web từ giao diện (frontend), server (backend), hệ thống (system), bảo mật (security),… lập trình ứng dụng web trở thành nhân tố kích thích phát triển công nghệ thông tin giới, đặc biệt lĩnh vực phần mềm Cùng với xu phát triển giới, Việt Nam ngoại lệ Ngành phát triển bảo trì dự án ứng dụng web ngày phổ biến rộng mở hội việc làm cho nhiều lập trình viên nước Đặc biệt việc lập trình web Việt Nam phối hợp với đối tác nước (lập trình viên, khách hàng…), kích thích tiềm thương mại đóng góp lớn cho kinh tế nước nhà Lập trình web sinh nhằm đơn giản hóa nhiều tác vụ mơi trường từ phía người dùng, khách hàng, cần sử dụng phần mềm việc truy cập vào đường dẫn cụ thể qua internet thay phải cài đặt, tương thích cấu hình so với sản phẩm phần mềm khác Từ nhu cầu lĩnh vực phát triển ứng dụng web trở nên phổ biến nhiều năm gần xu nhiều năm Sau gần ba năm học tập trường, với khao khát tìm hiểu quy trình làm ứng dụng web môi trường thực tế chuyên nghiệp, đồng thời nâng cao kĩ lập trình, em dự định thực tập bán thời gian (3 ngày/tuần) giai đoạn chuyển giao thi cuối kì đầu học kì để có nhiều thời gian trải nghiệm học tập Vì em định chọn Cơng ty TNHH Giải pháp phần mềm Tường Minh (TMA) để thực dự định Nguyễn Hà Phi Hùng Đinh Hoàng Nhi LỜI CẢM ƠN Trân trọng gửi lời cảm ơn Công ty TNHH Giải pháp Phần mềm Tường Minh tạo điều kiện cho em có hội thực tập công ty Chỉ thời gian ngắn, nhờ dẫn nhiệt tình của người hướng dẫn (mentor), em học hỏi nhiều công nghệ việc phát triển ứng dụng web đại, giúp em nhiều việc lập trình web học kì Đồng thời, quy trình làm việc cơng ty giúp em hiểu nhiều tính chuyên nghiệp kỉ luật trình phát triển, vận hành bảo trì phần mềm nói chung ứng dụng web nói riêng Đặc biệt cảm ơn anh Nguyễn Hà Phi Hùng training, cung cấp nhiều kiến thức chuyên môn công nghệ, ngôn ngữ quy trình phát triển ứng dụng web; cảm ơn anh Nguyễn Văn Toàn lên kế hoạch thực tập, đánh giá gợi ý hướng dẫn phát triển tính cho ứng dụng em; trân trọng tất anh, chị dự án hỗ trợ em nhiều q trình thực tập cơng ty Cũng xin cảm ơn thầy cô khoa Công nghệ phần mềm nhiệt tình hỗ trợ, tạo điều kiện em làm báo cáo Đinh Hoàng Nhi Thành phố Hồ Chí Minh, ngày 13 tháng 01 năm 2021 Nguyễn Hà Phi Hùng Đinh Hoàng Nhi NHẬN XÉT CỦA KHOA Nguyễn Hà Phi Hùng Đinh Hoàng Nhi Mục lục Chương 1: Giới thiêu công ty thực tập Giới thiệu công ty TNHH Giải pháp Phần mềm Tường Minh Mô tả công ty Chương 2: Nội dung thực tập Tìm hiểu cơng ty kỹ công ty Nghiên cứu kỹ thuật 1.1 Ngơn ngữ lập trình số công cụ 1.2 Tìm hiểu mơ hình OSGI Karaf 1.3 Tìm hiểu ReactJS Restful Web Service 1.4 Tìm hiểu thư viện Java third-party hỗ trợ Java API Thực project 10 Lịch làm việc 10 Chương 3: Chi tiết project 12 Giới thiệu project 12 1.1 Mô tả project 12 1.2 Danh sách hình 12 Kế hoạch 14 Kết 14 TÀI LIỆU THAM KHẢO 15 Nguyễn Hà Phi Hùng Đinh Hồng Nhi Chương 1: Giới thiêu cơng ty thực tập Giới thiệu công ty TNHH Giải pháp Phần mềm Tường Minh − Công ty TNHH Giải pháp Phần mềm Tường Minh (TMA) thành lập năm 1997 Việt Nam, TMA 2400 nhân viên công ty gia công phần mềm (outsource) lớn nước − Ngoài Việt Nam, TMA cịn có văn phịng Nhật Bản, Mĩ, châu Âu Úc, ứng dụng phần mềm phục vụ cho khách hàng từ 27 quốc gia Mô tả công ty − TMA cung cấp nhiều dịch vụ phần mềm thiết kế, kiểm thử, IT Service, chuyển đổi liệu, đặc biệt phát triển, gia công phần mềm − Việc gia công phần mềm công ty đa dạng nhiều tảng (web, di dộng, desktop app…), ngôn ngữ công nghệ (Java, NodeJS, Go, Python cho nhiều lĩnh vực viễn thơng, tài chính, thương mại điển tử, y tế, giáo dục… − Ngồi cơng ty cịn cung cấp chương trình đào tạo thực tập, nhân viên (fresher) khóa học (course) kĩ thuật quy trình q trình làm việc cơng ty Nguyễn Hà Phi Hùng Đinh Hoàng Nhi Chương 2: Nội dung thực tập Đợt thực tập công ty, em phân công thực ứng dụng web phục vụ cho việc đăng kí lịch nghỉ phép cho thành viên đội ngũ phát triển (team) mà em tham gia, ứng dụng công nghệ mà dự án team sử dụng học hỏi thêm công nghệ Đồng thời rèn luyện thêm kĩ phân tích yêu cầu, giao tiếp số quy trình làm việc trình phát triển ứng dụng Tìm hiểu cơng ty kỹ công ty Thời gian: ngày Nội dung: Giới thiệu công ty, cách tổ chức công ty − Được nghe người phụ trách giới thiệu cơng ty, q trình thành lập 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ơng ty − Ngồi ra, thực tập sinh giới thiệu cách thức làm việc công ty thời gian làm, quy định cần phải tuân thủ, cách sử dụng email công việc, cài đặt môi trường, tài liệu naming convention… Kết quả: Hiểu thêm cơng ty TMA, q trình thành lập phát triển Có thêm kỹ việc sử dụng email công việc, làm việc có kế hoạch, có kỷ luật, có trách nhiệm Nghiên cứu kỹ thuật 1.1 Ngơn ngữ lập trình số công cụ Thời gian: ngày (1 tuần) Nội dung: Tìm hiểu thêm số kiến thức ngơn ngữ lập trình Java cơng cụ sử dụng trình làm việc − Mentor gửi tài liệu liên quan ngôn ngữ lập trình Java số phương pháp lập trình (cú pháp, loại câu lệnh, tính Java 8, API Java, JDBC, nguyên lí SOLID,…) − Đồng thời thực tập sinh giới thiệu cung cấp danh sách công cụ, thư viện môi trường phát triển cần cài đặt IntelliJ, Maven, Java SDK, Visual Studio Code Thực hiện: Thực hành tìm hiểu, sử dụng cơng cụ lập trình số ví dụ ngơn ngữ Java nêu Nguyễn Hà Phi Hùng Đinh Hoàng Nhi Kết quả: Sử dụng cơng cụ lập trình, cài đặt thành cơng mơi trường, tìm hiểu kiến thức ngôn ngữ Java phương pháp lập trình 1.2 Tìm hiểu mơ hình OSGI Karaf Thời gian: ngày (2 tuần) Nội dung: Được hướng dẫn cung cấp tài liệu Karaf − Mơ hình OSGI: Các kiến thức mơ hình OSGI khái niệm, cách vận hành theo chế nanoservice (module hóa), tư tưởng giống với microservice môi trường vận hành Java − Karaf: Cơ cách mơ hình OSGI tổ chức karaf, Java API hỗ trợ để vận hành mơi trường Java backend theo hướng module hóa dạng bundle feature; bundle tương ứng với module; feature định nghĩa bundle cần sử dụng − Bài tập ứng dụng: Được lập trình số toán đơn giản ứng dụng Java API môi trường Karaf cung cấp, cách khởi tạo, kiến thức vòng đời khởi chạy module Karaf Từ nâng cao kết hợp định nghĩa phụ thuộc module môi trường − Mentor thực giải đáp thắc mắc hỗ trợ sửa lỗi (bug) trình tìm hiểu thực tập Thực hiện: − Tìm hiểu mơ hình OSGI Karaf theo tài liệu cung cấp − Làm thực hành, kiểm tra kiến thức học Kết quả: − Có kiến thức mơ hình OSGI Karaf − Kiến thức việc tổ chức dự án Java theo hướng module vận hành module môi trường Karaf − Ngồi cịn biết thêm số quy tắc việc viết code cho chuẩn, dễ đọc, dễ hiểu 1.3 Tìm hiểu ReactJS Restful Web Service Thời gian: ngày (2 tuần) Nội dung: Tìm hiểu, thực số tập kiến thức ReactJS Restful Web Service nhằm tạo giao diện đơn giản phương thức giao tiếp Backend (Java) Frontend (ReactJS) hỗ trợ mentor − Kiến thứ ReactJS: thư viện hỗ trợ tạo giao diện Facebook cung cấp, chế Virtual DOM (so sánh DOM) HTML nhằm thay đổi Nguyễn Hà Phi Hùng Đinh Hồng Nhi (rerender) giao diện mà khơng phải tải lại trang; cách tư thành phần web theo hướng thành phần (component) cấu trúc (structure) dự án ReactJS − Bài tập ReactJS: tạo component, thay đổi trạng thái (state), điều hướng (route) Single Web Page − Kiến thức Restful Web Service: phương thức giao thức HTTP (GET, POST, PUT, DELETE) việc giao tiếp Client Server JSON response − Bài tập Restful Web Service: Áp dụng API Java JDBC, JAXRS Jackson nhằm tạo Retsful Web Service lấy liệu từ database trả liệu cho người dùng danh sách người dùng dạng JSON hiển thị frontend (ReactJS) Thực hiện: − Tìm hiểu kiến thức đa nêu, giao tiếp với mentor có thắc mắc − Làm tập thực hành hỗ trợ mentor - Kết quả: − Hiểu khái niệm kiến thức ReactJS Restful Web Serivce − Có khả xây dựng giao diện, Restful Web Service cài đặt giao tiếp client với server thông qua HTTP request − Hiểu công nghệ phát triển web đại: xây dựng phần frontend backend hai tảnh hoàn toàn khác nhau, giao tiếp với thơng qua Restful API, thay phát triển ngơn ngữ lập trình 1.4 Tìm hiểu thư viện Java third-party hỗ trợ Java API Thời gian: ngày (2 tuần) Nội dung: Tìm hiểu kiến thức số thư viện, framework mà Java cung cấp Hibernate, Jackson, JAX-RS Đồng thời tìm hiểu third-party hỗ trợ API Java Keycloak − Sơ lược Hibernate: ORM framework phát triển API Java cung cấp (cụ thể JPA – Java Persistence API), hỗ trợ thuận tiện cho việc giao tiếp với sở liệu thông qua Entity, câu lệnh HQL, transaction… mang tính tường minh, sáng giảm thiểu boiler-plate code so với việc sử dụng câu lệnh SQL thông thường − Sơ lược JAX-RS Jackson: JAX-RS nhằm hỗ trợ tạo Restful Web Service Java cung cấp, thư viện hỗ trợ mạnh mẽ gần tất nhu cầu tính cần thiết Restful Web Service; kết hợp với thư viện Nguyễn Hà Phi Hùng Đinh Hoàng Nhi 10 Jackson thư viện hỗ trợ chuyển đổi object sang JSON ngược lại thuận tiện giao tiếp REST API − Sơ lược Keycloak: Keycloak Java Open Source hỗ trợ tốt bảo mật Web, giới hạn tìm hiểu em nghiên cứu việc quản lí xác thực người dùng theo phân quyền tài nguyên (resource), vai trò (role), phân vùng (scope), permission (quyền hạn); đồng thời ứng dụng API Keycloak cung cấp để tạo Json Web Token (JWT) nhằm xác thực người dùng Keycloak cung cấp giao diện (UI) trực quan nhằm quản lí người dùng session thuận lợi, giảm thiểu việc code xử lí xác thực người dùng Thực hiện: − Tìm hiểu kiến thức đa nêu, giao tiếp với mentor có thắc mắc − Tạo Restful API thông qua JAX-RS Jackson, giao tiếp với database thông qua Hibernate thay JDBC Kết quả: − Đã ứng dụng thư viện Java để tạo Restful Web Service − Hiểu khái niệm cách sử dụng Keycloak việc quản lí người dùng Thực project − Sau tuần tìm hiểu ngôn ngữ công nghệ, em giao yêu cầu thực project nhằm quản lí lịch nghỉ thành viên team nhằm kết hợp đánh giá khả hiểu biết, áp dụng kiến thức, chi tiết project mô tả phần sau − Ngồi project, em cịn tìm hiểu thêm số kiến thức git (source version control), integration (Third party server), unit test (Junit, Mockito), redux (ReactJS), bootstrap (CSS library), docker, tài liệu mơ hình hóa Lịch làm việc Tuần (ngày 1) - Nguyễn Hà Phi Hùng Cơng việc Người hướng dẫn Tìm hiểu cơng ty, cách tổ chức công ty Anh Đỗ Văn Tồn Làm quen với cơng cụ làm việc công ty Học cách trao đổi, làm việc qua email Tìm hiểu ngơn ngữ lập trình Java Anh Nguyễn Hà Phi Hùng Thực hành Java Tìm hiểu cài đặt số công cụ môi trường cho việc lập trình Đinh Hồng Nhi 11 2, - Tìm hiểu mơ hình OSGI Karaf Thực tập Karaf Anh Nguyễn Hà Phi Hùng 4, - Tìm hiểu React Restful Web Service Thực tập React Restful Web Service Anh Nguyễn Hà Phi Hùng - Tìm hiểu Java Library Tìm hiểu sử dụng Keycloak Làm tập Java Library Lên kế hoạch thực project Thiết kế database, giao diện cho project Cài đặt kết hợp Keycloak với backend Tìm hiểu thêm git Bitbucket Xây dựng database, định nghĩa POJO Code số trang hình giao diện Cài đặt chức theo yêu cầu mà tập đưa - Trao đổi với mentor thắc mắc cần hỗ trợ kiến thức, giải pháp, tính - Thực viết unit test để kiểm thử, độ coverage đạt khoảng 90% Anh Nguyễn Hà Phi Hùng - Báo cáo project với team để nhận đánh giá Anh Đỗ Văn Tồn đóng góp tất thành viên Anh Nguyễn Hà Ghi nhận đóng góp, tổng hợp tài liệu API Phi Hùng document Sequence diagram 6, - 12 13 - Nguyễn Hà Phi Hùng Anh Nguyễn Hà Phi Hùng Anh Đỗ Văn Toàn Anh Nguyễn Hà Phi Hùng Đinh Hoàng Nhi 12 Chương 3: Chi tiết project Giới thiệu project Project nhằm tạo cơng cụ quản lí lịch nghỉ thành viên team, dạng đăng kí theo dõi lịch nghỉ 1.1 Mô tả project − Tất thành viên team cung cấp account truy cập nhằm đăng kí lịch nghỉ có nhu cầu − Có ba vai trị người dùng quản lí (PM), nhóm trưởng (Team lead) thành viên (Member); thành viên xem lịch nghỉ mình; team lead xem lịch nghỉ nhóm; quản lí xem lịch nghỉ tất thành viên − Có thể phân cơng thành viên vào team thơng qua giao diện Ngồi team lead quản lí export file excel lịch nghỉ thành viên thông báo đến thành viên đăng kí lịch nghỉ số dịp lễ tết 1.2 Danh sách hình Màn hình đăng nhập xác thực người dùng Nguyễn Hà Phi Hùng Đinh Hồng Nhi 13 Màn hình menu điều hướng: section cần tập trung phát triển Vacation Màn hình phân cơng thành viên nhóm Nguyễn Hà Phi Hùng Đinh Hồng Nhi 14 Màn hình theo dõi lịch nghỉ team Kế hoạch − − − − − − − Hồn thành phân tích u cầu Thiết kế database, giao diện Thiết kế RESTful API hình chưa có liệu Giao tiếp RESTful API hình Viết unit test Tổng hợp báo cáo, biểu đồ Giao tiếp, tiếp thu ý kiến từ mentor thành viên Kết − Hầu hết tính theo mơ tả thực thành cơng − Cần cập nhật code frontend tương thích với cấu trúc − Tính xác thực Keycloak cần cải thiện với JWT Nguyễn Hà Phi Hùng Đinh Hoàng Nhi 15 TÀI LIỆU THAM KHẢO For OSGI & Karaf https://karaf.apache.org/documentation.html http://liquid-reality.de/Karaf-Tutorial/ https://www.osgi.org/ For ReactJS https://reactjs.org/tutorial/tutorial.html https://medium.com/@alexmngn/how-to-better-organize-your-react-applications2fd3ea1920f1 For Keycloak https://www.keycloak.org/documentation For Java & Java Framework https://www.baeldung.com/ Nguyễn Hà Phi Hùng Đinh Hoàng Nhi 16 TỔNG KẾT Như vậy, sau 13 tuần (mỗi tuần ngày) học tập thực dự án, em hoàn thiện sản phẩm ứng dụng web ứng dụng team kì vọng thực tập ban đầu Do thời gian có hạn nên giao diện cấu trúc cịn chưa hồn thiện Chân thành cảm ơn giúp đỡ anh chị TMA, đặc biệt mentor Nguyễn Hà Phi Hùng giúp đỡ em nhiều để hoàn thiện dự án cung cấp nhiều kiến thức quan trọng việc phát triển ứng dụng web đại Nguyễn Hà Phi Hùng Đinh Hoàng Nhi ... ty, em phân công thực ứng dụng web phục vụ cho việc đăng kí lịch nghỉ phép cho thành viên đội ngũ phát triển (team) mà em tham gia, ứng dụng công nghệ mà dự án team sử dụng học hỏi thêm công... nhằm tạo cơng cụ quản lí lịch nghỉ thành viên team, dạng đăng kí theo dõi lịch nghỉ 1.1 Mơ tả project − Tất thành viên team cung cấp account truy cập nhằm đăng kí lịch nghỉ có nhu cầu − Có ba... xem lịch nghỉ mình; team lead xem lịch nghỉ nhóm; quản lí xem lịch nghỉ tất thành viên − Có thể phân cơng thành viên vào team thơng qua giao diện Ngồi team lead quản lí export file excel lịch nghỉ