1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng hệ thống quản lý chi tiêu save money

52 6 0

Đ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

TRƯỜNG ĐẠI HỌC KINH TẾ KHOA THỐNG KÊ – TIN HỌC BÁO CÁO THỰC TẬP NGHỀ NGHIỆP NGÀNH HỆ THỐNG THÔNG TIN QUẢN LÝ CHUYÊN NGÀNH QUẢN TRỊ HỆ THỐNG THÔNG TIN XÂY DỰNG HỆ THỐNG QUẢN LÝ CHI TIÊU SAVE MONEY Đơn vị thực tập : TMA Solutions Bình Định Giảng viên hướng dẫn : TS Nguyễn Thị Uyên Nhi i LỜI CẢM ƠN Lời cảm ơn em xin gửi đến ban lãnh đạo Công ty TMA Solutions Bình Định, anh chị Cơng ty nói chung team DC20 nói riêng giúp đỡ em nhiều q trình thực tập cơng ty Em xin gửi đến quý thầy, cô giáo khoa Thống Kê – Tin Học trường Đa ̣i Ho ̣c Kinh Tế – Đa ̣i ho ̣c Đà Nẵng lời cảm ơn chân thành vì tận tâm giảng dạy truyền đạt kiến thức, kinh nghiệm quý báu cho em Đặc biệt, em xin cám ơn Nguyễn Thị Un Nhi, người tận tình hướng dẫn em hoàn thành báo cáo Cuối em xin cảm ơn anh Bùi Đức Lực – mentor hướng dẫn em trực tiế p ta ̣i công ty TMA Solutions Bình Định giúp đỡ, cung cấp tài liê ̣u cho em quá trình thực tâ ̣p về mảng Java Backend để hoàn thành đươ ̣c kỳ thực tâ ̣p tốt Vì thời gian kiến thức hạn hẹp nên báo cáo khơng thể tránh khỏi thiếu sót, mong góp ý Cơng Ty, q thầy bạn, để em rút kinh nghiệm hoàn thành tốt Em xin chân thành cảm ơn! ii LỜI CAM ĐOAN Em xin cam đoan đề tài “Xây dựng hệ thống quản lý chi tiêu Save Money” là kế t quả từ trình thực tập doanh nghiệp em dưới sự hướng dẫn của giảng viên hướng dẫn: TS Nguyễn Thị Uyên Nhi mentor: Bùi Đức Lực Đề tài, nô ̣i dung báo cáo là sản phẩ m mà em đã thực hành quá triǹ h thực tâ ̣p doanh nghiệp Các dữ liê ̣u, kế t quả trình bày báo cáo là hoàn toàn trung thực, em xin chiụ hoàn toàn trách nhiê ̣m với môn nhà trường nế u có vấ n đề nào xảy iii MỤC LỤC LỜI CẢM ƠN ii LỜI CAM ĐOAN iii MỤC LỤC iv DANH MỤC HÌNH ẢNH vi DANH MỤC CÁC TỪ VIẾT TẮT viii LỜI MỞ ĐẦU CHƯƠNG TỔNG QUAN VỀ CƠNG TY TMA BÌNH ĐỊNH SOLUTIONS VÀ CƠ SỞ LÝ THUYẾT VỀ BACK – END DEVELOPER 1.1 Giới thiêụ tổ ng quan về cơng ty TMA Bình Định Solutions 1.1.1 Tổng quan công ty 1.1.2 Tầm nhìn sứ mệnh 1.2 Tổ ng quan về vi trí ̣ Back – End Developer 1.2.1 Giới thiệu Back - End Developer 1.2.2 Định hướng Back – End Developer 1.3 Cơ sở lý thuyế t về Back – End Developer 1.3.1 Java Basic 1.3.2 Java OOP 1.3.3 Java Spring 1.3.4 Log4j 10 1.3.5 Keycloak 11 1.3.6 Cài đặt công cụ 12 CHƯƠNG TRIỂN KHAI DỰ ÁN XÂY DỰNG HỆ THỐNG QUẢN LÝ CHI TIÊU SAVE MONEY 14 2.1 Phân tích yêu cầu hệ thống 14 iv 2.1.1 Yêu cầu hệ thống thông tin 14 2.1.2 Phân tích hệ thống 14 2.2 Triển khai hệ thống 17 2.2.1 Tạo Spring project thêm thư viện 17 2.2.2 Tạo Database từ PostgreSQL kết nối vào dự án 18 2.2.3 Triển khai mơ hình MVC 18 2.2.4 Sử dụng Keycloak phân quyền 24 2.2.5 Sử dụng Log4j để ghi log 30 2.3 Sử dụng Postman để kiểm tra kết triển khai 31 2.3.1 Đăng nhập vào trang web quyền Admin 31 2.3.2 Đăng nhập vào trang web quyền User 35 2.3.3 Kiểm tra Log4j 39 CHƯƠNG KẾT QUẢ ĐẠT ĐƯỢC 40 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 40 TÀI LIỆU THAM KHẢO 42 CHECK LIST CỦ A BÁO CÁO 43 v DANH MỤC HÌNH ẢNH Hình Cơng ty TMA Bình Định Hình Java Basic Hình Các tính chất Java OOP Hình Kiến thức tầng Java Spring Framework Hình Mơ hình hoạt động Spring MVC Hình Hệ thống quản lý xác thực ủy quyền Keycloak 11 Hình Flow hoạt động Keycloak 11 Hình Mơi trường phát triển tích hợp IntelliJ IDEA 12 Hình Công cụ phát triển kiểm thử API Postman 12 Hình 10 Hệ quản trị sở liệu PostgreSQL 13 Hình 11 Nền tảng mã nguồn mở Docker 13 Hình 12 Use Case hệ thống 14 Hình 13 Database hệ thống 15 Hình 14 Relationship hệ thống 15 Hình 15 Workflow hệ thống 16 Hình 16 Tạo Spring project 17 Hình 17 Thêm thư viện vào dự án 17 Hình 18 Sử dụng Query để tạo Database 18 Hình 19 Kết nối Database với PostgreSQL 18 Hình 20 Xây dựng Object card 19 Hình 21 Tạo Repository 20 Hình 22 Xây dựng khung API 21 Hình 23 Xây dựng chi tiết API 22 Hình 24 Xây dựng chi tiết API 22 Hình 25 Xây dựng cardController 23 vi Hình 26 Xây dựng cardController 23 Hình 27 Xây dựng cardController 24 Hình 28 Cài đặt Keycloak thông qua Docker 25 Hình 29 Tạo client 25 Hình 30 Tạo realm admin user 26 Hình 31 Tạo User hoang hon 26 Hình 32 Xây dựng JwtAuthConverter 27 Hình 33 Xây dựng JwtAuthConverter 27 Hình 34 Xây dựng SecurityConfig 28 Hình 35 Cấu hình Keycloak properties 29 Hình 36 Cấp quyền truy cập 29 Hình 37 Cấp quyền truy cập 30 Hình 38 Cấu hình Log4j log4j.properties 30 Hình 39 Tạo class logger 31 Hình 40 Token Admin 32 Hình 41 Danh sách card mối quan hệ với card_brand (Admin) 32 Hình 42 Thông tin card với Id 956 (Admin) 33 Hình 43 Thêm card với Id 1004 (Admin) 33 Hình 44 Cập nhật card với Id 1004 (Admin) 34 Hình 45 Cập nhật inactive cho card có Id 1004 (Admin) 35 Hình 46 Xem danh sách active (Admin) 35 Hình 47 Token User (Admin) 36 Hình 48 Danh sách card mối quan hệ với card_brand (User) 36 Hình 49 Thông tin card với Id 955 (User) 37 Hình 50 Thêm card với Id 1052 (User) 37 Hình 51 Cập nhật card lỗi 403 (User) 38 Hình 52 Xóa card lỗi 403 (User) 39 Hình 53 Các thông báo log hiển thị consolog 39 vii DANH MỤC CÁC TỪ VIẾT TẮT Từ viết tắt Diễn giải API Application Programming Interface URL Uniform Resource Locator CRUD Create,Read,Update,Delete HTTP Hyper Text Transfer Protocol HTTPS Hypertext Transfer Protocol Secure REST REpresentational State Transfer JSON JavaScript Object Notation XML Extensible Markup Language OOP Object-Oriented Programming JPA Java Persistence API MVC Model View Controller SQL Structured Query Language viii LỜI MỞ ĐẦU Lý chọn đề tài - Chi tiêu vấn đề quan trọng tất người Khơng có không cần quản lý chi tiêu, dù bạn cá nhân, hộ gia đình, doanh nghiệp hay tổ chức Việc quản lý chi tiêu hiệu giúp bạn: o Tiết kiệm tiền: Khi bạn biết chi tiêu vào gì, bạn dễ dàng xác định khoản chi tiêu không cần thiết cắt giảm chúng o Tránh nợ nần: Nếu bạn không quản lý chi tiêu tốt, bạn dễ dàng rơi vào tình trạng nợ nần o Đạt mục tiêu tài mình: Khi bạn có kế hoạch quản lý chi tiêu cụ thể, bạn dễ dàng đạt mục tiêu tài Mu ̣c tiêu đề tài - Tạo project Spring đơn giản - Nắm kiến thức Database sử dụng Restful API để thực thao tác GET, POST, PUT, DELETE - Thiết kế security phân quyền cho hệ thống Keycloak Đối tượng phạm vi nghiên cứu - Đối tượng: Cá nhân, gia đình doanh nghiệp nhỏ - Phạm vi: Ghi nhận thu chi, phân loại chi tiêu, báo cáo thống kê, kế hoạch tiết kiệm Kết cấu đề tài Đề tài tổ chức gồm phần mở đầu, chương nội dung phần kết luận hướng phát triển - Mở đầu - Chương 1: Tổng quan cơng ty TMA Solutions Bình Định sở lý thuyết Back – End Developer - Chương 2: Triển khai dự án xây dựng hệ thống quản lý chi tiêu Save Money - Chương 3: Kết đạt - Kết luận hướng phát triển Hình 35 Cấu hình Keycloak properties h) - Cấp quyền truy cập Cấp quyền cho request nằm tầng Controller annotation @PreAuthorize: Xác định quyền truy cập cần thiết cho API Hình 36 Cấp quyền truy cập 29 Hình 37 Cấp quyền truy cập 2.2.5 Sử dụng Log4j để ghi log a) - Cấu hình để sử dụng Log4j Trong package resources tạo file log4j.properties để cấu hình log4j vào dự án Hình 38 Cấu hình Log4j log4j.properties 30 b) - Tạo class logger Tiếp theo, tạo package log tạo class logger cung cấp phương thức đơn giản để ghi thông báo mức log khác info, warn, error, fatal, debug Hình 39 Tạo class logger Sử dụng Postman để kiểm tra kết triển khai 2.3 2.3.1 Đăng nhập vào trang web quyền Admin a) - Lấy Token tài khoản Admin Đăng nhập tài khoản Admin để lấy Token 31 Hình 40 Token Admin b) - Xem danh sách card Dùng phương thức GET để lấy thông tin danh sách card Hình 41 Danh sách card mối quan hệ với card_brand (Admin) 32 c) - Xem card theo Id Dùng phương thức GET để lấy thông tin chi tiết card mà người dùng muốn xem Hình 42 Thông tin card với Id 956 (Admin) d) - Thêm card Dùng phương thức POST để thêm card Hình 43 Thêm card với Id 1004 (Admin) 33 e) - Cập nhật card Dùng phương thức PUT để cập nhật thơng tin card sai sót có thay đổi Hình 44 Cập nhật card với Id 1004 (Admin) f) - Xóa card Khi mà liệu/ đối tượng bảng nối quan hệ với đối tượng bảng khác khơng thể xóa liệu - Và đối tượng có quan hệ xem đối tượng có đầy đủ thơng tin cần lưu trữ liệu Để tránh mát liệu, liệu quan trọng với doanh nghiệp Nên chỉnh sửa trạng thái đối tượng - Dùng phương thức PUT để cập nhật status thành inactive (ngừng hoạt động) 34 Hình 45 Cập nhật inactive cho card có Id 1004 (Admin) - Dùng phương thức GET để xem danh sách card active(hoạt động) Hình 46 Xem danh sách active (Admin) 2.3.2 Đăng nhập vào trang web quyền User a) - Lấy Token tài khoản User Đăng nhập tài khoản User để lấy Token 35 Hình 47 Token User (Admin) b) - Xem danh sách card Dùng phương thức GET để lấy thông tin danh sách card Hình 48 Danh sách card mối quan hệ với card_brand (User) c) - Xem card theo Id Dùng phương thức GET để lấy thông tin chi tiết card mà người dùng muốn xem 36 Hình 49 Thông tin card với Id 955 (User) d) - Thêm card Dùng phương thức POST để thêm card Hình 50 Thêm card với Id 1052 (User) e) Cập nhật card 37 - Vì User khơng có quyền để sử dụng PUT nên ta cố cập nhật giá trị bị lỗi 403 mã lỗi "Forbidden" (Từ chối truy cập) Hình 51 Cập nhật card lỗi 403 (User) f) - Xóa card Khi mà liệu/ đối tượng bảng nối quan hệ với đối tượng bảng khác khơng thể xóa liệu - Và đối tượng có quan hệ xem đối tượng có đầy đủ thơng tin cần lưu trữ liệu Để tránh mát liệu, liệu quan trọng với doanh nghiệp Nên chỉnh sửa trạng thái đối tượng - Cũng tương tự PUT User khơng có quyền để sử dụng DELETE nên ta cố cập nhật giá trị bị lỗi 403 mã lỗi "Forbidden" (Từ chối truy cập) 38 Hình 52 Xóa card lỗi 403 (User) 2.3.3 Kiểm tra Log4j - Khi sử dụng GET thành cơng Controller thông báo log hiển thị consolog Hình 53 Các thông báo log hiển thị consolog 39 CHƯƠNG KẾT QUẢ ĐẠT ĐƯỢC KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN  Đạt được: - Hiểu tạo project Spring đơn giản - Nắm kiến thức Database, Relationship sử dụng Restful API để thực thao tác GET, POST, PUT, DELETE - Thiết kế security phân quyền cho hệ thống Keycloak - Nâng cao khả tự học, tiếp thu kiến thức cách chủ động - Cải thiện kỹ giao tiếp, nâng cao hiểu biết thân môi trường làm việc chuyên nghiệp doanh nghiệp - Được training kỹ chuyên môn số kỹ mềm như: bảo mật doanh nghiệp, trao đổi buổi seminar,… - Nâng cao kỹ viết email, báo cáo, báo cáo buổi họp team hàng tuần - Kỹ làm việc theo đội nhóm, phân chia cơng việc rõ ràng  Hạn chế: - Về Log4j chưa thể tạo File để lưu console log - Vẫn chưa thể nối hai khóa Primary Key Foreign Key bảng có mối quan hệ nhiều – nhiều - Vì thời gian thực tập không cho phép nên chưa hiểu rõ hết kiến thức tiếp xúc chưa hoàn thành hết chức yêu cầu mentor đưa như: Multithread, CompletableFuture, Transaction  Hướng phát triển: - Đối với đề tài xây dựng hệ thống quản lý chi tiêu Save Money tương lai em hồn thiện để trở thành project đầy đủ với hệ thống gồm chức lớn phức tạp Để làm điều đòi hỏi em phải nắm vững kiến thức Back-End mà cụ thể Framework Spring Java Vì thời gian thực tập khơng cho phép thân em chưa nắm vững sâu kỹ thuật lập trình 40 web với Spring Kĩ năng, kiến thức liên quan trực tiếp tới phát triển trang Web dừng lại kiến thức bản, em cố gắng phát triển nhiều tương lai Thời gian tới em mong muốn học hỏi tìm hiểu thêm Java Web Framework Spring sâu Một lần em xin chân thành cảm ơn doanh nghiệp nhà trường khoa Thống Kê – Tin Học tạo điều kiện cho em tiếp thu kiến thức sở để bước hoàn thiện, trau dồi kỹ Developer Backend Java 41 TÀI LIỆU THAM KHẢO https://www.w3schools.com/java/default.asp https://www.javatpoint.com/spring-tutorial https://spring.io/guides/gs/relational-data-access/ https://spring.io/guides/tutorials/rest/ https://docs.spring.io/spring-boot/docs/1.2.x-SNAPSHOT/reference/html/howtologging.html 42 CHECK LIST CỦ A BÁO CÁO STT Nô ̣i dung công viêc̣ Báo cáo đươ ̣c triǹ h bày (đinh ̣ da ̣ng) đúng với yêu cầ u Báo cáo có số lươ ̣ng trang đáp ứng đúng yêu cầ u (30-50 trang) Báo cáo trình bày đươ ̣c phầ n mở đầ u bao gồ m: Mu ̣c tiêu, Pha ̣m vi và đố i tươ ̣ng, kế t cấ u … Báo cáo trình bày về công ty, vi ̣ trí viê ̣c làm (cơng việc làm gì, kiến thức kỹ cần thiết gì, đường phát triển nghiệp (career path)), sở lý thuyế t phù hơ ̣p với nô ̣i dung của đề tài (Tố i đa 10-12 trang) Báo cáo có sản phẩ m cu ̣ thể phù hơ ̣p với mu ̣c tiêu đă ̣t của đề tài Báo cáo có phầ n kế t luâ ̣n và hướng phát triể n của đề tài Có Không Ghi chú Quy định (SINH VIÊN XÓA PHẦN NÀ Y KHI TRÌ NH BÀ Y BÁO CÁO): - - Sinh viên check X vào ô Có hoă ̣c Không, ghi chú thêm nế u cầ n; Soạn thảo trang A4 (trang dọc, lề trái: 3.0cm; trên, phải, dưới: 1.5 cm), Font Times New Roman, canh bên, size 13, cách dòng 1.5, cách đoạn 6pt, cách đoạn 3pt, hàng lùi vào 1.27 cm; hình bảng soạn theo caption, chèn trích dẫn chéo (Cross-reference) cho bảng hình; danh mục hình, bảng, mục lục làm tự động; đánh số trang file mẫu (bìa khơng có số trang, danh mục + mục lục số trang theo số la mã i, ii, iii…, nội dung theo số thứ tự 1, 2, 3…); Báo cáo tối đa 30-50 trang 43

Ngày đăng: 12/12/2023, 19:48

Xem thêm:

w