Đồ án tốt nghiệp xây dựng trang web đặt lịch phòng họp cho các công ty vừa và lớn

74 3 0
Đồ án tốt nghiệp xây dựng trang web đặt lịch phòng họp cho các công ty vừa và lớn

Đ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

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN TỐT NGHIỆP XÂY DỰNG TRANG WEB ĐẶT LỊCH PHỊNG HỌP CHO CÁC CƠNG TY VỪA VÀ LỚN Giảng viên hướng dẫn Sinh viên thực : PHẠM ĐỨC HỒNG : NGUYỄN QUANG NGUYÊN Mã sinh viên : 18810310641 Ngành : CÔNG NGHỆ THÔNG TIN Chuyên ngành : CƠNG NGHỆ PHẦN MỀM Lớp : D13CNPM7 Khóa học : 2018-2023 Hà Nội, tháng 02 năm 2023 LỜI CẢM ƠN Đến năm em học trường Đại học Điện lực, em thầy cô giáo truyền thụ kiến thức, rèn luyện kỹ Em xin chân thành cảm ơn thầy Trong q trình nghiên cứu, hồn thành đồ án, em Nguyễn Quang Nguyên thầy Phạm Đức Hồng tận tình bảo, giúp đỡ, động viên giúp em hoàn thành đề án Em xin chân thành cảm ơn thầy Em xin chân thành cảm ơn anh, chị em bạn học lớp D13CNPM7 trường Đại học Điện lực động viên, giúp đỡ nhiệt tình chia sẻ với em kinh nghiệm học tập, cơng tác suốt khố học Em xin bày tỏ lòng chân thành biết ơn tới cha mẹ, anh chị em thành viên gia đình bạn bè bên cạnh em lúc khó khăn nhất, giúp em vượt qua khó khăn học tập sống Hà nội, ngày 12 tháng 02 năm 2023 Sinh viên thực Nguyễn Quang Nguyên MỤC LỤC MỞ ĐẦU CHƯƠNG 1: KHẢO SÁT VÀ XÁC LẬP DỰ ÁN 1.1 Khảo sát trạng 1.1.1 Giới thiệu tổng quan công ty 1.1.2 Giới thiệu hệ thống công ty 1.1.3 Mô tả bài toán 1.2 Xác lập dự án 10 1.2.1 Mục tiêu 10 1.2.2 Yêu cầu đặt 10 1.2.3 Chức 12 1.2.4 Một số giải pháp kỹ thuật 12 1.2.5 Đánh giá các giải pháp mặt kỹ thuật và tài 13 1.2.6 Kế hoạch tổ chức 13 1.2.7 Dự toán 14 1.3 Các yêu cầu 16 1.3.1 Yêu cầu chức 16 1.3.2 Yêu cầu phi chức 16 1.3.3 Yêu cầu giao diện 17 1.3.4 Yêu cầu tính hữu dụng 17 1.4 Kế hoạch dự án 17 1.5 Tập yêu cầu phiếu yêu cầu 18 1.5.1 Tập yêu cầu 18 1.5.2 Phiếu yêu cầu 19 CHƯƠNG PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 26 2.1 Các tác nhân hệ thống 26 2.2 Các Usecase hệ thống 27 2.3 Các Usecase phân rã 29 2.3.1 Usecase Quản lý danh sách xem lịch họp 29 2.3.2 Usecase Quản lý Thêm lịch họp 33 2.3.3 Usecase Quản lý sửa lịch họp 35 2.3.4 Usecase Quản lý xóa lịch họp 39 2.3.5 Usecase Quản lý đăng nhập 42 2.3.6 Use case đăng ký thành viên 45 2.3.7 Use case quản lý room 48 2.3.8 Usecase Quản lý group 53 2.3.9 Use case quản lý user 57 2.4 Biểu đồ lớp tổng quát 61 CHƯƠNG 3: CÀI ĐẶT 66 3.1 Công nghệ sử dụng 66 3.2 Cơ sở liệu 67 3.2.1 Bảng tbl_user 67 3.2.2 Bảng tbl_events 68 3.2.3 Bảng tbl_booking: 68 3.2.4 Bảng tbl_Room 69 3.2.5 Bảng tbl_group 70 3.3 Giao diện 70 3.3.1 Giao diện màn hình đăng nhập 71 3.3.2 Giao diện đặt phòng 71 3.3.3 Màn hình hiển thị lịch phịng 72 3.3.4 Màn hình chi tiết thơng tin phịng 72 KẾT LUẬN 73 TÀI LIỆU THAM KHẢO 74 DANH MỤC HÌNH ẢNH Hình 1.1: Sơ đồ tổng quan hệ thống……………………………………… ………….12 Hình 2.1: UseCase tổng quát………………………….……………………… … …29 Hình 2.2: Use Case quản lý danh sách xem lịch họp………………………………… 30 Hình 2.3: Biểu đồ quản lý danh sách xem lịch họp……………………….… 30 Hình 2.4: Biểu đồ hoạt động quản lý danh sách xem lịch họp…………………………31 Hình 2.5: UseCase Quản lý thêm lịch họp…………………………… ………………32 Hình 2.6: Biểu đồ Quản lý thêm lịch họp…………………………………… 33 Hình 2.8: Use Case quản lý sửa lịch họp……………………………………………….35 Hình 2.9: Biểu đồ quản lý sửa lịch họp………………………………… ……36 Hình 2.11: Use case quản lý xóa lịch họp…………………………… ………………38 Hình 2.12: Biểu đồ quản lý xóa lịch họp…………….……….……………….39 Hình 2.14: Usecase quản lý đăng nhập…………………………….………………….41 Hình 2.27: Biểu đồ cho ca sử quản lý user……… ………………………… 56 Hình 2.28: Biểu đồ cho ca sử quản lý user………… ……………………… 57 Hình 2.29: Biểu đồ lớp tổng quát………………………………… …………….……58 Hình 3.1: Màn hình đăng nhập…………………………… …………………………68 Hình 3.2: Màn hình đặt phịng……………………………… ……………………….68 Hình 3.3: Màn hình hiển thị lịch phịng……………………………………… ….69 Hình 3.4: Màn hình thơng tin phịng…………………………… …………………….69 DANH MỤC BẢNG BIỂU Bảng 1.1 Bảng chi phí dự án tổng quan…………………………………………… 15 Bảng 1.2 Bảng chi phí dự án chi tiết………………………………………………… 15 Bảng 1.3 Bảng phân công nhiệm vụ………………………………………………… 17 Bảng 2.1: Mô tả tác nhân…………………………………………………………… 27 Bảng 2.2: Chức hệ thống…………………………………………………….… 28 Bảng 3.1: Bảng user…………………………………………………………… 64 Bảng 3.2: Bảng event…………………………………………………………… .65 Bảng 3.3: Bảng Booking…………………………………………………………… 65 Bảng 3.4: Bảng Room…………………………………………………………… 66 Bảng 3.5 Bảng Group…………………………………………………………… 67 DANH MỤC TỪ VIẾT TẮT Từ viết tắt Diễn giải Ý nghĩa DB Database Cơ sở liệu UI User Interface Giao diện người dùng JWT JSON Web Token Một tiêu chuẩn Internet để tạo liệu mã hóa REQ Request Yêu cầu MỞ ĐẦU Quản lý điện tử xu hướng tất yếu kinh tế đại Với hỗ trợ công nghệ, bùng nổ thiết bị kết nối internet, doanh nghiệp ngày quan tâm đến cách quản lý sở vật chất, đặt lịch họp qua hình thức trực tuyến Đặc biệt website đặt phòng ngày xây dựng nhiều Với mong muốn xây dựng hệ thống đặt phòngtrên website tiện lợi giúp người dùng dễ dàng sử dụng Em thực đề tài “Xây dựng trang Web đặt lịch phịng họp cho cơng ty vừa lớn” Em tin tưởng đề tài hay giúp ích cho nhiều Trong trình thực đề tài, em nhận nhiều bảo, giúp đỡ góp ý chân thành Thầy Phạm Đức Hồng Thầy giúp chúng em nhiều q trình hồn thiện đề tài Mặc dù em cố gắng hết sức, xong không tránh khỏi thiếu sót, hạn chế Em mong đóng góp ý kiến thầy bạn để đề tài em hoàn thiện CHƯƠNG 1: KHẢO SÁT VÀ XÁC LẬP DỰ ÁN 1.1 Khảo sát trạng 1.1.1 Giới thiệu tổng quan công ty - Tên công ty: Công ty TNHH NeliSoftwares - Địa chỉ: W1 Vinhome Westpoint, đường Đỗ Đức Dục, Mễ Trì, Nam Từ Liêm, Hà Nội - Lĩnh vực hoạt động: Sản xuất phần mềm 1.1.2 Giới thiệu hệ thống công ty Hiện nay, việc đặt phịng quản lý phịng online khơng cịn xa lạ với người Ngay tại, công ty em làm sử dụng hệ thống trang web đặt phòng lỗi thời UI không thân thiện với người dùng, việc đặt phòng thiếu nhiều chức số bug nghiêm trọng khó nâng cấp Chính vậy, việc dựng lại trang web đặt phịng vơ cần thiết 1.1.3 Mơ tả tốn Thiết kế hệ thống web booking đặt phòng theo tuần thời gian định - Người dung đặt phịng online web tự động ghi nhận giảm chi phí mặt nhân lực - Đăng kí theo tuần theo ngày - Đăng kí tài khoản có email gửi để active để sử dụng tài khoản - Khi người dùng quên mật lậy lại mật thơng qua email người dùng • Quản lý • Thống kê, theo dõi tình hình đặt phịng, số lượng người dùng truy cập ngày, tuần tháng • Quản lý thơng tin phịng • Quản lý thơng tin group • Quản lý thơng tin user • Đối tượng sử dụng: • Admin (là người có quyền điều hành trang web 1.2 Xác lập dự án 1.2.1 Mục tiêu Hệ thống hồn tồn tự động: cần đặt phịng mạng hệ thống tự động ghi nhận - Giao diện đẹp dễ sử dụng, trang đặt phòng than thiện - Có nhiều tính đặt phịng hữu ích, theo tuần, ngày - Đảm bảo hệ thống hoạt động hiệu bug free - Đảm bảo khơng có trùng lặp việc đặt phịng - Đáp ứng đầy đủ chức trang web booking 1.2.2 Yêu cầu đặt a Thiết bị phần mềm - Máy tính thiết kế web - Hệ quản trị sở liệu - Máy chạy trang web b Yêu cầu trang Web Hệ thống có phần: Thứ nhất: Phần User 10 Hình 2.28: Biểu đồ hoạt động cho ca sử dụng quản lý user  Đặc tả quy trình hoạt động cho ca sử dụng quản lý user: - Admin tiến hành đăng nhập - Hệ thống kiểm tra tính hợp lệ tài khoản o Nếu thông tin đăng nhập khơng xác, hệ thống u cầu nhập lại o Nếu thơng tin đăng nhập xác, hệ thống cấp phép truy cập vào trang quản lý user - Admin tiến hành cập nhập user, có cách cập nhật thêm, sửa xóa user - Sau admin cập nhật xong, tiến hành lưu liệu cập nhật vào database - Kết thúc quy trình hoạt động cho ca sử dụng quản lý user 60 2.4 Biểu đồ lớp tổng quát Hình 2.29 Biểu đồ lớp tổng quát Thông tin chi tiết các lớp: ➢ Group: - Thuộc tính: • id (string) • name (string) • status (string) - Phương thức: • getAllGroup() + Tham số đầu vào: Khơng có + Kết đầu ra: Mảng group instances 61 • addGroup() + Tham số đầu vào: id (string), name (string), status (string) + Kết đầu ra: group vừa tạo • getGroupId() + Tham số đầu vào: id (string) + Kết đầu ra: group muốn lấy • updateGroupId() + Tham số đầu vào: id (string), name (string), status (string) + Kết đầu ra: group vừa update • deleteGroupId() + Tham số đầu vào: id (string) + Kết đầu ra: group xoá khỏi database ➢ Users: - Thuộc tính: • id (string) • full_name (string) • email (string) • password (string) • last_login (string) • phone (number) • status (string) - Phương thức: • login() + Tham số đầu vào: email (string), password (string) + Kết đầu ra: Token đăng nhập • register() + Tham số đầu vào: email (string), password (string), 62 full_name (string) + Kết đầu ra: user tạo • logout() + Tham số đầu vào: id (string) + Kết đầu ra: Xóa token đăng nhập • forgotPassword() + Tham số đầu vào: email (string) + Kết đầu ra: Tạo token để gửi mail đổi mật • updateUserId() + Tham số đầu vào: id (string), full_name (string), password (string), phone (number), status (string) + Kết đầu ra: User update • deleteUserId() + Tham số đầu vào: id (string) + Kết đầu ra: User xoá khỏi database ➢ Room: - Thuộc tính: • id (string) • name (string) • size (number) • color (string) • is_peripheral (boolean) • is_vip (boolean) • status (string) - Phương thức: • getAllRoom() + Tham số đầu vào: Khơng có 63 + Kết đầu ra: Mảng group instances • addRoom() + Tham số đầu vào: id (string), name (string), size (number), color (string), is_peripheral (boolean), is_vip (boolean) + Kết đầu ra: room vừa tạo • getRoomId() + Tham số đầu vào: id (string) + Kết đầu ra: room muốn lấy • updateRoomId() + Tham số đầu vào: id (string), name (string), size (number), color (string), is_peripheral (boolean), is_vip (boolean) + Kết đầu ra: room vừa update • deleteRoomId() + Tham số đầu vào: id (string) + Kết đầu ra: room xoá khỏi database ➢ Event: - Thuộc tính: • id (string) • status (string) • id (string) • time_from (string) • time_to (string) • title (string) • creator_email (string) • weekly (array) • group_id (string) 64 • room_id (string) - Phương thức: • getAllEvent() + Tham số đầu vào: Khơng có + Kết đầu ra: Mảng event instances • get5EventLast() + Tham số đầu vào: Khơng có + Kết đầu ra: Mảng event tạo gần • addEvent() + Tham số đầu vào: weekly (array), id (string), time_from (string), time_to (string), title(string), room_id (string), creator_email (string), group_id (string) + Kết đầu ra: Event vừa tạo • updateEventId() + Tham số đầu vào: weekly (array), id (string), time_from (string), time_to (string), title(string), room_id (string), creator_email (string), group_id (string) + Kết đầu ra: Event muốn update • deleteEventId() + Tham số đầu vào: id (string) + Kết đầu ra: Event bị xoá khỏi database ➢ Booking: - Thuộc tính: • id (string) • time_from (string) • time_to (string) • title (string) • creator_email (string) 65 • group_id (string) • room_id (string) - Phương thức: • getAllBooking() + Tham số đầu vào: Khơng có + Kết đầu ra: Mảng booking instances • addBooking() + Tham số đầu vào: id (string), time_from (string), time_to (string), title (string), room_id (string), creator_email (string), group_id (string) + Kết đầu ra: booking vừa tạo • updateBookingId() + Tham số đầu vào: id (string), time_from (string), time_to (string), title (string), room_id (string), creator_email (string), group_id (string) + Kết đầu ra: booking muốn lấy • deleteBookingId() + Tham số đầu vào: id (string) + Kết đầu ra: booking bị xố khỏi database CHƯƠNG 3: CÀI ĐẶT 3.1 Cơng nghệ sử dụng ○ Ngôn ngữ phát triển: ■ Front-end: Javascript (Dùng thư viện ReactJS) 66 ■ Back-end: Python (Dùng Django Framwork để viết API) ○ Các thư viện dùng: ■ UI library: Material UI ■ Booking library: React Schedule ■ Bảo mật: JWT  tính cần cài đặt Node, Python, MySQL để chạy dự án local 3.2 Cơ sở liệu Dựa vào biểu đồ biểu đồ lớp chi tiết nhóm xây dựng bảng sở liệu sau: + user(user_id, full_name, email, …) +event(event_id,created_by,created_datetime,update_by,update_datetime, status) +booking(event_id, booking_id, time_from, time_to, room_id, created_by, created_datetime, updated_by, updated_datetime, status) + room (room_id, room_name, size, color, …) + group (group_id, group_name, …) 3.2.1 Bảng tbl_user Bảng 3.1: Bảng user ST T Tên trường Kiểu liệu User_id Varchar(50) Full_name Varchar(250) email Varchar(254) Ràng buộc Primary key, not null Mô tả Id user Tên người dùng Not null, uinque Email người dùng 67 Password Varchar(31) Phone Varchar(20) Status Varchar(20) Not null Mật người dùng Số điện thoại người dùng Not null Trạng thái 3.2.2 Bảng tbl_events Bảng 3.2: Bảng event ST T Tên trường Kiểu liệu Ràng buộc Mô tả Event_id Varchar(50) Primary_key , not null Mã event Created_by Varchar(50 ) Not null Người tạo event Created_datetime Datetime Not null Thời gian tạo Updated_by Varchar(50 ) Người cập nhập Updated_datetime Datetime Thời gian cập nhập Status Varchar(20 ) Not null Trạng thái 3.2.3 Bảng tbl_booking: Bảng 3.3: Bảng booking ST T Tên trường Kiểu liệu Event_id Ràng buộc Mô tả Varchar(50 ) Foreign_key, not null Mã event Booking_id Varchar(50 ) Primary_key, not null Mã booking Time_form Datetime Not null Thời gian bắt đầu 68 Time_to Datetime Not null Thời gian kết thúc Room_id Varchar(5 0) Foreign_key, not null Mã phòng Created_by Varchar(5 0) Not null Người tạo Created_datetime Datetime Not null Ngày tạo Updated_by Varchar(5 0) Người cập nhập Updated_datetim e Datetime Ngày cập nhập 10 Status Varchar(2 0) Not null Trạng thái 3.2.4 Bảng tbl_Room Bảng 3.4: Bảng Room ST T Tên trường Kiểu liệu Ràng buộc Mô tả Room_id Varchar(50) Primary_key , not null Mã phòng Room_name Varchar(25 0) Not null, unique Tên Room Size Int Not null Sức chứa Color Varchar(30) Not null, unique Màu phòng Peripheral_id Varchar(254) IsVip Boolean Created_by Varchar(50) Not null Người tạo Created_datetime Datetime Not null Ngày tạo Updated_by Varchar(50) Mã thiết bị ngoại vi Người cập nhập 69 10 Updated_datetim e Datetime 11 Status Varchar(20) Thời gian cập nhập Not null Trạng thái 3.2.5 Bảng tbl_group Bảng 3.5 Bảng Group ST T Tên trường Kiểu liệu Ràng buộc Mô tả Group_id Varchar(50) Primary_key , not null Mã group Group_name Varchar(50) Not null Tên group Created_by Varchar(50 ) Not null Người tạo group Created_datetime Datetime Not null Thời gian tạo Updated_by Varchar(50 ) Người cập nhập Updated_datetime Datetime Thời gian cập nhập Status Varchar(20 ) Not null Trạng thái 3.3 Giao diện Dưới số hình ảnh trang website đặt phịng hồn thiện 70 3.3.1 Giao diện hình đăng nhập Hình 3.1 Màn hình đăng nhập 3.3.2 Giao diện đặt phịng 71 Hình 3.2 Màn hình đặt phịng 3.3.3 Màn hình hiển thị lịch phịng Hình 3.3 Màn hình hiển thị lịch các phịng 3.3.4 Màn hình chi tiết thơng tin phịng Hình 3.4 Màn hình thơng tin phịng 72 KẾT LUẬN Sau thời gian tìm hiểu nghiên cứu đề tài “Xây dựng trang Web đặt lịch phịng họp cho cơng ty vừa lớn” chúng em phát triển hoàn thành theo yêu cầu nội dung thời gian định Trong trình nghiên cứu thực đề tài với tâm cao hạn chế kinh nghiệm kiến thức nên đề tài chúng em tránh khỏi thiếu xót Em mong nhận ý kiến đóng góp từ q thầy bạn để đề tài hoàn thiện * Kết đạt được: - Hoàn thiện chức phần mềm đặt phịng tìm kiếm đăng nhập, thêm thành viên mới, đặt phịng, sửa xóa phịng, hiển thị lịch đặt phòng… - Việc quản lý đặt phòng trở lên dễ dàng, thuận tiện Hạn chế thiếu xót nhân viên giảm bớt chi phí th nhân viên - Có hội học tập nghiên cứu nhiều môn công cụ hỗ trợ, ngôn ngữ khác * Hạn chế đề tài: Do thời gian có hạn nên em chưa thể hoàn thiện đầy đủ chức chương trình Trên số chức cần thiết phần mềm * Hướng giải - Để phần mềm hoạt động có hiệu hơn, em cố gắng hoàn thiện bổ sung, sửa đổi số giao diện cho thân thiện với người sử dụng đặc biệt dễ dàng sử dụng mà tính bảo mật đảm bảo - Hệ thống cần mở rộng thêm nhiều chức có tính tự động hóa cao, , phát triển hệ thống đặt phòng rộng khắp nước Cuối cùng, lần em xin chân thành cảm ơn Thầy Phạm Đức Hồng định hướng giúp đỡ giúp em phát triển đề tài này! 73 TÀI LIỆU THAM KHẢO [1] Marijn Haverbeke (2018), Eloquent JavaScript, 3rd Edition: A Modern Introduction to Programming, No Stress Press, San Francisco, California, Hoa Kỳ [2] Nhóm React Core (2022), React Doc Beta, 03/03/2022, từ https://beta.reactjs.org [3] Tổ chức Mozilla (2022), MDN Doc, 22/04/2022, từ https://developer.mozilla.org 74

Ngày đăng: 14/04/2023, 10:27

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

Tài liệu liên quan