Chương 1: MÔ TẢ HỆ THỐNG I. Mô tả hệ thống 1. Đặc tả sơ đồ Tên bảng Mô tả Bảng mục tiêu, sẽ là những mục tiêu mp_goals cần đạt được Bảng chứa danh sách các giao dịch của mp_transactions người dùng Bảng chưa toàn bộ danh sách các thể mp_categories loại của giao dịch: mua sắm, ăn uống, … Bảng chưa danh sách các budget (ngân mp_budgets sách chi tiêu) là số tiền mà bạn dự định sẽ bỏ ra để chi cho cái gì đó Bảng chứa danh sách người dùng trong mp_users hệ thống Bảng chưa danh sách các tài khoản ngân hàng (không có chứa mật khẩu), mp_acounts Gồm: tên, mô tả, số tài khoản, số tiền hiện có bảng chứa thông báo của hệ thống tới mp_notifications người dùng Bảng chứa các thông tin khác của mp_general_data website 4. Kiến trúc REST API a.
Mô hình kiến trúc b. Đặc tả kiến trúc Rest API là một ứng dụng được dùng để chuyển đổi cấu trúc của dữ liệu có những phương thức giúp kết nối với các thư viện và ứng dụng khác nhau. Rest Api thường không được xem là công nghệ, mà nó là giải pháp giúp tạo ra những ứng dụng web services chuyên dụng để thay thế cho nhiều kiểu khác như: SOAP, WSDL,. API là từ viết tắt của cụm từ Application Programming Interface, đây là tập hợp những quy tắc và cơ chế mà theo đó thì: Một ứng dụng hoặc một thành phần nào đó sẽ tương tác với một ứng dụng hoặc một số thành phần khác.
API có thể sẽ được trả về dữ liệu mà người dùng cần cho chính ứng dụng của bạn với những kiểu dữ liệu được dùng phổ biến như JSON hoặc XML. Rest là từ viết tắt của Representational State Transfer: Nó là một trong những dạng chuyển đổi cấu trúc, với kiểu kiến trúc thường được viết API. Rest thường sử dụng dụng phương thức HTTP đơn giản để có thể tạo ra giao tiếp giữa các máy.Bởi vì thế, thay vì phải sử dụng một URL cho việc xử lý một số thông tin của người dùng thì Rest sẽ yêu cầu HTTP như: GET, POST, DELETE,. đến với bất kỳ một URL để được xử lý dữ liệu.
Kiến trúc MVC trong PHP Mô hình MVC là mô hình gồm 3 lớp: Model, View, Controller. Cụ thể như sau: Model: Lớp này chịu trách nhiệm quản lí dữ liệu: giao tiếp với cơ sở dữ liệu, chịu trách nhiệm lưu trữ hoặc truy vấn dữ liệu. View: Lớp này chính là giao diện của ứng dụng, chịu trách nhiệm biểu diễn dữ liệu của ứng dụng thành các dạng nhìn thấy được. Controller: Lớp này đóng vai trò quản lí và điều phối luồng hoạt động của ứng dụng.
Tầng này sẽ nhận request từ client, điều phối các Model và View để có thể cho ra output thích hợp và trả kết quả về cho người dung. Kiến trúc MVVM trong Android / iOS MVVM được hiểu như thế nào? View: Tương tự như trong mô hình MVC, View là phần giao diện của ứng dụng để hiển thị dữ liệu và nhận tương tác của người dùng. Một điểm khác biệt so với các ứng dụng truyền thống là View trong mô hình này tích cực hơn. Nó có khả năng thực hiện các hành vi và phản hồi lại người dùng thông qua tính năng binding, command.
Model: Cũng tương tự như trong mô hình MVC. Model là các đối tượng giúp truy xuất và thao tác trên dữ liệu thực sự. ViewModel: Lớp trung gian giữa View và Model. ViewModel có thể được xem là thành phần thay thế cho Controller trong mô hình MVC.
Nó chứa các mã lệnh cần thiết để thực hiện data binding, command. ViewModel không hề biết gì về View, một ViewModel có thể được sử dụng cho nhiều View (one-to-many). ViewModel sử dụng Observer design pattern để liên lạc với View (thường được gọi là binding data, có thể là 1 chiều hoặc 2 chiều tùy nhu cầu ứng dụng). Chính đặc điểm này MVVM thường được phối hợp với các thư viện hỗ trợ Reactive Programming hay Event/Data Stream, đây là triết lý lập trình hiện đại và hiệu quả phát triển rất mạnh trong những năm gần đây.
Chương 2: MÔI TRƯỜNG MÁY CHỦ WEBSERVER LAMP là viết tắt của Linux, Apache, MySQL và PHP (cũng có thể là Python, Perl nhưng bài này chỉ nói về Php), mỗi trong số đó là các gói phần mềm riêng lẻ được kết hợp để tạo thành một giải pháp máy chủ web linh hoạt. Các thành phần này, được sắp xếp theo các lớp hỗ trợ lẫn nhau, tạo thành các stack phần mềm. Linux: là lớp đầu tiên trong stack. Hệ điều hành này là cơ sở nền tảng cho các lớp phần mềm khác.
Apache đóng vai trò một HTTP server dùng để xử lý các yêu cầu gửi tới máy chủ. Mysql là cơ sở dữ liệu để lưu trữ mọi thông tin trên website. PHP sau đó sẽ xử lý các nhiệm vụ cần thiết hoặc kết nối với CSDL MySQL để lấy thông tin cần thiết sau đó trả về cho Apache. Apache cuối cùng sẽ trả kết quả nhận được về cho máy khách đã gửi yêu cầu tới.
Chương 3: CÁC CLIENT, APPLICATION TRUY CẬP API I. Ứng dụng Android Home Activity Đây là activity quan trọng, đóng vai trò là màn hình chính của ứng dụng. Từ home activity ta có thể truy cập tới bất kì chức năng khác nếu muốn. Activity này là nơi quản lý và sử dụng các Fragment Introduce Activity Đây là nơi hiển thị các màn hình giới thiệu nếu đây là lần đầu tiên người dùng mở ứng dụng lên Màn hình giới thiệu ứng dụng Main Activity Bản chất là màn hình đăng nhập.
Nếu người dùng lần đầu mở ứng dụng thì sẽ đi qua Introduce Activity trước rồi mới tới màn hình Đăng nhập. Ngược lại, nếu đã đăng nhập tài khoản thì khi mở ứng dụng sẽ vào ngay màn hình Home Activity. Màn hình đăng nhập ứng dụng. Hỗ trợ 3 hình thức đăng nhập khác nhau Màn hình chính và các chức năng chủ chốt Transaction Quản lý các nguồn thu nhập/hoạt động chi tiêu và tạo sao kê với nhiều tùy chọn khác nhau Chức năng quản lý các hoạt động thu nhập/chi tiêu Thêm mới hoặc chỉnh sửa nội dung dễ dàng Tạo sao kê với nhiều tùy chọn lọc dữ liệu Sao kê với các thông tin theo chuẩn Ngân hàng Trung ương Việt Nam Card Tạo thẻ ngân hàng và kiểm soát số dư tài khoản Category Tạo các thể loại thu nhập/chi tiêu theo mong muốn Goal Chức năng này giúp bạn đặt ra các mục tiêu để và kiểm soát việc tiết kiệm tiền bạc Để dành thêm được một khoản tiền ?? Cập nhật ngay thôi Notification Hiển thị thông báo ngay trên thanh quick-setting của thiết bị Dark Mode Hỗ trợ mạnh mẽ và toàn diện chế độ ban đêm II.
Ứng dụng iOS II. Ứng dụng web Giao diện đăng nhập Giao diện đăng nhập Giao diện đầu tiên người dùng nhìn thấy khi truy cập trang web. Bao gồm các tính năng cơ bản như đăng nhập, nhớ mật khẩu, quên mật khẩu. Giao diện quên mật khẩu Người dùng có thể chọn quên mật khẩu và làm theo hướng dẫn theo từng bước để đến giao diện đổi mật khẩu.
Giao diện dashboard Vì đây là giao diện chính của trang web nên có rất nhiều mục để thao tác. Thanh điều hướng Thanh điều hướng giúp người dùng thuận tiện trong việc chuyển đổi giao diện để thao tác, Bên cạnh đó còn có thanh sáng giúp người dùng nhận biết mình đang ở giao diện nào. Giao dịch và thống kê Giao dịch và thống kê Đây được coi là mục chính của dashboard vì chứa tất cả các thông tin của người dùng hiện tại bao gồm số dư, giao dịch trong tháng hoặc năm. Quick menu Quick menu Đây là menu giúp người dùng đi thẳng đến giao diện thêm các giao dịch và ngân sách.
Giao dịch Giao dịch được chia ra làm 2 phần là thu nhập và chi tiêu( income & expense). Quản lý thu nhập Quản lý chi tiêu Ở đây người dùng có thể thêm xóa sửa bất cứ giao dịch nào vì đây là giao dịch cá nhân của người dùng. Ngoài ra còn có tính năng import nhanh giao dịch bằng file CSV thích hợp cho việc người dùng chuyển đổi tài khoản nhưng vẫn muốn lưu giữ giao dịch cũ mà không cần thêm lại từng cái. Giao diện quản lý account Người dùng có thể thêm xóa sửa các tài khoản ngân hàng của mình.
Quản lý ngân sách Giao diện quản lý ngân sách Thêm xóa sửa các ngân sách đặt ra. Quản lý mục tiêu Giao diện quản lý mục tiêu Thêm xóa sửa các mục tiêu và thêm tiền để đạt được mục tiêu. Lịch Giao diện lịch Người dùng có thể xem các giao dịch thu/chi mà mình đã tạo ra theo ngày hoặc tháng năm để dễ kiểm soát chi tiêu. Thống kê và báo cáo Đầu tiên người dùng có thể chọn loại để thống kê và in ra báo cáo bao gồm loại giao dịch theo thu/chi, tài khoản, khoảng thời gian… Thống kê và báo cáo Tùy theo người dùng chọn loại thống kê mà sẽ chuyển hướng tới giao diện tương tự Giao diện thống kê & báo cáo thu nhập Quản lý users (chức năng admin) Khi đăng nhập vào trang web phân quyền admin ở thanh điều hướng sẽ có chức năng quản lý users có thể thêm xóa sửa thông tin các users sử dụng app hoặc website của mình.
Quản lý users Quản lý thể loại Người dùng có thể thêm xóa sửa thể loại. Quản lý thể loại Quản lý settings Quản lý profile Quản lý ứng dụng Quản lý cài đặt email SMTP Chương 4: REST API I. Overview Đây là tài liệu hướng dẫn sử dụng API của moneypro Link documents: https://bitly.vn/ndz4xl. Error Codes HTTP status code của API: Mọi request của api đều trả về code 200.
Nếu có thất bại thì sẽ phân biệt qua thuộc tính result trong json trả về. Kết quả trả về của api sẽ có dạng chung như sau {"result": 0,"msg": "Thông báo", "method":"GET", "data": [],.} Property Description Range of Values Required Kết quả thực thi có result 0-1 của request Thông báo có msg string người dùng phương thức mà có GET|POST|DELETE| method người dùng đã PUT request API kết quả dang không, tuỳ vào data sách kết quả trả Array, Object request về Trong đó result, msg, method sẽ là các thuộc tính luôn xuất hiện trong api, ngoài sẽ có data hoặc các thuộc tính khác tuỳ vào API được request. Rate limit Đây chỉ là API để phục vụ học tập, testing, không thương mại hoá. Nên sẽ ko giới hạn số lần request IV.
Xác thực Thêm các tham số bên dưới vào header trong mỗi lần gọi api Bit Tên uh Kifu dư뀃 liê Mă ch đ椃⌀nh Mô tả buô ch JWT<dấucách><token> (xem Login để xem chi tiết về Authorization string có <token>) V. Categories Có 2 loại tiền trong ứng dụng là Income và Expense tương ứng là Thu nhập và chi tiêu Đi kèm trong giao dịch sẽ có cách thể loại.