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

báo cáo môn cơ sở dữ liệu kĩ thuật lập trình xây dựng hệ thống quản lý nhà thuốc

20 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Xây dựng hệ thống quản lý nhà thuốc
Tác giả Nguyễn Thị Thu Trang, Lương Huy Hoàng, Phạm Minh Dũng
Người hướng dẫn Đỗ Thị Ngọc Diệp
Trường học Trường Đại học Bách Khoa Hà Nội
Chuyên ngành Cơ sở dữ liệu & Kĩ thuật lập trình
Thể loại Báo cáo môn học
Thành phố Hà Nội
Định dạng
Số trang 20
Dung lượng 3,24 MB

Nội dung

Xây dựng một hệ thống quản lý thuốc gồm các chức năng :- Thêm , sửa , xóa thông tin của một loại thuốc theo tên nhập vào- Lưu thông tin về đơn thuốc đã bán một đơn thuốc gồm nhiều loạit

Trang 1

TR ƯỜ NG Đ I H C BÁCH KHOA HÀ N I Ạ Ọ Ộ

VI N S PH M KỸỸ THU T Ệ Ư Ạ Ậ

- 

Đềề tài: Xây d ng h thốống qu n lý nhà thuốốc ự ệ ả

Giáo viền h ướ ng dâẫn: Đốẫ Th Ng c Di p ị ọ ệ

Sinh viền th c hi n: Nguyềẫn Th Thu Trang ự ệ ị

L ươ ng Huy Hoàng

Ph m Minh Dũng ạ

Nhóm: 12

Trang 2

L p: Cống ngh giáo d c 02 ớ ệ ụ BẢNG PHÂN CÔNG VIỆC

N

hoàn thàn h

1 Nguyễn

Thị Thu

Trang

202123 45

Giới thiệu bài toán Thiết kế CSDL - Thiết kế các quan hệ - Viết câu lệnh MySQL truy vấn dữ liệu theo đề bài - Trình bày lệnh MySQL cùng ví dụ chạy các lệnh đó ra đúng kết quả - Phân tích bài toán, mô tả hoạt động, đánh giá hạn chế về phần CSDL.

100

%

Huy

Hoàng

202123 03

Phân tích và lên ý tưởng về các thành phần có trong web

- Phân tích các hàm, đối tượng cần có.

- Viết hàm theo yêu cầu đề bài JS

- Trình bày code

- Phân tích bài toán, mô tả hoạt động, đánh giá hạn chế về phần JS

100

%

Minh

Dũng

202229 1

Phân tích object có trong web

- Tạo trang HTML, CSS

- Trình bày trang HTML và CSS hoàn chỉnh

- Viết hàm theo yêu cầu đề bài JS

- Phân tích bài toán, mô tả hoạt động, đánh giá hạn chế về phần giao diện HTML CSS.

100

%

Trang 3

I Giới thiệu bài toán

bán thuốc qua giấy tờ , viết tay Việc này có thể xảy ra nhiều ảnh hưởng không tốt như : quên giá thành sản phẩm , doanh thu thất thoát , khó quản lý số lượng nhập và bán ,… Vậy để tạo hiệu quả tốt cần phải làm thế nào ? Đây là vấn đề của nhóm em, dưới đây nhóm

em xin trình bày đề tài lập trình quản lý hiệu thuốc

Đề tài :Một hiệu thuốc bao gồm các dạng thuốc viên , thuốc nước , thuốc bột Khi có người mua thuốc hiệu thuốc sẽ xuất hóa đơn mua thuốc và lưu lại hệ thống thông tin đơn thuốc Xây dựng một hệ thống quản lý thuốc gồm các chức năng :

- Thêm , sửa , xóa thông tin của một loại thuốc theo tên nhập vào

- Lưu thông tin về đơn thuốc đã bán ( một đơn thuốc gồm nhiều loại thuốc khác nhau )

- Tìm kiếm và hiển thị thông tin về một đơn thuốc theo mã đơn thuốc Tùy theo loại thuốc mà thông số kích thước thuốc là khác nhau Với thuốc viên tính theo đơn vị viên , thuốc nước tính theo đơn vị ml , thuốc bột tính theo đơn vị mg

- Thống kê số lượng thuốc đã bán và doanh thu hiệu thuốc trong một khoảng thời gian nhập vào ( từ ngày/tháng/năm … đến ngày/tháng/năm )

II Phân tích bài toán , mô tả hoạt

động, phân tích dữ liệu.

1.Xác định các tập/kiểu thực thể và các thuộc tính tương ứng

1.Thuốc

Id

Name

Type

Trang 4

Price

Stock

Until

2.Hóa đơn

Id

Datetime

3.Doanh thu

Quantity

Id

Total

2.Xác định các liên kết và kiểu liên kết

- Một hóa đơn gồm nhiều loại thuốc

-Doanh thu gồm nhiều hóa đơn

- Doanh thu gồm nhiều loại thuốc

- Mối liên kết giữa tập thực thể thuốc và tập thực thể hóa đơn là mối liên kết N-M bởi vì thông tin của nhiều thuốc có trong một hóa đơn nhưng nhiều hóa đơn có chứa thông tin của nhiều thuốc

- Mối liên kết giữa tập thực thể doanh thu và tập thực thể hóa đơn là mối liên kết 1-N bởi vì một doanh thu bao gồm nhiều hóa đơn nhưng một hóa đơn chỉ thuộc một doanh thu

- Mối liên kết giữa tập thực thể doanh thu và tập thực thể thuốc là mối liên kết 1-N bởi vì một doanh thu bao gồm nhiều loại thuốc nhưng một loại thuốc chỉ thuộc một doanh thu

Trang 5

III Thiết kế các quan hệ trong Cơ sở

dữ liệu

1 Sơ đồ thực thể liên kết (ERD).

1

2 Lược đồ quan hệ ( RL).

Trang 6

Một lược đồ quan hệ là một biểu diễn dạng bảng của một cơ sở dữ liệu và các mối quan hệ của nó Đối với cơ

sở dữ liệu đã cho, lược đồ quan hệ có thể được biểu diễn như sau:

1.Medicine :

Id (Primary Key)

Name

Type

Price

Stock

Unit

2.Prescription

Id (Primary Key, Foreign Key to Prescription_medicine (Prescription_id) )

Datetime

3.Prescription_medicine

Trang 7

Prescription_id (Primary Key)

Medicine_id (Primary Key, Foreign Key to Medicine(Id)) Quantity

IV Thiết kế các lớp/hàm trong

Javascript

Cơ chế hoạt động tổng quát của các 昀椀le Javascript: lấy dữ liệu người dùng nhập vào (textbox, checkbox, button,…) xử lý input đưa ra truy vấn và lấy dữ liệu từ database (mysql) xử lý dữ liệu nhận được và trả về kết quả cho người dùng

1.Tạo sever và liên kết cơ sở dữ liệu (昀椀le:

server.js)

1.1 Tạo sever cho Node.js bằng Express và Cors:

- Express.js, hay đơn giản là Express, là một khung ứng dụng web back end để xây dựng các API RESTful với Node.js, được phát hành dưới dạng phần mềm mã nguồn mở và miễn phí theo Giấy phép MIT Nó được thiết kế để xây dựng các ứng dụng web và API Nó đã được gọi là khung máy chủ tiêu chuẩn trên thực tế cho Node.js - CORS là 1 node.js packege cung cấp phần mềm trung gian (middleware) kết nối/Express

có thể được sử dụng để kích hoạt CORS với các tùy chọn khác nhau

Trang 8

- Bất kì package NPM nào, bạn cần phải npm install module, sau đó sử dụng lệnh require để load module

- Sử dụng 3 packages trong bài: Express; cors và mysql2

- Liên kết cơ sở dữ liệu bằng lệnh: mysql.createConnection({ //Thông tin: host, user, database, password })

- Hai dòng lệnh 8 và 9 để cho phép cors với toàn bộ url được tạo

1.2 Tạo các đường link trả về dữ liệu truy vấn từ Database:

Trang 9

Đây là một đoạn mã JavaScript dùng để thực hiện truy vấn SQL Hàm connection.query được gọi để thực hiện truy vấn, với query là chuỗi truy vấn SQL và một hàm callback để xử lý kết quả trả về Trong hàm callback, nếu có lỗi (err khác null), mã trả về một đối tượng JSON với trạng thái false, một mảng rỗng và thông báo "Cập nhật thất bại" Nếu không có lỗi, mã trả về một đối tượng JSON với trạng thái true, một mảng rỗng và thông báo "Cập nhật thành công"

Trong mã trên, chúng ta đang định nghĩa một endpoint GET cho URL /medicines Khi có một yêu cầu GET đến URL này, chương trình sẽ thực hiện một truy vấn

Trang 10

SELECT trên bảng medicine trong cơ sở dữ liệu và trả

về kết quả dưới dạng JSON

Cụ thể, chúng ta sử dụng hàm connection.query để thực hiện một truy vấn SELECT trên bảng medicine Khi truy vấn hoàn tất, nếu không có lỗi xảy ra, chúng ta sẽ trả về kết quả dưới dạng JSON bằng cách gọi res.send với tham số là một đối tượng JSON định nghĩa trạng thái thành công, dữ liệu trả về (kết quả của truy vấn) và một thông báo rỗng Nếu có lỗi xảy ra, hàm connection.query sẽ throw một ngoại lệ và chương trình

sẽ dừng lại

- Trường hợp tạo Endpoint mà câu truy vấn cần có input là dữ liệu người dùng nhập vào

- Sau đó, chúng ta sử dụng giá trị của id để xây dựng một truy vấn DELETE tới bảng medicine để xóa hàng có

Trang 11

id tương ứng Chúng ta sử dụng hàm connection.query

để thực hiện truy vấn DELETE Khi truy vấn hoàn tất, nếu không có lỗi xảy ra, chúng ta sẽ trả về một thông báo thành công dưới dạng JSON bằng cách gọi res.send với tham số là một đối tượng JSON định nghĩa trạng thái thành công và một thông báo "Xóa thành công"

2.Xử lý dữ liệu giữa client và Server

2.1 Lấy dữ liệu từ url tạo ở server:

- Như bên trên ta đã có cách để tạo ra một server và đường link trả về

dữ liệu truy vấn

2.2.Hàm thêm , sửa , xóa thông tin của một loại thuốc theo tên nhập vào

Trang 12

- Hàm xóa thông tin của một loại thuốc khỏi cơ sở dữ liệu Khi nút “xóa” được nhấn , hàm được kích hoạt

và các trường được trống

Trang 13

- Hàm thêm thông tin của một loại thuốc

hoạt để thực hiện một yêu cầu POST đến điểm cuối API tại DIR_API + “createMedicine” với giá trị đầu vào và giá trị nhập vào của JSON

được tải lại

Trang 15

- Hàm cập nhật thông tin thuốc sau khi sửa Khi

nút “cập nhật” được nhấn, chức năng sẽ được kích hoạt và lấy giá trị từ các trường trong mẫu.Nếu Id trống , hệ thống sẽ hiện thị thông báo : “Vui lòng

chọn thuốc cần cập nhật”.

2.3.Tìm kiếm và hiển thị thông tin một đơn thuốc theo mã thuốc

Hàm loadBills sẽ gửi một yêu cầu GET đến API tại địa chỉ http://127.0.0.1:3000/bills để lấy danh sách các hóa đơn Kết quả trả về sẽ được thêm vào select box có id

là bills

Sự kiện click của nút có id là btn-search-bill sẽ gửi một yêu cầu GET đến API tại địa chỉ http://127.0.0.1:3000/bills/bill_id, với bill_id là giá trị đã chọn trong select box bills Kết quả trả về sẽ được hiển thị trong một danh sách các mục có class là medicines-order Tổng tiền sẽ được tính dựa trên số lượng và giá

Trang 16

của từng mặt hàng và hiển thị trong một phần tử có class là total-money

Trang 17

2.4.Thống kê số lượng thuốc đã bán và doanh thu hiệu thuốc trong một khoảng thời gian nhập vào.

Trang 18

- Đoạn code trên định nghĩa một chức năng

loadStatistical() để tải dữ liệu thống kê từ API Khi trang web được tải xong, nó sẽ gọi hàm init() để thực hiện việc tải dữ liệu

điểm cuối API tại "http://127.0.0.1:3000/statistics" Nếu yêu cầu thành công, dữ liệu trả về sẽ được xử lý bằng hàm success() Dữ liệu được xử lý bằng cách parse dữ liệu từ một chuỗi JSON sang đối tượng JavaScript

-Sau đó, nó sẽ truy xuất các phần tử HTML với id

"medicines" và "monthly" để hiển thị dữ liệu thống

kê về số lượng thuốc và doanh thu hàng tháng Nếu không tìm thấy dữ liệu, một thông báo sẽ được hiển thị

-Trong trường hợp có lỗi xảy ra khi gửi yêu cầu, hàm error() sẽ được gọi để in ra dữ liệu lỗi vào console

V Triển khai hệ thống

Trang 19

1.Xác định các trường dữ liệu cần thiết cho mỗi loại thuốc ( Tên ,

Mã , Đơn vị tính ,Loại, Giá , Số lượng )

2.Tạo các lớp để lưu trữ thông tin thuốc , hóa đơn và doanh thu

3 Xây dựng các chức năng thêm, sửa, xóa, tìm kiếm, hiển thị thông tin cho cán bộ

+ Thêm một loại thuốc : Cho phép quản trị viên nhập thông tin về tên, mã , loại ,đơn vị tính , giá, số lượng lưu thông tin vào hệ thống

+ Sửa thông tin một loại thuốc : Cho phép quản trị viên sửa các thông tin tên, mã , loại ,đơn vị tính , giá,

số lượng của một loại thuốc đã tồn tại

+ Xóa một loại thuốc : Cho phép quản trị viên xóa một loại thuốc

+ Tìm kiếm đơn thuốc : Cho phép quản trị viên tìm kiếm một đơn thuốc dựa mã thuốc

+ Hiển thị thông tin đơn thuốc : Cho phép quản trị viên xem thông tin chi tiết về tất cả đơn thuốc hoặc một đơn thuốc cụ thể

+Thống kê số lượng thuốc đã bán và doanh thu hiệu thuốc : Cho phép quản trị viên thống kê số lượng thuốc đã bán và doanh thu và xem thông tin về nó + Ngoài ra , còn tính toán hóa đơn và tổng doanh thu

VI Tự đánh giá , hạn chế

Ưu điểm :

+ Lưu trữ thông tin hiệu quả

+ Tính toán chuẩn xác , giảm khả năng thất thoát doanh thu

Trang 20

+ Dễ dàng tìm kiếm thông tin

+ Nội dung được làm đầy đủ , ngắn gọn dễ hiểu + Có sự tham gia nội dung đủ thành viên

Nhược điểm :

+ Có thể xảy ra lỗi kỹ thuật hoặc mất dữ liệu do tính năng bảo mật

+Thời gian làm bài tập nhóm chậm

Ngày đăng: 13/06/2024, 19:10

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w