ĐỒ ÁN CHUYÊN NGÀNHĐỀ TÀI: HỆ THỐNG QUẢN LÝ NHÂN LỰC( HUMAN RESOURCES MANAGEMENT SYSTEM )

17 47 0
ĐỒ ÁN CHUYÊN NGÀNHĐỀ TÀI: HỆ THỐNG QUẢN LÝ NHÂN LỰC( HUMAN RESOURCES MANAGEMENT SYSTEM )

Đ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

ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ĐỒ ÁN CHUYÊN NGÀNH ĐỀ TÀI: HỆ THỐNG QUẢN LÝ NHÂN LỰC ( HUMAN RESOURCES MANAGEMENT SYSTEM ) Sinh viên thực hiện: PHAN TẤN TĨNH ĐỖ PHƯỚC THIỆN Giảng viên hướng dẫn : Thạc sĩ PHAN TRỌNG THANH Lớp : 17IT1 & 17IT2 Đà nẵng, tháng 10 năm 12 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ĐỒ ÁN CHUYÊN NGÀNH Phần mềm quản lý nhân lực công ty xây dựng dựa ngơn ngữ python Phần mềm cho phép leader giao phó, theo dõi giám sát tiến độ task nhân viên, từ thể làm chủ trình xây dựng phát triển sản phẩm Đà Nẵng, tháng 10 năm 12 MỞ ĐẦU Phần mềm quản lý nhân lực công ty xây dựng dựa ngơn ngữ Python với nhiều thư viện liên quan hỗ trợ Người đứng đầu nhóm làm việc dựa vào phần mền để phân công – theo dõi – giám sát công việc mà nhân viên thực LỜI CẢM ƠN Nhóm em xin gửi lời cảm ơn đến thầy Phan Trọng Thanh Trong suốt trình thực đồ án, thầy ln nhắc nhở nhóm em hồn thành tiến độ trường đề ra, thầy có góp ý đề cương đề tài để từ nhóm em hồn đồ án tốt MỤC LỤC Trang MỞ ĐẦU Chương Giới thiệu chức cách sử dụng phần mềm .6 1.1 Khởi chạy phần mềm: 1.2 Nhập username làm việc cá nhân: .6 1.3 Nhân viên nhập số làm việc đăng ký : .6 1.4 Nhấn nút Start để khởi chạt TempoNote 1.5 Form TempoNote 5000 tự động hiển thị lần sau phút 1.6 Form TempoNote 5000 tự động hiển thị sau tiếng 1.7 Chức Todo – Outcome: 1.8 Start Tempo monitor 10 1.9 Phân quyền .11 Chương Giới thiệu công cụ để xây dựng phần mềm 12 2.1 Ngơn ngữ lập trình Python .12 2.2 So sánh Python với Java việc xây dựng phát triển phần mềm 12 2.3 Oracle .14 2.4 Docker 15 DANH MỤC HÌNH Trang Chương Giới thiệu chức cách sử dụng phần mềm 1.1 Khởi chạy phần mềm: Run file START.bat folder HRMSv2_Codebase 1.2 Nhập username làm việc cá nhân: Ví dụ : tech10.qtdata_Yamar Hình 1.2 – Màn hình command prompt dùng để đăng nhập username nhân viên 1.3 Nhân viên nhập số làm việc đăng ký : Hình 1.3 – Form nhập số làm việc nhân viên Ví dụ: nhân viên nhập số làm việc đăng ký Form Input your working time (in hrs) 1.4 Nhấn nút Start để khởi chạt TempoNote Hình 1.4 – Màn hình phần mềm sau khỏi chạy 1.5 Form TempoNote 5000 tự động hiển thị lần sau phút Sau Start, phần mền hiển thị lên Form TempoNote 5000 Trong Form TempoNote 5000 hiển thị thông tin: + Time (thời gian làm việc nhân viên từ lúc Start tại) + Outcome: nhân viên nhập kết dự định đạt phút làm việc vào Form Outcome + Next Activity: nhân viên nhập công việc tới mà nhân viên dự định phải làm vào Form Next Activity Cả trường khơng bỏ trống Hình 1.5 – Form TempoNote 5000 hiển thị sau phút 1.6 Form TempoNote 5000 tự động hiển thị sau tiếng Người quản lý nắm nhân viên dự định làm cơng việc tiếng trước có đạt kết dự định không Từ đáng giá kết làm việc nhân viên Và người quản lý nắm dự định làm việc tiếng tới nhân viên, sau đánh giá kết cơng việc Hình 1.6 – Form TempoNote 5000 hiển thị sau tiếng Trong đó: • • • Outcome: Kết vòng tiếng bạn làm Activities: Hành động bạn làm tiếng Action: Triển khai hay Thông báo cho người khác xem thumbup Lưu ý: nhân viên bắt buộc phải nhập đầy đủ trường này, nội dung lần nhập phải khác nhau, khơng phần mền hiển thị thông báo yêu cầu người sử dụng nhập lại Hình 1.6.1 – Thơng báo u cầu người sử dụng nhập lại 1.7 Chức Todo – Outcome: Nhân viên điền Todo – Outcome vào cuối làm Click button “Ask Noawan” Hình 1.7.1 Ask Noawan Sau 15 giây đến 30 giây window Hình 1.7.2 Form nhập function Nhập “add_todo()” để nhập to-do outcome ngày Hình 1.7.3 Nhập cơng việc • • Today Outcomes: Kết ngày làm việc To Do: to-do ngày Cuối cùng, ấn nút “Submit” để lưu kết Hình 1.7.4 Todo List 1.8 Start Tempo monitor Sau click Ask Noawan button Start Temponitor button để click, sau đo form debugger Nhân viên cần nhập vào add_checkname(‘tech10_Yamar’) sau enter close 1.8.1 Giao diện debugger Sau nhân viên add_checkname(‘tencuaban’) bạn click Start TempoMonitor 1.8.2 Tempo Monitor 1.9 Phân quyền Chia làm cấp độ BoD, Leader,Member Nhân viên có quyền xem username có cấp độ Nếu bạn BoD bạn xem tất username Nếu bạn leader bạn xem bạn leader khác, member Chương Giới thiệu công cụ để xây dựng phần mềm 2.1 Ngơn ngữ lập trình Python Python ngơn ngữ lập trình bậc cao cho mục đích lập trình đa năng, Guido van Rossum tạo lần đầu mắt vào năm 1991 Python thiết kế với ưu điểm mạnh dễ đọc, dễ học dễ nhớ Python ngơn ngữ có hình thức sáng sủa, cấu trúc rõ ràng, thuận tiện cho người học lập trình Cấu trúc Python cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu Vào tháng năm 2018, Van Rossum từ chức Leader cộng đồng ngôn ngữ Python sau 30 năm lãnh đạo 2.2 So sánh Python với Java việc xây dựng phát triển phần mềm Có thể thấy Java lẫn Python ngôn ngữ phổ biến sử dụng nhiều nhất, theo thống kê gần cộng đồng lập trình TIOBE Index vài mặt mà Java lại sử dụng nhiều Python Trên thực tế lập trình viên sử dụng hai ngơn ngữ cho việc tạo ứng dụng desktop web, vip ứng dụng chúng cho khoa học liệu machine learning Uư điểm Python so với Java : • • • • • Dễ dàng cho người bắt đầu: So với Java với đống cú pháp lằng nhằng, khó hiểu phải học cẩn thận bước từ khái niệm đối tượng, thực thể, thuộc tính bước khai báo, sử dụng cú pháp hay kế thừa, v.v… Python lại ngôn ngữ tiếng với dễ đọc, xác đơn giản Việc cài đặt dễ dàng, bạn không cần phải xử lý vấn đề đường dẫn lập trình Java Dễ bảo trì: Nhiều lập trình viên chuộng Python tránh việc viết thêm dịng code khơng cần thiết ln giữ cho việc bảo trì phần mềm hiệu Cịn Java ngược lại, version lại có thêm hàng tá tính khiến lập trình viên cần phải bỏ nhiều thời gian để học hỏi thêm giữ cho code tổ chức trì cách hợp lý Hỗ trợ đa dạng: Mặc dù hai hỗ trợ tương đối nhiều mơ hình lập trình phổ biến với Python, bên cạnh việc ngôn ngữ lập trình hướng đối tượng, cịn hỗ trợ thêm mơ hình lập trình thủ tục (procedural programming), lập trình hàm (functional programming) tính chất Imperative Trong Java sinh lại ngơn ngữ lập trình hướng đối tượng mang tính đồng thời (concurrent) dựa class Nhanh: Điểm mạnh thứ hai không kể đến Python nhanh việc prototype, ngơn ngữ lập trình giúp bạn debug hay phát triển nhanh với ứng dụng không lớn Thư viện khổng lồ: Kho thư viện khổng lồ với 130000 packages từ giao diện, multimedia, sở liệu, việc xử lý hình ảnh, xử lý văn bản, tính tốn khoa học… Python lý khiến ln đứng đầu bảng xếp hạng Java có số lượng khơng • • • • • • nhỏ thư viện đem so sánh với Python … hừm… bạn biết đứa thua ? Ứng dụng cao: So với Java, Python có khả ứng dụng mạnh mẽ tốt nhiều khoa học liệu Machine Learning Hầu dự án AI, Big Data hay tính tốn khoa học doanh nghiệp sử dụng Python Mơ hình hỗ trợ hiệu quả: Sở hữu mơ hình, kiến trúc đầy quyền lực yield, decorators, v.v mà Java khơng có Những mơ hình giúp lập trình viên diễn đạt phép tính toán logic phức tạp cách đơn giản thông minh Cung cấp framework bất đồng đơn giản mạnh mẽ đẻ phát triển dịch vụ backend mở rộng Giúp lập trình viên tái cấu trúc cách tự động (automate refactoring) cách tận dụng tính hệ thống kiểu động Không cần phải biên dịch code trước chạy, trình thơng dịch thực thi cách nhanh chóng xác, bạn sử dụng shell tương tác để thử, khám phá thử nghiệm code với Python Trong năm gần đây, Python cịn xương sống khơng thể thiếu IoT Thực tế từ Pi Raspberry Pi tượng trưng cho Python Nhược điểm Python so với Java : • • • • • • Khơng có khả mở rộng quản lý tốt Java làm việc với dự án lớn Ý dự án “100 000 dòng code Java” thay “1000 dịng code Python” sử dụng cho cấu trúc liệu dịch vụ phức tạp IDE hạn chế: Java có cơng cụ hỗ trợ lập trình tốt, giúp tăng suất chất lượng cơng việc lập trình viên so với Python (trong NetBeans Eclipse hai IDE phổ biến hỗ trợ lập trình Java, bạn tham khảo thêm plugin khác hỗ trợ cho việc code ngôn ngữ Greenfoot, Codenvy, v.v….) Cịn Python khó để bạn tìm IDE tốt để triển khai Hiệu suất thấp: Về hiệu suất Java lại chiếm ưu so với Python nhờ có trình biên dịch JIT JVM (Java Virtual Machine) việc hỗ trợ phần mềm ứng dụng chạy nhanh nhờ tính đồng thời (concurrency) Python khơng phải lựa chọn tốt cho thuật toán chuyên sâu CPU, phần mềm sở hạ tầng cần mở rộng chat server… Python sánh Java khả build app games tảng Android Tất nhiên bạn dùng ngơn ngữ để build ứng dụng tương tự có lẽ cần nhiều thời gian, nỗ lực cơng sức để có app build Python Vì ngơn ngữ đánh máy tĩnh nên Java nhanh ngôn ngữ đánh máy tự động Python thứ xác định rõ ràng Do đó, ứng dụng chạy, tài nguyên máy bạn khơng bị lãng phí kiểm tra định nghĩa code bạn 2.3 Oracle Oracle nhà cung cấp lớn thị trường cơng nghệ Cái tên Oracle tên viết tắt từ sản phẩm chủ lực hãng, hệ thống quản lý sở liệu quan hệ (RDBMS) có tên thức Oracle Database Phần mềm sở liệu thường giữ vị trí trung tâm mảng IT công ty, hỗ trợ nhiều nhiệm vụ khác gồm xử lý giao dịch, business intelligence (BI), ứng dụng phân tích Giống phần mềm RDBMS khác, Oracle Database xây dựng dựa SQL, ngơn ngữ lập trình chuẩn hóa để quản trị sở liệu, nhà phân tích liệu chuyên gia CNTT thường sử dụng công cụ để quản lý sở liệu truy vấn liệu lưu trữ Phần mềm Oracle gắn với PL/SQL, phần mềm bổ trợ Oracle phát triển nhằm bổ sung số extension độc quyền cho SQL chuẩn – phổ biến nhà cung cấp RDBMS Cơ sở liệu Oracle hỗ trợ lập trình Java chương trình viết PL/SQL lập trình Java gọi từ ngơn ngữ khác Ngồi ra, giống cơng nghệ sở liệu quan hệ khác, Oracle Database sử dụng cấu trúc bảng theo hàng cột để kết nối phần tử liệu có liên quan bảng khác nhau; kết người dùng lưu trữ liệu nhiều bảng để xử lý Mơ hình quan hệ cung cấp loạt ràng buộc tính tồn vẹn nhằm trì độ xác liệu; thủ tục kiểm tra phần việc tuân thủ đầy đủ nguyên tắc nguyên tử, tính thống nhất, độc lập độ bền liệu - viết ngắn gọn ACID - thiết kế để đảm bảo độ tin cậy xử lý giao dịch sở liệu Về mặt kiến trúc, máy chủ sở liệu Oracle bao gồm database để lưu trữ liệu với hay nhiều phiên database để quản lý tệp có sở liệu Cơ sở liệu có kết hợp cấu trúc lưu trữ vật lý logic Cấu trúc lưu trữ vật lý bao gồm tệp liệu, tệp điều khiển chứa metadata sở liệu tệp nhật ký trực tuyến chuyển đổi tài liệu thành liệu Các cấu trúc lưu trữ logic bao gồm khối liệu; extents - nhóm khối liệu liền kề cách hợp lý; phân đoạn - tập hợp phần mở rộng extent; không gian bảng - vùng chứa logic cho phân đoạn Một phiên sở liệu Oracle xây dựng dựa tập hợp nhớ cache, gọi hệ thống tồn cầu (SGA), có chứa nhớ chia sẻ; phiên bao gồm tiến trình chạy ngầm để quản lý chức I/O giám sát hoạt động sở liệu với mục tiêu tối ưu hóa hiệu suất độ tin cậy Các process máy khách riêng biệt chạy mã ứng dụng cho người dùng kết nối với phiên liệu, process máy chủ chịu trách nhiệm quản lý tương tác process máy khách sở liệu Mỗi process máy chủ gán vùng nhớ riêng gọi khu vực chương trình chung, tách biệt với SGA 2.4 Docker Docker tảng để cung cấp cách để building, deploying running ứng dụng dễ dàng cách sử dụng containers (trên tảng ảo hóa) Ban đầu viết Python, chuyển sang Golang Các containers cho phép lập trình viên đóng gói ứng dụng với tất phần cần thiết, chẳng hạn thư viện phụ thuộc khác, gói tất dạng package Bằng cách đó, nhờ vào container, ứng dụng chạy máy Linux khác cài đặt tùy chỉnh mà máy có khác với máy sử dụng để viết code Theo cách đó, Docker giống virtual machine Nhưng Docker lại phát triển, phổ biến nhanh chóng? Đây nguyên nhân: • Tốc độ: Docker container nhẹ nhanh, bạn tạo chạy docker container vài giây • Mơi trường chạy khả mở rộng: Bạn chia nhỏ chức ứng dụng thành container riêng lẻ Ví dụng Database chạy container Redis cache chạy container khác ứng dụng Node.js lại chạy khác Với Docker, dễ để liên kết container với để tạo thành ứng dụng, làm cho dễ dàng scale, update thành phần độc lập với Docker Engine : thành phần Docker, cơng cụ để đóng gói ứng dụng Docker Hub : “github for docker images” Trên DockerHub có hàng ngàn public images tạo cộng đồng cho phép bạn dễ dàng tìm thấy image mà bạn cần Và cần pull sử dụng với số config mà bạn mong muốn Images: khuôn mẫu để tạo container Thường image dựa image có sẵn với tùy chỉnh thêm Ví dụ bạn build image dựa image Centos mẫu có sẵn để chạy Nginx tùy chỉnh, cấu hình để ứng dụng web bạn chạy Bạn tự build image riêng cho sử dụng image chia từ cộng đồng Docker Hub Một image build dựa dẫn Dockerfile Container: instance image Bạn create, start, stop, move or delete container dựa Docker API Docker CLI Docker Client: công cụ giúp người dùng giao tiếp với Docker host Docker Daemon: lắng nghe yêu cầu từ Docker Client để quản lý đối tượng Container, Image, Network Volumes thơng qua REST • • • • • • • Tính dễ ứng dụng: Docker dễ cho người sử dụng từ lập trình viên, sys admin… tận dụng lợi container để build, test nhanh chóng Có thể đóng gói ứng dụng laptop họ chạy public cloud, private cloud… Câu thần “Build once, run anywhere” • • API Các Docker Daemon giao tiếp với để quản lý Docker Service Dockerfile: tập tin bao gồm dẫn để build image Volumes: phần liệu tạo container khởi tạo Trên khái niệm Docker Ngồi cịn nhiều khái niệm swarm, compose… 2.4.1.1 Build Đầu tiên tạo dockerfile, dockerfile code Dockerfile Build máy tính cài đặt Docker Engine Sau build ta có Container, Container chứa ứng dụng kèm thư viện 2.4.1.2 Push Sau có Container, thực push Container lên cloud lưu 2.4.1.3 Pull, Run Nếu máy tính khác muốn sử dụng Container bắt buộc máy phải thực việc Pull container máy, tất nhiên máy phải cài Docker Engine Sau thực Run Container

Ngày đăng: 20/04/2021, 22:18

Mục lục

  • Chương 1 Giới thiệu chức năng và cách sử dụng phần mềm

    • 1.1 Khởi chạy phần mềm:

    • 1.2 Nhập username làm việc của cá nhân:

    • 1.3 Nhân viên nhập số giờ làm việc đã đăng ký :

    • 1.4 Nhấn nút Start để khởi chạt TempoNote

    • 1.5 Form TempoNote 5000 tự động hiển thị 1 lần sau 5 phút

    • 1.6 Form TempoNote 5000 tự động hiển thị sau mỗi 1 tiếng

    • 1.7 Chức năng Todo – Outcome:

    • Chương 2 Giới thiệu các công cụ để xây dựng phần mềm

      • 2.1 Ngôn ngữ lập trình Python

      • 2.2 So sánh Python với Java trong việc xây dựng phát triển phần mềm

Tài liệu cùng người dùng

Tài liệu liên quan