LỜI MỞ ĐẦU *** Trong kỷ nguyên của sự phát triển như vũ bão của cuộc cách mạng 4.0, việc ứng dụng công nghệ thông tin vào mọi mặt của đời sống là cánh tay nối dài cho những bước tiến hiện đại, tiện ích và vượt bậc. Sự bùng nổ của công nghệ thông tin làm cho cuộc sống trở nên dễ dàng và thuận tiện hơn, thậm chí giúp con người quản lý được dòng chảy vô hạn của thời gian. Đặc biệt, đối với các doanh nghiệp, đây sẽ là một công cụ đắc lực giúp họ giải quyết bài toán liên quan đến những vấn đề thường gặp của doanh nghiệp. Quản lý thời gian luôn là vấn đề cần thiết trong mọi công việc.
Việc quản lý thời gian tốt sẽ kéo theo năng suất lao động được nâng cao, cải thiện hiệu suất quản lý. Bên cạnh đó còn giảm thiểu việc lưu trữ bằng giấy tờ không cần thiết và tiết kiệm thời gian tìm kiếm, thống kê và đánh giá. Nắm bắt được tầm quan trọng của việc quản lý thời gian, cùng với những kiến thức được truyền đạt và lĩnh hội trên giảng đường, em đã nghiên cứu và tạo dựng một website để quản lý thời gian hiệu quả với đề tài: “Quản lý thời gian làm việc – Timesheet system”. Website lưu trữ các đầu công việc, thời gian làm việc của nhân viên.
Quản lý dự án sẽ dựa vào các việc để tổng hợp và đánh giá tiến độ dự án cũng như năng lực của nhân viên. Ngoài ra, nhân viên có thể xem được năng lực của bản thân thông qua thống kê theo biểu đồ. Hệ thống còn giúp lưu trữ các thông tin về nhân viên, dự án, các hoạt động của dự án. Hệ thống ra đời là kết quả của sự nỗ lực, cố gắng hết mình sau quá trình nghiên cứu và tìm hiểu miệt mài.
Song trong khuôn khổ của một đồ án tốt nghiệp, thời gian và năng lực có hạn nên hệ thống hẳn còn nhiều thiếu sót., em mong sẽ nhận được những ý kiến đóng góp của thầy cô để có thể tiếp tục hoàn thiện hệ thống và đưa vào ứng dụng trong thực tế. TỔNG QUAN ĐỀ TÀI 1. Lý do chọn đề tài Nhận thấy được lợi thế của việc áp dụng công nghệ vào việc quản lý, khảo sát thực tế quy trình vận hành công ty, việc quản lý thời gian là rất cần thiết để tạo năng suất làm việc cũng như quản lý hiệu quả nhân viên. Việc chọn đề tài là em muốn thử thách bản thân, muốn áp dụng một số kiến thức công nghệ mới vào việc xây dựng ứng dụng website.
Mục tiêu đề tài Mục tiêu: Phân tích thiết kế chức năng của ứng dụng Quản lý việc làm Timesheet system và phân tích cơ sở dữ liệu để hoàn thành ứng dụng. Đề tài phải đảm bảo được các chức năng sau: - Đăng nhập, đăng xuất, thay đổi mật khẩu, quên mật khẩu. - Phân quyền theo từng vị trí công việc: Quản trị hệ thống, Quản lý dự án và nhân viên. Với Quản trị hệ thống có các chức năng như: Quản lý dự án: Tạo mới dự án, tìm kiếm dự án, cập nhật nhân viên và các hoạt động vào dự án.
Quản lý nhân viên: Tạo mới nhân viên, cập nhật nhân viên, tìm kiếm nhân viên và xuất file danh sách nhân viên. Quản lý hoạt động: Tạo mới hoạt động, tìm kiếm hoạt động, cập nhật hoạt động trong dự án. Với Quản Lý dự án: Quản lý thời gian timesheet của nhân viên: Quản lý các đầu công việc được nhân viên điền trên hệ thống, tìm kiếm theo dự án, nhân viên và hoạt động có trong dự án. Thống kê theo giờ làm việc và số point(1 point = 1 giờ làm việc) theo ngày và xuất file excel theo dõi tiến độ một cách khách quan của từng nhân viên.
Thống kê số point đạt được theo tháng và được biểu diễn bằng biểu đồ đường theo dõi được nhân viên và đánh giá đúng thực lực của nhân viên đó. 3 Với nhân viên: Quản lý đầu công việc: Thêm, xoá và cập nhật đầu công việc của bản thân theo các khoảng thời gian trong ngày tuỳ thuộc vào công việc được giao. Thống kê giờ làm và số point của bản thân theo ngày và xuất file excel theo dõi tiến độ một cách khách quan hơn. Thống kê số point theo tháng của bản thân bằng biểu đồ đường nhằm tự đánh giá năng lực.
Nhiệm vụ: Tìm hiểu các công nghệ phù hợp để xây dựng ứng dụng, nghiên cứu khảo sát các công ty để có định hướng đúng. Đối tượng nghiên cứu và phạm vi hệ thống Đối tượng: - Công cụ sử dụng: Visual Studio Code, Excel. - Framework và Library: Angular, Bootstrap 4, Coreui, Firebase Cloud. - Mô hình ứng dụng đạt được: Hệ thống quản lý thời gian timesheet system trên nền tảng web.
Phạm vi: Đề tài chỉ dừng lại ở phạm vi xây dựng ứng dụng trên nền tảng Website. Phương pháp nghiên cứu - Tìm hiểu một số Website về quản lý. - Khảo sát nhu cầu thực tế của một số công ty. - Thiết kế mô hình và cấu trúc dự án.
- Chọn công nghệ phù hợp. TỔNG QUAN VỀ CÔNG NGHỆ SỬ DỤNG 2. Giới thiệu về Angular Angular là Javascript framework hỗ trợ xây dựng website đầy đủ tính năng từ phía Client. Angular lần đầu được phát hành bởi Google vào năm 2010 với phiên bản AngularJS, sau đó đã phát triển lên lên Angular 2 phát hành vào năm 2016 mang đến bước chuyển mình vượt bậc trở thành một trong những công cụ phát triển website và mobile mạnh mẽ.
Hiện nay, Angular đã cập nhật lên phiên bản 10. Giới thiệu mô hình two-way binding (MVVM) trong Angular MVVM là chữ viết tắt của Model - View - Model - View, đây là cách thức tự động đồng bộ dữ liệu giữa Componet và View trong Angular. Nếu dữ liệu ở View thay đổi thì phía Component cũng sẽ thay đổi cùng lúc và ngược lại. Nói tóm lại là nó sẽ binding dữ liệu hai chiều.
Trong đó: View: phần giao diện được định nghĩa trong template bao hàm HTML dành cho một component nhất định. Model: được định nghĩa như một thành phần của component class. View/Model: là class quản lý cả view cũng như model. Là phần code sẽ sử lý việc truy xuất dữ liệu đồng thời thực thi các tương tác của người dùng trên view.
5 Hình TỔNG QUAN VỀ CÔNG NGHỆ SỬ DỤNG. Mô hình MVVM Ưu điểm: - Cấu trúc phát triển rõ ràng với mô hình MVVM. - Hỗ trợ đầu đủ tính năng điều hướng (routing). - Angular giúp giảm thiểu tối kích thước và tăng tối đa hiệu suất của ứng dụng nhờ sử dụng các component.
- Có phong phú tài liệu và hướng dẫn chi tiết. Nhược điểm: - Sự đa dạng của các cấu trúc khác nhau (Thành phần, mô-dun,…) khiến cho việc học trở nên khó khăn hơn một chút so vói các đối thủ của Angular. Giới thiệu về Firebase. Firebase là gì? - Firebase là một nền tảng phát triển ứng dụng di động và web.
Họ cung cấp rất nhiều công cụ và dịch vụ để phát triển ứng dụng chất lượng, rút ngắn thời gian phát triển và phát triển cơ sở người dùng mà không cần quan tâm đến hạ tầng phần cứng. 6 - Firebase của Google cung cấp hai loại cơ sở dữ liệu NoSQL cho người dùng có thể lưu trữ dữ liệu đám mây và là giải pháp cho các ứng dụng với dữ liệu được đồng hoá theo thời gian thực – Realtime Database và Cloud Firestore. Firebase Realtime Database là một cơ sở dữ liệu NoSQL được lưu trữ đám mây cho phép bạn lưu trữ và đồng bộ dữ liệu. Dữ liệu được lưu trữ dưới dạng JSON và được đồng bộ hóa theo thời gian thực cho mọi máy kết nối.
Cloud Firestore là cơ sở dữ liệu mới của Firebase phát triển dành cho ứng dụng di động. Nó là sự kế thừa của Realtime Database với mô hình dữ liệu mới và trực quan hơn. Cloud Firestore phong phú hơn, nhanh hơn và có khả năng mở rộng siêu việt hơn so với Realtime Database. - Trong đồ án của mình em chọn Cloud Firestore với các tính năng: Tính linh hoat: Cloud Firestore hỗ trợ các cấu trúc dữ liệu linh hoạt, phân cấp dữ liệu.
Lưu dữ liệu của bạn thành các document, được tổ chức thành các collection. Các document có thể chứa các đối tượng phức tạp. Truy vấn tượng trưng: Có thể sử dụng truy vấn các document riêng lẻ hoặc truy xuất tất cả các document trong collection khớp các tham số truy vấn. Cập nhật thời gian thực: sử dụng đồng hoá dữ liệu để cập nhật dữ liệu trên mọi thiết bị được kết nối.
Có thể truy cập trực tiếp thông qua SDK, dữ liệu được lưu trong các document ánh xạ đến các giá trị. Các document được lưu trữ trong collection cho người sử dụng tổ chức sữ liệu và thực hiện truy vấn. 7 Hình TỔNG QUAN VỀ CÔNG NGHỆ SỬ DỤNG. Cấu trúc dữ liệu Cloud Firestore Ưu điểm: - Dễ dàng và triển khai nhanh chóng - Không cần phải cấu hình server.
- Cập nhật dữ liệu theo thời gian thực mà không cần sử dụng GCM - Tự động mở rộng quy mô cho việc phát triển - Có thể sử dụng miễn phí - API mạnh mẽ cho Javascript - Tích hợp hỗ trợ dịch vụ xác thực giống như Facebook, Google, Twitter Hạn chế: - Cần xây dựng các chỉ số bằng tay - Cần phải xây dựng "bản ghi sự kiện" bằng tay - Thực hiện REST API có thể bị khó khăn trên nền tảng nhúng - Xác nhận dữ liệu không hỗ trợ đối tượng phức tạp 8 2. Firebase Authentication: - Firebase Authentication là một bên trung gian sẽ xử lí toàn bộ đăng nhập cho các bên thứ ba, quản lý người dùng hiện quả và an toàn. Nó cung cấp các back-end service, thư viện SDKs dễ sử dụng và thư viện UI được tạo sẵn để xác thực người dùng với ứng dụng. Nó hỗ trợ xác thực bằng: Mật khẩu, số điện thoại và nhà cung cấp nhận dạng liên kết phổ biến như Google, Facebook và Twitter, … - Là dịch vụ quản lý người dùng trong hệ thống dùng đơn giản và an toàn.
Authentication cung cấp nhiều phương pháp xác thực email và mật khẩu Google, Facebook. Hình TỔNG QUAN VỀ CÔNG NGHỆ SỬ DỤNG. Quản lý người dùng trên firebase authentication 2. Giới thiệu công nghệ thiết kế UML - Draw.io là một công cụ vẽ sơ đồ rất mạnh mẽ, hỗ trợ nhiều hình khối, chạy online không cần cài đặt mà lại miễn phí và không bị giới hạn số biểu đồ như nhiều tool vẽ nền web khác.
Bạn có thể vẽ sơ đồ về mạng, điện, phác thảo vị trí các căn phòng trong nhà, hay vẽ các quy trình kinh doanh, vận hành, sản xuất,.