Java là một trong những ngôn ngữ bậc cao được nhiều công ty và các tổ chức trên thế giới tin dùng, Ngôn ngữ Java được thiết kế vào những năm 90s bởi tổ chức Sun Micro system hiện nay thuộc sở hữu của Oracle. Java có tính độc lập rất cao, tiện lợi, có thể dùng cho việc crossplatform, có nghĩa bạn chỉ cần viết chương trình một lần thì có thể chạy trên nhiều nền tảng khác nhau. Khẩu hiệu kinh điển mà bất kỳ dân lập trình Java nào cũng biết đó là “Viết một lần, chạy được khắp nơi” (Write Once Run Anywhere).
TRƯỜNG ĐẠI HỌC ĐẠI NAMKHOA CÔNG NGHỆ THÔNG TIN - ĐỀ TÀI: XÂY DỰNG PROJECT QUẢN LÝ SỰ KIỆN TẠI CÔNG TY BẰNG JAVA Giảng viên hướng dẫn: Ths Đỗ Ngọc Điệp Sinh viên thực hiện: Đỗ Thị Thắm Mã sinh viên: 1351020103 Lớp: CNTT13.01 Khóa: 2019-2023 Hệ: Đại học quy Hà Nội, ngày 15 tháng 08 năm 2022 TRƯỜNG ĐẠI HỌC ĐẠI NAM KHOA CÔNG NGHỆ THÔNG TIN - Chuyên ngành thực tập: Công nghệ thông tin ĐỀ TÀI: XÂY DỰNG PROJECT QUẢN LÝ SỰ KIỆN TẠI CÔNG TY BẰNG JAVA Hà Nội, ngày 15 tháng 08 năm 2022 MỞ ĐÀU Ngành cơng nghệ thơng tin có tốc độ phát triển nhanh, mạnh, đóng góp to lớn vào tăng trưởng GDP nước nhiều năm qua Cơ sở vật chất hạ tầng đạt tiêu chuẩn quốc tế Theo thống kê nước có 100% trường từ tiểu học có kết nối sử dụng mạng internet Cơng nghệ thơng tin đóng vai trị quan trọng đời sống kinh tế, xã hội nhiều quốc gia giới, phần thiếu kinh tế trí thức động, ngày đại hố Vì vậy, việc số hóa đại hóa số lĩnh vực cần thiết phát triển ngành Công nghệ thông tin theo Ngôn ngữ lập trình JAVA coi ngơn ngữ lập trình có độ bảo mật cao Hỗ trợ tối đa cho hệ điều hành Android,và JAVA với tính di động chìa khóa giúp bạn quản lý giải pháp điện toán đám mây Java phát triển để phục vụ cho thiết bị nhúng Bên cạnh đó, việc sử dụng ngơn ngữ lập trình Java cịn làm tăng hiệu phần mềm, giúp máy chủ xử lý nhiều tác vụ với khối tài nguyên Sau năm học trường, với tảng kiến thức tiếp thu Với mong muốn trải nghiệm thực tế nên em chọn môi trường làm việc Công ty Usol-VietNam để học hỏi thêm kiến thức, tiếp xúc với công ty việc thực tế người phát triển phần mềm công ty LỜI CẢM ƠN Trân trọng gửi lời cảm ơn đến Công ty Usol-VietNam tạo điều kiện cho em có hội thực tập công ty Trong thời gian ngắn gủi gần tháng, bảo nhiệt tình anh chị cơng ty, em hiểu nội quy quy trình làm việc công ty Thêm nhiều kĩ mềm làm việc nhóm, giao tiếp với khách hàng ( khách hàng Nhật ) Đặc biệt, với dạy nhiệt tình anh Nguyễn Hùng Cường anh Đặng Văn Học, em tiếp thu nhiều kiến thức, học hỏi thêm nhiều kĩ phát triển thân Cảm ơn anh bỏ thời gian cơng sức giảng dạy em hồn thành đợt thực tập Bên cạnh đó, em cảm ơn Khoa Cơng Nghê Thơng Tin nhiệt tình hỗ trợ, tạo điều kiện cho em làm báo cáo NHẬT XÉT CỦA KHOA DANH MỤC HÌNH ẢNH Hình Mơ tả Hình Các ngành nghè mà công ty phát triển hệ thống ICT Hình Các ngơn ngữ lập trình cơng ty phát triển Hình Hình Hình Hình Hình 7, 7.1, 7.2 Hình Hình Hình 10 Hình 11 Hình 12 Hình 13 Hình 14, 14.1 Mô tả cú pháp Switch - Case Cú pháp còng lặp for Cú pháp kế thừa Cú pháp đệ quy Minh họa chương trình Stack.pop Cơ chế hoạt động struts Sơ đồ hoạt động Màn hình login Màn hình EventList Màn hình AddEvent Màn hình Detail Màn hình Update DANH MỤCBẢNG Bảng Mơ tả Bảng Phạm vi hình thái cơng việc cơng ty Bảng Các kiểu liệu nguyên thủy Bảng Các phương thức lớp Object Bảng Mô tả khả truy cập Access Modifler Bảng Phân biệt giữ POP OOP Bảng Bảng liệu Department Bảng Bảng liệu Users Bảng Bảng liệu Events Bảng Bảng liệu VoteOption Bảng 10 Bảng liệu RegistEvents Bảng 11 Bảng liệu MstEventType MỤC LỤC CHƯƠNG I KHÁI QUÁT ĐƠN VỊ THỰC TẬP Giới thiệu Công ty USOL VIETNAM Co.,Ltd thành lập ngày 2006/01/06 với lãnh vực hoạt động: Phát triển phần mềm offshore, dịch vụ BPO, dịch vụ IT, bán sản phẩm H/W, S/W Trụ sở chính: Tầng 14+20, Tịa nhà Hịa Bình, 106 Hồng Quốc Việt, Nghĩa Đô, Cầu Giấy, Hà Nội, Việt Nam 01/2014 Tại ASOCIO ICT Summit 2014, vinh danh “VietNam’s 30 Leading IT Companies 2014” Vinasa 10/2015 Được vinh danh “VietNam’s 40 Leading IT Companies 2015” Vinasa 2016-2018 Được vinh danh “VietNam’s 50 Leading IT Companies ” Vinasa 2020: Được vinh danh “Top 10 Doanh nghiệp BPO Việt Nam 2020” Vinasa Dịch vụ phần mềm Phát triển hệ thống ICT cho nhiều ngành nghề xã hội 10 Hình 1: Các ngành nghè mà công ty phát triển hệ thống ICT Phạm vi cơng việc/Hình thái cơng việc Có cách nạp chồng phương thức java: Thay đổi số lượng tham số Thay đổi kiểu liệu tham số 20 Struts 1-2 20.1 Struts ? Struts framework mã nguồn mở tạo Craig McClanahan tặng cho Apache Foundation vào tahsng năm 2000 Mục đích framework phát triển ứng dụng web cách sử dụng MVC Pattern công nghệ J2EE đơn giản dễ dàng thơng qua việc cung cấp hàng loạt tiện ích thư viên cho người dùng 20.2 Thành phần Các thành phần cửa Struts : Model: Bao gồm quy tắc Business entities để quản lý tổ chức thao tác liệu Bạn sử dụng lại model ứng dụng tự xây dựng model cho riêng View: Chịu trách nhiệm trình bày thơng tin cung cấp model Bằng cách sử dụng HTML, thư việc tab,…bạn mở rộng khả view 20.3 Cơ chế hoạt động 24 Hình Cơ chế hoạt động struts 20.4 Sự khác struts jsf Struts JSF framework dựa công nghệ java với phần hỗ trợ giống Chính mà nhiều người nhầm lẫn khái niệm chức hai framework 20.5 Struts2 framework ? Là phiên Struts1 nâng cấp hoàn chỉnh kiến trúc Struts dựa mẫu thiết kế MVC để tạo ứng dụng web Nó kết hợp hoàn hảo Webwork framework Struts framework ddeer dễ dàng việc xây dựng phát triển web 20.6 Tính Struts2 framework Một số tính Struts2 framework: Loại bỏ nhwunxg from Action - thành phần thiếu Struts framework Thay vào 25 khả sử dụng POJO có framework để nhận liệu từ from làm lớp action Hỗ trợ tag: Các thẻ thẻ form tiến Struts2 giúp nhà phát triển viết mã Hỗ trợ AJAX: Tạo tích hợp thẻ AJAX với chức giống thẻ Struts2 tiêu chuẩn Dễ dàng tích hợp: Việc tích hợp với framework khác trở nên đơn giản dễ dàng nhiều với Struts2 Ít cấu hình hơn; Với trợ giúp việc sở dụng giá trị mặc định cho cài đặt khác nhau, Struts giúp bạn hình Cơng nghệ view: Hỗ trợ nhiều lựa chon view Sửa, đổi thẻ dễ dàng: Nhờ việc sử dụng mẫu freemaker mà thẻ markups Struts2 dễ dàng tinh chỉnh 21 Spring 21.1 Boot Spring Boot ? Spring Boot dự án phát triển JAV ( ngôn ngữ Java) hệ sinh thái Spring framework Nó giúp cho lập trình viên đơn giản hóa q trình lập trình ứng dụng với Spring, tập trung vào việc phát triển business cho ứng dụng 21.2 Lợi ích dùng Spring Boot Nó dễ dàng để phát triển ứng dụng dựa Spring với Java Groovy Nó giảm thiểu thời gian phát triển tăng xuất Nó tránh việc phải viết nhiều mã nguyên mẫu (boilerpalte Code), Annotation cấu hình XML Nó dễ dàng để bạn tương tác ứng dụng Spring Boot với hệ sinh thái Spring Spring JDBC, Spring ORM, Spring Data, Spring Security etc Nó theo cách tiếp cận “Nguyên tắc cấu hình mặc định” để giảm thiểu thời 26 gian nỗ lực cần thiết để phát triển ứng dụng Nó cung cấp Server nhúng ( Embedded HTTP severs) Tomcat, Jetty … để phát triển test ứng dụng web nhanh chóng dễ dàng Nó cung cấp cơng cụ CLI (Command Line Interface) để phát triển test ứng dụng Spring Boot (Java Groovy) từ dòng lệnh (command prompt) dễ dàng nhanh chóng Nó cung cấp nhiều plugin để phát triển test ứng dụng Spring Boot nhanh chóng sử dụng cơng cụ Build Maven Gradle Nó cung cấp nhiều plugin để làm việc với cở sở liệu nhúng ( embedded database) sở liệu nhớ ( in-memory Database ) dễ dàng 27 CHƯƠNG III PROJECT QUẢN LÝ SỰ KIỆN SỬ DỤNG NGÔN NGỮ JAVA Main flow Ứng dụng Hệ thống quản lý kiện Trong java với mã nguồn phát triển tảng Java lưu trữ liệu sở liệu Trong trường hợp Quản lý kiện, ứng dụng tạo, đọc, cập nhật xóa Sự kiện, Vị trí kiện Người tham dự vào sở liệu Hệ thống quản lý kiện có tính kế thừa có khả đọc tệp để tạo chi tiết sử dụng làm đầu vào xuất chi tiết tệp đầu Hình Sơ đồ hoạt động Chức - Chức đăng nhập, đăng xuất 28 - Chức tìm kiếm - Thêm kiện chi tiết - Quản lý, chỉnh sửa, xóa kiện - Thêm địa điểm kiện - Quản lý, chỉnh sửa, cập nhật chỉnh sửa tất chia tiết kiện, người tham dự địa điểm - Thêm hồ sơ thông tin chi tiết nhân viên quản lý hệ thống - Thêm thông tin chi tiết người tham dự kiện (Những người) tham dự kiện - Xem tát kiện - Sắp xếp kiện xem kiện - Quản lý chỉnh sửa vote theo quyền truy cập Database Bảng Bảng liệu Department Department ID IDENTITY DepartName NVARCHAR(8) IsDeleted Bit NOT NULL PK NOT NULL 0: Chưa xóa / Xóa (Mặc định 0) Timestamp Timestamp NOT NULL Bảng Bảng liệu Users Users ID IDENTITY NOT NULL Username NVARCHAR(8) NOT NULL Fullname NVARCHAR(32) NOT NULL DepartId Int NOT NULL Email NVARCHAR(128 NOT NULL ) PK 29 Password VARCHAR(128) NOT NULL IsDeleted Bit NOT NULL 0: Chưa xóa / Xóa (Mặc định 0) Timestamp Timestamp NOT NULL Bảng Bảng liệu Events Events ID IDENTITY NOT NULL EventName NVARCHAR(250) NOT NULL EventTypeID Int PK NOT NULL 1: Team building, 2: Travel, 3: Training EventImage VARCHAR(150) Creator Int Description NVARCHAR(500) Status Int NOT NULL Người tạo event Mô tả Event NOT NULL 1:Opening / 2: Closed Option Type Int NOT NULL 1: Chọn 1/ 2: Chọn nhiều Place NVARCHAR(500) Địa điểm tổ chức StartDate Datetime Ngày bắt đầu StartHour Datetime Giờ bắt đầu EndDate Datetime Ngày kết thúc EndHours Datetime Giờ kết thúc IsDeleted Bit NOT NULL 0: Chưa xóa / Xóa (Mặc định 0) Timestamp Timestamp NOT NULL Bảng Bảng liệu VoteOption 30 VoteOption ID IDENTITY NOT NULL EventID Int NOT NULL PK StartDate Datetime Ngày tổ chức Event Place NVARCHAR(500) Địa điểm tổ chức OptionImage VARCHAR(150) IsDeleted Bit NOT NULL 0: Chưa xóa / Xóa (Mặc định 0) Timestamp Timestamp NOT NULL Bảng 10 Bảng liệu RegistEvents RegistEvents ID IDENTITY NOT PK NULL Username NVARCHAR(8) NOT Người vote NULL EventID Int NOT NULL IsJoined Bit NOT NULL Không join, có join VoteOptionID Int Voted Bit NOT NULL 0: khơng chọn, 1: có chọn( Mặc định 0) AttachedPersonAdult Int Số người lớn AttachedPersonChild Int Số trẻ em 31 IsDeleted Bit NOT 0: Chưa xóa / NULL Xóa (Mặc định 0) Timestamp Timestamp NOT NULL Note NVARCHAR(500) Bảng 11 Bảng liệu MstEventType MstEventType ID IDENTITY NOT NULL EventType NVARCHAR(200) NOT NULL PK Team buiding, Travel, Training… IsDeleted Bit NOT NULL 0: Chưa xóa / Xóa (Mặc định 0) Timestamp Timestamp Giao NOT NULL diện 32 Hình 10 Màn hình login Hình 11 Màn hình EventList - Hiển thị danh sách tất Event theo thời gian từ > cũ - Có phân trang, có lọc - Mỗi dịng có info: Tên event, mơ tả, người tạo, số người tham gia, không tham gia, - Mỗi dịng có action: Detail, Edit, Delete, Vote (Nếu event người login tạo hiển thị Edit Delete) - Có nút [Add Event] để đăng ký event - Mỗi dòng có info: Tên event, mơ tả, người tạo, số người tham gia, khơng tham gia, 33 Hình 12 Màn hình AddEvent - Tên event - Loại hình (Teambuiding/Travel/Training/…) - Bộ phận (Bộ phận hay tồn cơng ty) - Mô tả event - Trạng thái (Voting/Đã xác định) - Thời guan (Nếu vote thị ngày, xác định thị ngày) - Địa điểm (Nếu đanh vote thị địa điểm, xác định thị địa điểm) 34 Hình 13 Màn hình Detail - Tên event - Loại hình event - Bộ phận/Cơng ty - Mơ tả event - Thời gian - Địa điểm - Danh sách tham gia - Link button[Go to vote] 35 Hình 14 Màn hình Update 36 Hình 14.1 Màn hình Update Sử dụng để member vote đăng ký tham gia - Tên event - Loại hình event - Bộ phận/Công ty - Mô tả - Thời gian - Địa điểm - Số người đính kèm (người lớn, trẻ con) - Ghi 37 KẾT LUẬN Qua tập đơn vị Công ty Usol-VietNam giúp em bổ sung thêm nhiều kiến thức trải nghiệm thực tế công việc công ty phần mềm Em năm bắt nghiệp vụ kĩ sư phát triển phần mềm Hiểu quy trình phát triển phần mềm Cải thiện kĩ yếu kém, phát triển thân Để hoàn thành tốt thực tập lần này, em cảm ơn đến anh, chị công ty Usol-VietNam cảm ơn đến thầy cô giáo khoa Công Nghệ Thông Tin hỗ trợ em nhiệt tình 38 ... báo (gọi phương thức thông báo () thông báoAll ()) public Final void wait () ném khiến luồng phải đợi, cho InterruptException đến luồng khác thông báo (gọi 16 phương thức thông báo () thông báoAll... thông báo (gọi phương thức thông báo () thông báoAll ()) public Final void wait (long khiến cho luồng đợi timeout, int nanos) InterruptException ném vài mili giây nano giây định, luồng khác thông. ..TRƯỜNG ĐẠI HỌC ĐẠI NAM KHOA CÔNG NGHỆ THÔNG TIN - Chuyên ngành thực tập: Công nghệ thông tin ĐỀ TÀI: XÂY DỰNG PROJECT QUẢN LÝ SỰ KIỆN TẠI CÔNG TY BẰNG