You are on page 1of 58

LỜI CAM ĐOAN

Tôi xin cam đoan đề tài: “Xây dựng ứng dụng quản lý cửa hàng tạp hoá bằng
Flutter” là đồ án của riêng tôi. Trong quá trình thực hiện đồ án có sự tham khảo từ các
nguồn tài liệu có nguồn gốc rõ ràng cùng với sự hướng dẫn nhiệt tình của TS. Trần
Xuân Sang.
Các nội dung trong đồ án này đều là trung thực và không sao chép từ bất kỳ đồ
án nào khác. Tôi xin chịu mọi trách nhiệm về đồ án của mình.

Vinh, ngày 18 tháng 05 năm 2021


Sinh viên thực hiện

Phan Bảo Trung


MỤC LỤC
DANH MỤC BẢNG BIỂU........................................................................................v
DANH MỤC HÌNH VẼ, ĐỒ THỊ.............................................................................vi
LỜI CẢM ƠN............................................................................................................1
MỞ ĐẦU...................................................................................................................2
1. Lý do chọn đề tài................................................................................................2
2. Mục đích thực hiện.............................................................................................2
3. Phạm vi thực hiện...............................................................................................3
4. Nội dung thực hiện.............................................................................................3
4.1.. Đối với nhân viên.......................................................................................3
4.2.. Đối với quản lý...........................................................................................3
5. Cấu trúc đồ án....................................................................................................4
CHƯƠNG 1. BÀI TOÁN QUẢN LÝ CỬA HÀNG TẠP HOÁ................................5
1.1. Giới thiệu bài toán...........................................................................................5
1.2. Quy trình nghiệp vụ.........................................................................................5
1.2.1. Quy trình bán hàng...................................................................................6
1.2.2. Quy trình nhập hàng.................................................................................7
CHƯƠNG 2. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG..........................................8
2.1. Phân tích hệ thống...........................................................................................8
2.1.1. Đối với nhân viên.....................................................................................8
2.1.2. Đối với quản lý.........................................................................................8
2.1.3. Sơ đồ phân cấp chức năng........................................................................9
2.2. Các tác nhân..................................................................................................10
2.3. Biểu đồ use case............................................................................................11
2.3.1. Biểu đồ use case toàn hệ thống...............................................................11
2.3.2. Biểu đồ use case phân rã quản lý nhân viên...........................................12
2.3.3. Biểu đồ use case phân rã quản lý kho.....................................................12
2.3.4. Biểu đồ use case phân rã quản lý báo cáo..............................................13
2.3.5. Biểu đồ use case phân rã quản lý tài khoản...........................................13
2.4. Phân tích chi tiết các chức năng....................................................................13
2.4.1. Đối với nhân viên...................................................................................13
2.4.2. Đối với quản lý.......................................................................................16
2.5. Phác hoạ giao diện.........................................................................................20
2.5.1. Phác hoạ giao diện đăng nhập...............................................................20
2.5.2. Phác hoạ giao diện đổi mật khẩu...........................................................21
2.5.3. Phác hoạ giao diện tạo tài khoản...........................................................21
2.5.4. Phác hoạ giao diện màn hình chính.......................................................22
2.5.5. Phác hoạ giao diện danh sách mặt hàng................................................23
2.5.6. Phác hoạ giao diện mua hàng................................................................24
2.5.7. Phác hoạ giao diện giỏ hàng..................................................................25
2.5.8. Phác hoạ giao diện thêm mới sản phẩm.................................................26
2.5.9. Phác hoạ giao diện cập nhật sản phẩm..................................................27
2.5.10. Phác hoạ giao diện kho hàng...............................................................28
2.6. Cơ sở dữ liệu.................................................................................................28
2.6.1. Bảng nhân viên.......................................................................................28
2.6.2. Bảng người dùng....................................................................................29
2.6.3. Bảng sản phẩm.......................................................................................29
2.6.4. Bảng kho hàng........................................................................................30
2.6.5. Bảng chi tiết nhập kho............................................................................30
2.6.6. Bảng hóa đơn.........................................................................................30
2.6.7. Bảng chi tiết hóa đơn..............................................................................31
2.6.8. Bảng nhân viên nghỉ việc........................................................................31
CHƯƠNG 3. TRIỂN KHAI HỆ THỐNG................................................................33
3.1. Công nghệ sử dụng........................................................................................33
3.1.1. Ngôn ngữ lập trình Dart.........................................................................33
3.1.2. Flutter.....................................................................................................34
3.1.3. Firebase..................................................................................................35
3.1.4. GitHub....................................................................................................35
3.2. Kết quả đạt được...........................................................................................36
3.2.1. Giao diện đăng nhập..............................................................................36
3.2.2. Giao diện đổi mật khẩu..........................................................................37
3.2.3. Giao diện màn hình chính......................................................................38
3.2.4. Giao diện menu......................................................................................39
3.2.5. Giao diện thông tin tài khoản.................................................................40
3.2.6. Giao diện cập nhật thông tin tài khoản..................................................41
3.2.7. Giao diện kho hàng................................................................................42
3.2.8. Giao diện thêm sản phẩm.......................................................................43
3.2.9. Giao diện nhập kho sản phẩm................................................................44
3.2.10. Giao diện danh sách mặt hàng nhập kho..............................................45
3.2.11. Giao diện cập nhật thông tin sản phẩm................................................46
3.2.12. Giao diện bán hàng..............................................................................47
3.2.13. Giao diện giỏ hàng...............................................................................48
3.3.14. Giao diện thêm nhân viên.....................................................................49
KẾT LUẬN.............................................................................................................. 50
1. Kết quả đạt được..............................................................................................50
2. Tồn tại..............................................................................................................50
3. Hướng phát triển..............................................................................................50
TÀI LIỆU THAM KHẢO........................................................................................51
DANH MỤC BẢNG BIỂU

Bảng 2.1 Tác nhân....................................................................................................11


Bảng 2.2 Chức năng đăng nhập nhân viên...............................................................14
Bảng 2.3 Chức năng đăng xuất nhân viên................................................................14
Bảng 2.4 Chức năng đổi mật khẩu nhân viên...........................................................15
Bảng 2.5 Chức năng cập nhật thông tin nhân viên...................................................15
Bảng 2.6 Chức năng xem thông tin nhân viên..........................................................15
Bảng 2.7 Chức năng bán hàng..................................................................................16
Bảng 2.8 Chức năng đăng nhập quản lý...................................................................16
Bảng 2.9 Chức năng đăng xuất quản lý....................................................................17
Bảng 2.10 Chức năng đổi mật khẩu quản lý.............................................................17
Bảng 2.11 Chức năng quản lý nhân viên..................................................................18
Bảng 2.12 Chức năng quản lý báo cáo.....................................................................18
Bảng 2.13 Chức năng kiểm tra kho..........................................................................19
Bảng 2.14 Chức năng thêm sản phẩm......................................................................19
Bảng 2.15 Chức năng cập nhật thông tin sản phẩm..................................................19
Bảng 2.16 Chức năng nhập hàng..............................................................................20
Bảng 2.17 Bảng nhân viên.......................................................................................29
Bảng 2.18 Bảng người dùng.....................................................................................29
Bảng 2.19 Bảng sản phẩm........................................................................................30
Bảng 2.20 Bảng kho hàng........................................................................................30
Bảng 2.21 Bảng chi tiết nhập kho............................................................................30
Bảng 2.22 Bảng hoá đơn..........................................................................................31
Bảng 2.23 Bảng chi tiết hoá đơn..............................................................................31
Bảng 2.24 Bảng nhân viên nghỉ việc........................................................................32
DANH MỤC HÌNH VẼ, ĐỒ THỊ

Hình 1.1 Quy trình bán hàng......................................................................................6


Hình 1.2 Quy trình nhập hàng....................................................................................7
Hình 2.1 Sơ đồ phân cấp chức năng phía nhân viên...................................................9
Hình 2.2 Sơ đồ phân cấp chức năng phía quản lý.....................................................10
Hình 2.3 Biểu đồ use case toàn hệ thống..................................................................11
Hình 2.4 Biểu đồ use case phân rã quản lý nhân viên..............................................12
Hình 2.5 Biểu đồ use case phân rã quản lý kho........................................................12
Hình 2.6 Biểu đồ use case phân rã quản lý báo cáo..................................................13
Hình 2.7 Biểu đồ use case phân rã quản lý tài khoản...............................................13
Hình 2.8 Phác hoạ giao diện đăng nhập...................................................................20
Hình 2.9 Phác hoạ giao diện đổi mật khẩu...............................................................21
Hình 2.10 Phác hoạ giao diện tạo tài khoản.............................................................21
Hình 2.11 Phác hoạ giao diện màn hình chính.........................................................22
Hình 2.12 Phác hoạ giao diện danh sách mặt hàng...................................................23
Hình 2.13 Phác hoạ giao diện mua hàng..................................................................24
Hình 2.14 Phác hoạ giao diện giỏ hàng....................................................................25
Hình 2.15 Phác hoạ giao diện thêm mới sản phẩm...................................................26
Hình 2.16 Phác hoạ giao diện cập nhật sản phẩm.....................................................27
Hình 2.17 Phác hoạ giao diện kho hàng...................................................................28
Hình 3.1 Giao diện đăng nhập..................................................................................36
Hình 3.2 Giao diện đổi mật khẩu..............................................................................37
Hình 3.3 Giao diện màn hình chính..........................................................................38
Hình 3.4 Giao diện menu.........................................................................................39
Hình 3.5 Giao diện thông tin tài khoản....................................................................40
Hình 3.6 Giao diện cập nhật thông tin tài khoản......................................................41
Hình 3.7 Giao diện kho hàng....................................................................................42
Hình 3.8 Giao diện thêm sản phẩm..........................................................................43
Hình 3.9 Giao diện nhập kho sản phẩm....................................................................44
Hình 3.10 Giao diện danh sách mặt hàng nhập kho.................................................45
Hình 3.11 Giao diện cập nhật thông tin sản phẩm....................................................46
Hình 3.12 Giao diện bán hàng..................................................................................47
Hình 3.13 Giao diện giỏ hàng..................................................................................48
Hình 3.14 Giao diện thêm nhân viên........................................................................49
LỜI CẢM ƠN

Lời đầu tiên, em xin chân thành cảm ơn các thầy cô trong viện Kỹ thuật và
Công nghệ trường đại học Vinh đã luôn tâm huyết, tận tình chỉ dạy và truyền đạt cho
em những kiến thức cơ sở ngành quan trọng để em có thể nắm được kiến thức nền tảng
quan trọng trong quá trình học tập tại trường. Đây là cơ sở để em có thể tiếp tục tiếp
thu thêm các kiến thức chuyên sâu hơn để phục vụ cho công việc sau này.

Em cũng xin gửi lời cảm ơn chân thành và sâu sắc nhất tới giảng viên TS. Trần
Xuân Sang là giảng viên hướng dẫn, người đã trực tiếp hướng dẫn, góp ý, tận tình chỉ
bảo để em có thêm động lực và có thể hoàn thành được đề tài này.

Do thời gian thực hiện đồ án có hạn cộng thêm kiến thức của bản thân còn chưa
tích luỹ được nhiều cho nên báo cáo này của em không thể tránh khỏi nhiều khiếm
khuyết. Em mong nhận được sự nhận xét, góp ý của các thầy cô để em có thể hoàn
thiện hơn sản phẩm của mình và tích luỹ được thêm nhiều kinh nghiệm để chuẩn bị
cho tương lai sau này.

Em kính chúc quý thầy cô lời chúc sức khoẻ, thành công trong công việc để tiếp
tục dẫn dắt các thế hệ sinh viên ngành công nghệ thông tin trường đại học Vinh theo
đuổi đam mê của mình.

Em xin chân thành cảm ơn!

Vinh, ngày 18 tháng 05 năm 2021


Sinh viên thực hiện
MỞ ĐẦU
1. Lý do chọn đề tài
Với sự bùng nổ của ngành công nghệ thông tin trên toàn thế giới hiện nay, công
nghệ số đã hiện hữu trong hầu như tất cả mọi khía cạnh trong đời sống xủa con người.
Việc ứng dụng các thành tựu của lĩnh vực công nghệ thông tin vào các ngành nghề
khác ngày một phổ biến trong thời đại cách mạng công nghệ ngày nay đã mang lại
nhiều giá trị nhiều giá trị cho xã hội, cải thiện hiệu suất công việc và nâng cao năng
suất lao động.

Tuy hiện nay đã có không ít các cơ quan, doanh nghiệp lớn đầu tư số hóa các
quy trình sản xuất và quản lý của mình để tận dụng được tối đa các lợi thế mà nó mang
lại, tuy nhiên đối với các xí nghiệp nhỏ cũng như các hộ kinh doanh các cửa hàng nhỏ
lẻ thì việc này lại vẫn còn khá mới mẻ và chưa thực sự được quan tâm. Hầu hết đều sử
dụng các phương pháp quản lý, lưu trữ các thông tin trên giấy tờ theo cách truyền
thống dẫn đến có thể xảy ra nhiều sai sót, thất lạc các thông tin quan trọng cũng như
gây ra tình trạng trì trệ trong quá trình quản lý các thông tin này. Việc có một ứng
dụng quản lý dành cho các đối tượng người dùng này sử dụng sẽ tạo nên nhiều sự đổi
mới, cải thiện năng suất làm việc cũng như tăng hiệu quả công việc. Một ứng dụng
quản lý được cài đặt trên điện thoại thông minh có thể đáp ứng được tất cả các nhu cầu
của khách hàng, có thể tận dụng được các ưu thế tiện lợi của một chiếc điện thoại di
động, tối giản chi phí lắp đặt và sản xuất chứ không chiếm nhiều diện tích lắp đặt cũng
như chi phí đầu vào cao như các hệ thống được cài đặt trên các máy tính.

Được sự gợi ý và giúp đỡ của giáo viên hướng dẫn TS. Trần Xuân Sang, em đã
lựa chọn đề tài đồ án “Xây dựng ứng dụng quản lý cửa hàng tạp hóa bằng Flutter”
nhằm xây dựng một ứng dụng có thể đáp ứng được các nhu cầu của các chủ doanh
nghiệp nhỏ, nâng cao hiệu quả công việc và giảm bớt công sức cho họ, đồng thời qua
đó nắm bắt được xu thế lập trình ứng dụng di động đang ngày một phổ biến trên thị
trường hiện nay.

2. Mục đích thực hiện


Đề tài “Xây dựng ứng dụng quản lý cửa hàng tạp hóa bằng Flutter” được xây
dựng với các mục đích chính sau:
- Tìm hiểu ngôn ngữ lập trình Dart và bộ công cụ mã nguồn mở Flutter SDK
trong việc xây dựng ứng dụng di động đa nền tảng.
- Vận dụng các kiến thức cơ sở đã được học và những tài liệu tham khảo vào
việc thực hiện đề tài thực tế.
- Thiết kế và xây dựng một ứng dụng có tính thực tiễn, có thể đáp ứng các nhu
cầu thực tế của khách hàng góp phần tạo nên các giá trị tích cực cho cộng đồng và xã
hội.
3. Phạm vi thực hiện
Đề tài “Xây dựng ứng dụng quản lý cửa hàng tạp hóa bằng Flutter” được
nghiên cứu trong phạm vi:
- Phương pháp khảo sát: Nghiên cứu các hình thức kinh doanh bán hàng hiện
nay qua các kênh thông tin như khảo sát trực tiếp nhu cầu và mô hình quản lý cửa
hàng từ các chủ cửa hàng tạp hoá, khảo sát nhu cầu của người dùng qua các trang web,
các trang mạng xã hội.
- Tìm hiểu các phương pháp xây dựng ứng dụng di động, tham khảo các bài
viết, các bài phân tích về Flutter, các điểm mạnh điểm yếu và quy trình xây dựng ứng
dụng.
- Phân tích và thiết kế hệ thống
- Nghiên cứu các bản thiết kế ứng dụng di động trên nền tảng Flutter và tìm
hiểu các widget cơ bản để xây dựng nên ứng dụng.
4. Nội dung thực hiện
4.1.. Đối với nhân viên
- Hỗ trợ người dùng trong việc tra cứu thông tin sản phẩm trên hệ thống một
cách nhanh chóng và chính xác.
- Tự động lưu vết hoá đơn mỗi lần bán hàng trong cơ sở dữ liệu, tạo các báo cáo
bán hàng định kỳ.
- Nắm được mức lương hiện tại, các chế độ tiền thưởng, hoa hồng theo doanh
số bán hàng.
4.2.. Đối với quản lý
- Chủ cửa hàng sẽ quản lý được thông tin các nhân viên đang làm việc tại cửa
hàng.
- Có thể xem các báo cáo doanh thu định kỳ theo yêu cầu, xem được các hoá
đơn nhập hàng, nắm bắt được doanh số bán hàng của các nhân viên.
5. Cấu trúc đồ án
Ngoài phần mở đầu, kết luận báo cáo được chia ra thành ba phần chính:
Chương 1: Bài toán quản lý cửa hàng tạp hoá
Chương này trình bày bài toán quản lý cửa hàng tạp hoá, quy trình bán hàng,
tạo hoá đơn, nhập hàng.
Chương 2: Phân tích và thiết kế hệ thống
Chương này trình bày các chức năng chính của ứng dụng quản lý cửa hàng tạp
hoá, các tác nhân trong hệ thống, thiết kế cơ sở dữ liệu và phác hoạ giao diện.
Chương 3: Triển khai hệ thống
Chương này trình bày các thử nghiệm, các kết quả đạt được và hiển thị giao
diện sau khi cài đặt ứng dụng.
CHƯƠNG 1. BÀI TOÁN QUẢN LÝ CỬA HÀNG TẠP HOÁ

Chương này trình bày tính cần thiết của bài toán quản lý cửa hàng tạp hoá và
các quy trình nghiệp vụ trong quá trình bán hàng, nhập hàng, quản lý các nguồn lực
của cửa hàng, trình bày hướng giải quyết bài toán.
1.1. Giới thiệu bài toán
Bài toán được xây dựng trên hiện trạng thực tế của các cửa hàng tạp hoá. Các
quy trình bán hàng, nhập hàng của các cửa hàng thường chỉ được quản lý thông qua
các hình thức truyền thống như nhập sổ sách, lưu trữa qua các giấy tờ gây ra sự phức
tạp không nên có, đồng thời làm tăng khả năng sai sót và thất lạc các thông tin quan
trọng. Do đó, việc có một ứng dụng quản lý các vấn đề kể trên đối với các chủ cửa
hàng là điều rất cần thiết.
Chỉ với chiếc điện thoại thông minh đã được cài đặt ứng dụng quản lý, chủ cửa
hàng có thể dễ dàng kiểm soát được số lượng các mặt hàng hiện đang còn trong kho
cửa hàng, qua đó có thể đơn giản hoá quá trình kiểm hàng, nhập hàng từ các đơn vị
cung cấp hàng hoá, rút ngắn thời gian và giảm thiểu sai sót. Các thông tin về mặt hàng
mới có thể được cập nhật vào cơ sở dữ liệu một cách dễ dàng, đồng thời việc cập nhật
lại các thông tin về giá của các sản phẩm có thể tiến hành bất cứ lúc nào và sẽ được
đồng bộ ngay vào hệ thống.
Ứng dụng cho phép nhân viên bán hàng rút ngắn thời gian tính giá tiền sản
phẩm, chỉ cần lựa chọn mặt hàng và nhập vào số lượng là hệ thống sẽ tự động tính
toán số tiền khách hàng cần chi trả, tiết kiệm thời gian và đảm bảo không xảy ra sai
sót.
Đồng thời ứng dụng cho phép chủ cửa hàng dễ dàng cập nhật các thông tin về
mức lương, các chế độ tiền thưởng, hoa hồng cho nhân viên và nhân viên cũng có thể
dễ dàng tra cứu các thông tin này.
1.2. Quy trình nghiệp vụ
Hệ thống quản lý cửa hàng tạp hoá sẽ có hai quy trình sau:
- Quy trình bán hàng
- Quy trình nhập hàng
1.2.1. Quy trình bán hàng

Hình 1.1 Quy trình bán hàng

Khách hàng lựa chọn các mặt hàng muốn mua và mang ra quầy thanh toán,
nhân viên sẽ tiếp nhận các sản phẩm và lần lượt kiểm tra các thông tin về giá, số lượng
của từng sản phẩm, sau đó tính toán tổng giá trị của gói hàng và thông báo với khách
hàng.
Nếu khách hàng chấp nhận thanh toán sản phâm, nhân viên sẽ gói hàng cho
khách và nhận tiền từ khách hàng. Nhân viên sau đó sẽ ghi lại chi tiết thông tin của
đơn hàng vào sổ lưu trữ và giao hàng cho khách, đồng thời vào kho bổ sung lại các
mặt hàng đã được khách hàng thanh toán lên quầy hàng, sẵn sàng tiếp đón khách hàng
tiếp theo.
Nếu khách hàng từ chối thanh toán các sản phẩm đã chọn, khách hàng có thể
tiếp tục lựa chọn các sản phẩm khác tùy theo nhu cầu hoặc chấm dứt quá trình mua
hàng.
1.2.2. Quy trình nhập hàng

Hình 1.2 Quy trình nhập hàng

Người giao hàng mang các sản phẩm đã được chủ cửa hàng đặt trước và các sản
phẩm mới tới cửa hàng, nhân viên hoặc chủ cửa hàng sẽ tiếp nhận đơn hàng và tiến
hành kiểm tra lại các mặt hàng đã được giao. Các thông tin về số lượng, tên loai sản
phẩm, hạn sử dụng cũng như hiện trạng mặt hàng sẽ được kiểm tra cẩn thận. Chủ cửa
hàng sẽ quyết định các có nhập thêm các loại sản phẩm mới hay không. Sau khi chủ
cửa hàng xác nhận nhập hàng, các mặt hàng sẽ được thêm vào kho. Người giao hàng
tiến hành lập hóa đơn giao hàng, chủ cửa hàng thanh toán tiền hàng và nhận hóa đơn
giao hàng.
CHƯƠNG 2. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

Chương này trình bày các chức năng chính của ứng dụng quản lý cửa hàng tạp
hóa, các tác nhân trong hệ thống, sơ đồ use case, phác họa các giao diện chức năng và
mô hình cơ sở dữ liệu.
2.1. Phân tích hệ thống
2.1.1. Đối với nhân viên
Khi nhân viên cài đặt ứng dụng và sử dụng ứng dụng thì sẽ có các chức năng
sau:
- Chức năng đăng ký thành viên và đăng nhập hệ thống: Nhân viên có thể đăng
ký một tài khoản riêng của bản thâm, tài khoản này được sử dụng để lưu trữ thông tin
và đăng nhập vào hệ thống, các thông tin về lương thưởng sẽ được cài đặt mặc định
khi lần đầu đăng ký tài khoản và chỉ được sửa đổi bởi quản lý.
- Chức năng sửa đổi thông tin tài khoản: Nhân viên có thể lựa chọn tính năng
này để cập nhật lại các thông tin cá nhân nếu có sai sót trong quá trình đăng ký tài
khoản.
- Chức năng bán hàng: Nhân viên có thể truy cập vào toàn bộ các mặt hàng hiện
có trong cửa hàng, chọn lựa mặt hàng được khách hàng lựa chọn, nhập vào số lượng
các mặt hàng đó và thông báo giá tiền đã được ứng dụng tính toán và hiển thị ra màn
hình cho khách hàng, sau đó thu tiền từ khách hàng.
- Chức năng cập nhật thông tin sản phẩm: Nhân viên có thể lựa chọn các sản
phẩm cụ thể để tiến hành cập nhật các thông tin của sản phẩm đó. Các thông tin có thể
được sửa đổi bao gồm tên sản phẩm, giá thành và hình ảnh hiển thị của sản phẩm trong
hệ thống.
- Chức năng đăng xuất khỏi ứng dụng.
2.1.2. Đối với quản lý
Quản lý cửa hàng sẽ được cấp một tài khoản admin, sau đó quản lý có thể dùng
tài khoản admin này để đăng nhập vào ứng dụng với các chức năng quản trị sau:
- Chức năng quản lý tài khoản nhân viên trong hệ thống: Quản lý có thể thêm
sửa xóa các tài khoản nhân viên có trong hệ thống.
- Chức năng quản lý kho: Quản lý có thể kiểm tra tình trạng kho hàng, số lượng
tồn kho của các sản phẩm hiện có trong kho hàng. Sau đó quản lý có thể liệt kê danh
sách các sản phẩm cần nhập thêm hàng, liên hệ đặt hàng với các chủ hàng và lựa chọn
các mặt hàng mới cho cửa hàng.
- Chức năng quản lý nhân viên: Quản lý có thể thêm các nhân viên mới vào hệ
thống, cập nhật các thông tin về lương thưởng cho nhân viên, xóa các nhân viên đã
không còn làm việc tại cửa hàng ra khỏi hệ thống.
- Chức năng quản lý báo cáo: Quản lý có thể theo dõi báo cáo về các hoạt động
của cửa hàng như chi tiết các lần nhập kho, báo cáo doanh thu theo chu kỳ hàng ngày,
tuần, tháng, năm.
2.1.3. Sơ đồ phân cấp chức năng
Sơ đồ phía nhân viên

Hình 2.3 Sơ đồ phân cấp chức năng phía nhân viên


Sơ đồ phía quản lý

Hình 2.4 Sơ đồ phân cấp chức năng phía quản lý

2.2. Các tác nhân


Các tác nhân của hệ thống được mô tả như sau:

Tác nhân Mô tả

- Có quyền đăng nhập vào ứng dụng.


- Thêm, sửa, xóa tài khoản nhân viên.
- Quản lý kho hàng, quản lý nhập hàng.
- Sửa đổi thông tin các sản phẩm có
Quản trị viên trong kho hàng.
- Quản lý thông tin nhân viên, lương
thưởng.
- Xem các báo cáo doanh thu, báo cáo
nhập hàng của cửa hàng.
- Có quyền đăng nhập vào ứng dụng.
Nhân viên - Có quyền cập nhật thông tin cá nhân.
- Truy cập vào
Bảng 2.1 Tác nhân

2.3. Biểu đồ use case


2.3.1. Biểu đồ use case toàn hệ thống

Hình 2.5 Biểu đồ use case toàn hệ thống


2.3.2. Biểu đồ use case phân rã quản lý nhân viên

Hình 2.6 Biểu đồ use case phân rã quản lý nhân viên

2.3.3. Biểu đồ use case phân rã quản lý kho

Hình 2.7 Biểu đồ use case phân rã quản lý kho


2.3.4. Biểu đồ use case phân rã quản lý báo cáo

Hình 2.8 Biểu đồ use case phân rã quản lý báo cáo

2.3.5. Biểu đồ use case phân rã quản lý tài khoản

Hình 2.9 Biểu đồ use case phân rã quản lý tài khoản

2.4. Phân tích chi tiết các chức năng


2.4.1. Đối với nhân viên
a. Chức năng đăng nhập
Mô tả Đăng nhập vào ứng dụng thông qua tài khoản nhân viên.

Khi nhân viên chạm vào nút đăng nhập trên màn hình đăng nhập
Đầu vào
của ứng dụng.

Ứng dụng sẽ yêu cầu nhân viên nhập vào các thông tin được yêu
cầu gồm email đã đăng ký tài khoản, mật khẩu.
Quá trình xử lý Nếu các thông tin được điền đầy đủ và hợp lệ thì tiến hành đăng
nhập vào ứng dụng, nếu không thì ứng dụng thông báo lỗi và yêu
cầu nhân viên thực hiện lại thao tác.

Ứng dụng chuyển sang màn hình chính nếu đăng nhập thành công
Đầu ra
hoặc đẩy ra thông báo đăng nhập thất bại.
Bảng 2.2 Chức năng đăng nhập nhân viên

b. Chức năng đăng xuất

Mô tả Đăng xuất tài khoản hiện tại khỏi ứng dụng.

Khi nhân viên chạm vào nút đăng xuất trên màn hình chính của
Đầu vào
ứng dụng.

Ứng dụng sẽ huỷ phiên đăng nhập của tài khoản hiện đang đăng
Quá trình xử lý nhập vào ứng dụng, và chuyển ứng dụng sang màn hình đăng
nhập.

Đầu ra Ứng dụng chuyển về màn hình đăng nhập.


Bảng 2.3 Chức năng đăng xuất nhân viên

c. Chức năng đổi mật khẩu

Mô tả Đổi mật khẩu tài khoản nhân viên.

Khi nhân viên chạm vào nút đổi mật khẩu trên màn hình thông tin
Đầu vào
tài khoản của ứng dụng.

Quá trình xử lý Ứng dụng sẽ yêu cầu nhân viên nhập vào các thông tin được yêu
cầu gồm mật khẩu hiện tại và mật khẩu mới.
Nếu mật khẩu hiện tại của tài khoản được nhập đúng và mật khẩu
mới hợp lệ với yêu cầu thì tiến hành đổi mật khẩu.

Ứng dụng thông báo mật khẩu đã đổi thành công hoặc thông báo
Đầu ra
lỗi.
Bảng 2.4 Chức năng đổi mật khẩu nhân viên

d. Chức năng cập nhật thông tin

Mô tả Cập nhật thông tin tài khoản của nhân viên.

Khi nhân viên chạm vào nút cập nhật thông tin trên màn hình
Đầu vào
thông tin tài khoản của ứng dụng.

Ứng dụng sẽ yêu cầu nhân viên nhập vào các thông tin được yêu
cầu như tên nhân viên, số điện thoại, email, địa chỉ, giới tính,
ngày sinh.
Quá trình xử lý
Nếu các thông tin được điền đầy đủ và hợp lệ thì tiến hành cập
nhật thông tin tài khoản, nếu không thì ứng dụng thông báo lỗi và
yêu cầu nhân viên thực hiện lại thao tác.

Đầu ra Thông báo cập nhật thành công hoặc thông báo lỗi.
Bảng 2.5 Chức năng cập nhật thông tin nhân viên

e. Chức năng xem thông tin

Mô tả Hiển thị thông tin nhân viên.

Khi nhân viên chạm vào nút thông tin tài khoản trên màn hình
Đầu vào
chính của ứng dụng.

Ứng dụng sẽ hiển thị các thông tin của nhân viên gồm tên nhân
Quá trình xử lý viên, số điện thoại, email, địa chỉ, giới tính, ngày sinh, mức
lương.

Đầu ra Màn hình hiển thị thông tin nhân viên.


Bảng 2.6 Chức năng xem thông tin nhân viên

f. Chức năng bán hàng

Mô tả Liệt kê các mặt hàng được chọn và tính toán tổng giá trị gói hàng,
tạo hoá đơn bán hàng.

Khi nhân viên chạm vào nút bán hàng trên màn hình chính của
Đầu vào
ứng dụng.

Ứng dụng sẽ hiển thị danh sách các mặt hàng hiện có trong cửa
hàng. Nhân viên tìm kiếm các mặt hàng đã được khách hàng lựa
chọn và nhập vào số lượng. Ứng dụng sẽ tính toán tổng giá trị gói
hàng và hiển thị ra màn hình.
Quá trình xử lý Nếu nhân viên xác nhận bán hàng thì ứng dụng sẽ tạo hoá đơn
bán hàng đồng thời giảm số lượng tồn kho của các mặt hàng
tương ứng với số lượng nhân viên đã nhập vào trước đó.
Nếu nhân viên huỷ bỏ thao tác thì ứng dụng sẽ xoá thông tin về
giỏ hàng và trở về màn hình lựa chọn sản phẩm.

Ứng dụng chuyển sang màn hình chính nếu đăng nhập thành công
Đầu ra
hoặc đẩy ra thông báo đăng nhập thất bại.
Bảng 2.7 Chức năng bán hàng

2.4.2. Đối với quản lý


a. Chức năng đăng nhập

Mô tả Đăng nhập vào ứng dụng thông qua tài khoản quản trị.

Khi quản lý chạm vào nút đăng nhập trên màn hình đăng nhập
Đầu vào
của ứng dụng.

Ứng dụng sẽ yêu cầu quản lý nhập vào các thông tin được yêu
cầu gồm email đã đăng ký tài khoản, mật khẩu.
Quá trình xử lý Nếu các thông tin được điền đầy đủ và hợp lệ thì tiến hành đăng
nhập vào ứng dụng, nếu không thì ứng dụng thông báo lỗi và yêu
cầu thực hiện lại thao tác.

Ứng dụng chuyển sang màn hình chính nếu đăng nhập thành công
Đầu ra
hoặc đẩy ra thông báo đăng nhập thất bại.
Bảng 2.8 Chức năng đăng nhập quản lý

b. Chức năng đăng xuất


Mô tả Đăng xuất tài khoản hiện tại khỏi ứng dụng.

Khi quản lý chạm vào nút đăng xuất trên màn hình chính của ứng
Đầu vào
dụng.

Ứng dụng sẽ huỷ phiên đăng nhập của tài khoản hiện đang đăng
Quá trình xử lý nhập vào ứng dụng, và chuyển ứng dụng sang màn hình đăng
nhập.

Đầu ra Ứng dụng chuyển về màn hình đăng nhập.


Bảng 2.9 Chức năng đăng xuất quản lý

c. Chức năng đổi mật khẩu

Mô tả Đổi mật khẩu tài khoản quản trị.

Khi quản lý chạm vào nút đổi mật khẩu trên màn hình thông tin
Đầu vào
tài khoản của ứng dụng.

Ứng dụng sẽ yêu cầu quản lý nhập vào các thông tin được yêu
cầu gồm mật khẩu hiện tại và mật khẩu mới.
Quá trình xử lý
Nếu mật khẩu hiện tại của tài khoản được nhập đúng và mật khẩu
mới hợp lệ với yêu cầu thì tiến hành đổi mật khẩu.

Ứng dụng thông báo mật khẩu đã đổi thành công hoặc thông báo
Đầu ra
lỗi.
Bảng 2.10 Chức năng đổi mật khẩu quản lý

d. Chức năng quản lý nhân viên

Mô tả Thêm, sửa, xoá tài khoản nhân viên.

Khi quản lý chạm vào nút cập nhật thông tin trên màn hình danh
Đầu vào
sách nhân viên của ứng dụng.

Quá trình xử lý Ứng dụng sẽ cung cấp các tính năng thêm, sửa, xoá nhân viên cho
quản lý lựa chọn.
Nếu quản lý chọn thêm nhân viên, ứng dụng sẽ chuyển sang màn
hình tạo tài khoản nhân viên mới, màn hình này sẽ yêu cầu các
thông tin cơ bản như email, mật khẩu, tên nhân viên. Các thông
tin khác có thể được cập nhật sau.
Nếu quản lý chọn cập nhật thông tin cho nhân viên, ứng dụng sẽ
chuyển qua màn hình cập nhật thông tin nhân viên.
Nếu chọn tính năng xoá nhân viên, quản lý có thể lựa chọn xoá
các nhân viên đã chọn, thông tin về nhân viên sẽ được lưu lại và
tiến hành xoá tài khoản nhân viên.

Đầu ra Thông báo thành công hoặc thất bại.


Bảng 2.11 Chức năng quản lý nhân viên

e. Chức năng quản lý báo cáo

Mô tả Hiển thị các báo cáo của cửa hàng.

Khi quản lý chạm vào nút báo cáo trên màn hình chính của ứng
Đầu vào
dụng.

Ứng dụng sẽ hiện ra các tuỳ chọn báo cáo doanh thu hoặc báo cáo
nhập kho cho quản lý lựa chọn.
Báo cáo doanh thu sẽ hiển thị doanh thu của cửa hàng theo ngày,
Quá trình xử lý
tuần, tháng hoặc năm.
Báo cáo nhập kho sẽ hiển thị thông tin các lần nhập hàng của cửa
hàng.

Đầu ra Màn hình hiển thị báo cáo của cửa hàng.
Bảng 2.12 Chức năng quản lý báo cáo

f. Chức năng kiểm tra kho

Hiển thị thông tin số lượng các mặt hàng hiện đang có trong cửa
Mô tả
hàng.

Khi quản lý chạm vào nút tồn kho trên màn hình chính của ứng
Đầu vào
dụng.

Ứng dụng sẽ hiển thị danh sách các mặt hàng đang có trong cửa
Quá trình xử lý hàng, kèm theo đó là thông tin chi tiết về sản phẩm và số lượng
hiện có của các mặt hàng đó.
Đầu ra Màn hình hiển thị số lượng tồn kho của các mặt hàng.
Bảng 2.13 Chức năng kiểm tra kho

g. Chức năng thêm sản phẩm mới

Mô tả Thêm các mặt hàng mới vào cơ sở dữ liệu.

Khi quản lý chọn thêm sản phẩm mới trên màn hình chính của
Đầu vào
ứng dụng.

Ứng dụng sẽ hiển thị màn hình thêm mới sản phẩm gồm các
trường nhập liệu để quản lý có thể thêm các thông tin về sản
phẩm như tên sản phẩm, giá thành, số lượng và ảnh minh hoạ sản
Quá trình xử lý
phẩm.
Sau khi quản lý xác nhận thao tác, ứng dụng sẽ thêm mới sản
phẩm vào cơ sở dữ liệu.

Đầu ra Thông báo thành công hoặc báo lỗi.


Bảng 2.14 Chức năng thêm sản phẩm

h. Chức năng cập nhật thông tin sản phẩm

Mô tả Cập nhật thông tin các mặt hàng hiện đang có trong cửa hàng.

Khi quản lý chạm vào nút cập nhật trên màn hình tồn kho của ứng
Đầu vào
dụng.

Ứng dụng sẽ hiển thị thông tin chi tiết về mặt hàng đã được chọn,
Quá trình xử lý quản lý có thể tiến hành chỉnh sửa các thông tin đó và xác nhận
lựa chọn của mình để lưu lại thông tin trên vào cơ sở dữ liệu.

Đầu ra Thông báo thành công hoặc báo lỗi.


Bảng 2.15 Chức năng cập nhật thông tin sản phẩm

i. Chức năng nhập hàng

Mô tả Bổ sung số lượng các mặt hàng vào cửa hàng.

Khi quản lý chạm vào nút nhập kho trên màn hình tồn kho của
Đầu vào
ứng dụng.
Ứng dụng sẽ hiển thị thông tin và số lượng các mặt hàng hiện
đang có trong cửa hàng, quản lý có thể lựa chọn các mặt hàng cần
thiết để tiến hành bổ sung thêm số lượng của chúng.
Quá trình xử lý
Nếu quản lý muốn thêm mới một sản phẩm nào đó chưa có sẵn
trong cửa hàng thì ứng dụng có cung cấp một nút thêm mới mà
khi được chọn nó sẽ mở ra một màn hình thêm mới sản phẩm.

Đầu ra Thông báo thành công hoặc báo lỗi.


Bảng 2.16 Chức năng nhập hàng

2.5. Phác hoạ giao diện


2.5.1. Phác hoạ giao diện đăng nhập

Hình 2.10 Phác hoạ giao diện đăng nhập


2.5.2. Phác hoạ giao diện đổi mật khẩu

Hình 2.11 Phác hoạ giao diện đổi mật khẩu

2.5.3. Phác hoạ giao diện tạo tài khoản

Hình 2.12 Phác hoạ giao diện tạo tài khoản


2.5.4. Phác hoạ giao diện màn hình chính

Hình 2.13 Phác hoạ giao diện màn hình chính


2.5.5. Phác hoạ giao diện danh sách mặt hàng

Hình 2.14 Phác hoạ giao diện danh sách mặt hàng
2.5.6. Phác hoạ giao diện mua hàng

Hình 2.15 Phác hoạ giao diện mua hàng


2.5.7. Phác hoạ giao diện giỏ hàng

Hình 2.16 Phác hoạ giao diện giỏ hàng


2.5.8. Phác hoạ giao diện thêm mới sản phẩm

Hình 2.17 Phác hoạ giao diện thêm mới sản phẩm
2.5.9. Phác hoạ giao diện cập nhật sản phẩm

Hình 2.18 Phác hoạ giao diện cập nhật sản phẩm
2.5.10. Phác hoạ giao diện kho hàng

Hình 2.19 Phác hoạ giao diện kho hàng

2.6. Cơ sở dữ liệu
2.6.1. Bảng nhân viên
- Mục đích: dùng để lưu trữ thông tin nhân viên của cửa hàng
- Tên bảng trong cơ sở dữ liệu: STAFFS

STT Tên trường Diễn giải Kiểu Ràng buộc

1 Id Mã nhân viên String Khóa chính

2 Name Tên nhân viên String

3 Address Địa chỉ String

4 Phone Số điện thoại String

5 Salary Lương Double


Bảng 2.17 Bảng nhân viên

2.6.2. Bảng người dùng


- Mục đích: dùng để lưu trữ thông tin các tài khoản của hệ thống
- Tên bảng trong cơ sở dữ liệu: USERS

STT Tên trường Diễn giải Kiểu Ràng buộc

1 Id Mã tài khoản String Khóa chính

2 Username Tên tài khoản String

3 Email Email đăng ký String

4 Role Phân quyền String

5 StaffId Mã nhân viên String Liên kết bảng staffs


Bảng 2.18 Bảng người dùng

2.6.3. Bảng sản phẩm


- Mục đích: dùng để lưu trữ thông tin sản phẩm
- Tên bảng trong cơ sở dữ liệu: PRODUCTS

STT Tên trường Diễn giải Kiểu Ràng buộc

1 Id Mã sản phẩm String Khóa chính

2 Name Tên sản phẩm String


3 Price Giá tiền String

4 Image Ảnh sản phẩm String

5 Amount Số lượng int


Bảng 2.19 Bảng sản phẩm

2.6.4. Bảng kho hàng


- Mục đích: dùng để lưu trữ thông tin các lần nhập kho hàng
- Tên bảng trong cơ sở dữ liệu: REPOSITORY

STT Tên trường Diễn giải Kiểu Ràng buộc

1 Id Mã kho String Khóa chính

2 Time Ngày nhập String


Bảng 2.20 Bảng kho hàng

2.6.5. Bảng chi tiết nhập kho


- Mục đích: dùng để lưu trữ thông tin chi tiết các lần nhập kho
- Tên bảng trong cơ sở dữ liệu: REPOSITORYDETAIL

STT Tên trường Diễn giải Kiểu Ràng buộc

1 RepositoryId Mã kho String Khóa chính, liên kết


bảng Repository

2 ProductId Mã sản phẩm String Khóa chính, liên kết


bảng Products

3 Import Số lượng nhập int

4 Available Số lượng tồn kho String

5 Price Tổng tiền Double


Bảng 2.21 Bảng chi tiết nhập kho

2.6.6. Bảng hóa đơn


- Mục đích: dùng để lưu trữ thông tin hóa đơn bán hàng
- Tên bảng trong cơ sở dữ liệu: BILLS

STT Tên trường Diễn giải Kiểu Ràng buộc

1 Id Mã hóa đơn String Khóa chính

2 StaffId Mã nhân viên String Liên kết bảng staffs

3 Time Thời gian String

4 Price Tổng tiền Double


Bảng 2.22 Bảng hoá đơn

2.6.7. Bảng chi tiết hóa đơn


- Mục đích: dùng để lưu trữ thông tin chi tiết hóa đơn bán hàng
- Tên bảng trong cơ sở dữ liệu: BILLDETAILS

STT Tên trường Diễn giải Kiểu Ràng buộc

1 BillId Mã hóa đơn String Khóa chính, liên kết


bảng Bills

2 ProductId Mã sản phẩm String Khóa chính, liên kết


bảng Products

3 Amount Số lượng sản phẩm String

4 Price Tổng tiền Double


Bảng 2.23 Bảng chi tiết hoá đơn

2.6.8. Bảng nhân viên nghỉ việc


- Mục đích: dùng để lưu trữ thông tin nhân viên đã nghỉ việc tại cửa hàng
- Tên bảng trong cơ sở dữ liệu: RETỈEDSTAFFS

STT Tên trường Diễn giải Kiểu Ràng buộc

1 Id Mã nhân viên String Khóa chính

2 Name Tên nhân viên String


3 Address Địa chỉ String

4 Phone Số điện thoại String


Bảng 2.24 Bảng nhân viên nghỉ việc
CHƯƠNG 3. TRIỂN KHAI HỆ THỐNG

Chương này trình bày về ngôn ngữ lập trình, công nghệ sử dụng để xây dựng
sản phẩm và kết quả sau khi cài đặt chương trình.
Trong phạm vi đề tài, em lựa chọn sử dụng ngôn ngữ lập trình Dart và
framework Flutter để xây dựng ứng dụng, quản lý cơ sở dữ liệu với Firebase và quản
lý mã nguồn bằng GitHub.
3.1. Công nghệ sử dụng
3.1.1. Ngôn ngữ lập trình Dart
a. Dart là gì
Dart là một ngôn ngữ lập trình mã nguồn mở, hướng đối tượng với cú pháp kiểu
C được phát triển bởi Google vào năm 2011. Mục đích của ngôn ngữ lập trình Dart là
tạo giao diện người dùng frontend cho các ứng dụng web và di động. Nó đang được
phát triển tích cực, được biên dịch thành mã máy gốc để xây dựng các ứng dụng di
động, lấy cảm hứng từ các ngôn ngữ lập trình khác như Java, JavaScript, C#. Vì Dart
là một ngôn ngữ được biên dịch nên bạn không thể thực thi mã của mình trực tiếp,
thay vào đó, trình biên dịch phân tích cú pháp và chuyển nó thành mã máy.
Nó hỗ trợ hầu hết các khái niệm phổ biến về ngôn ngữ lập trình như class,
interface, hàm. Không giống như các ngôn ngữ lập trình khác, Dart không hỗ trợ cấu
trúc dữ liệu kiểu mảng. Nó hỗ trợ collection, được sử dụng để sao chép cấu trúc dữ
liệu khác như mảng, vv.
b. Tại sao nên học Dart
Dart là ngôn ngữ lập trình được Google phát triển, nó được sử dụng để tạo nên
các ứng dụng chất lượng cao, đáp ứng yêu cầu người dùng trên mọi nền tảng. Dart có
thể được sử dụng để phát triển các ứng dụng di động đa nền tảng và cả các ứng dụng
trên nền tảng web.
Với việc có cú pháp khá tương đồng với các ngôn ngữ lập trình tiền nhiệm phổ
biến như Java, C#... Dart rất dễ để làm quen, người học chỉ cần một thời gian ngắn để
có thể làm quen với Dart và bắt đầu phát triển các sản phẩm của mình.
Dart là ngôn ngữ lập trình mã nguồn mở. Người dùng có thể dễ dàng tìm ra các
thư viện, các mã nguồn của Dart một cách vô cùng dễ dàng. Hầu như các tác vụ phổ
biến trong phát triển ứng dụng đều đã có sẵn các thư viện miễn phí với đầy đủ tính
năng cho lập trình viên lựa chọn, giảm thiểu công sức của lập trình viên và rút ngắn
thời gian cũng như chi phí phát triển ứng dụng.
Dart hiện đang là một xu thế lập trình trong giai đoạn hiện nay. Nó sở hữu cho
mình một cộng đồng đang ngày một lớn mạnh, và vẫn luôn nhận được sự quan tâm,
chăm sóc từ phía Google.
c. Các ưu điểm của Dart
Dart mang lại hiệu suất cao cho việc phát triển ứng dụng. Cú pháp rõ ràng, ngắn
gọn, hỗ trợ phát hiện các lỗi sai sớm cho lập trình viên. Nó được hỗ trợ bởi một kho
tàng thư viện đồ sộ từ cộng đồng nhờ vào tính mở của nó.
Dart cung cấp tối ưu hóa việc biên dịch trước thời hạn để có được dự đoán hiệu
suất cao và khởi động nhanh trên các thiết bị di động và web.
Dart có thể xây dựng được các ứng dụng đa nền tảng.
Dart sở hũu cú pháp quen thuộc, đơn giản, dễ dàng làm quen cho người mới.
3.1.2. Flutter
a. Flutter là gì
Flutter là một khung giao diện người dùng di động miễn phí và mã nguồn mở
do Google tạo ra và phát hành vào tháng 5 năm 2017. Nói một cách dễ dàng, nó cho
phép bạn tạo một ứng dụng di động gốc chỉ với một mã nguồn. Điều này có nghĩa là
bạn có thể sử dụng một ngôn ngữ lập trình và một mã nguồn để tạo hai ứng dụng khác
nhau (cho iOS và Android).
Flutter bao gồm hai phần quan trọng:
 SDK (Bộ công cụ phát triển phần mềm): Một bộ sưu tập các công cụ sẽ giúp
bạn phát triển các ứng dụng của mình. Điều này bao gồm các công cụ để biên
dịch mã của bạn thành mã máy gốc (mã cho iOS và Android).
  Framework  (Thư viện giao diện người dùng): Một tập hợp các yếu tố giao
diện người dùng có thể tái sử dụng (nút, đầu vào văn bản, thanh trượt, v.v.) mà
bạn có thể cá nhân hóa theo nhu cầu của riêng mình.
b. Tại sao nên học Flutter
Đơn giản để tìm hiểu và sử dụng
Flutter là một khuôn khổ hiện đại, và bạn có thể cảm nhận nó! Việc tạo các ứng
dụng di động với nó đơn giản hơn nhiều. Nếu bạn đã sử dụng Java, Swift hoặc React
Native, bạn sẽ nhận thấy Flutter khác nhau như thế nào. Cá nhân tôi chưa bao giờ thích
phát triển ứng dụng di động trước khi bắt đầu sử dụng Flutter. Điều tôi yêu thích ở
Flutter là bạn có thể tạo một ứng dụng gốc thực sự mà không cần một loạt mã.
Biên dịch nhanh: năng suất tối đa
Nhờ Flutter, bạn có thể thay đổi mã của mình và xem kết quả trong thời gian
thực. Nó được gọi là Hot-Reload. Chỉ mất một khoảng thời gian ngắn sau khi bạn lưu
để cập nhật chính ứng dụng.
Các sửa đổi đáng kể buộc bạn phải tải lại ứng dụng. Nhưng nếu bạn làm việc như thiết
kế, ví dụ, và thay đổi kích thước của một yếu tố, đó là trong thời gian thực!
Được hỗ trợ bởi Android Studio và VS Code
Flutter có sẵn trên các IDEs khác nhau. Hai trình chỉnh sửa mã chính để phát
triển với công nghệ này là Android Studio (IntelliJ) và VS Code.
Android Studio là một phần mềm hoàn chỉnh với mọi thứ đã được tích hợp. Bạn
phải tải xuống các plugin Flutter và Dart để bắt đầu.
VS Code là một công cụ nhẹ và mọi thứ đều có thể cấu hình thông qua các
plugin từ thị trường.
 Hiện tại, Flutter đã chính thức cho phép phát triển Front end cho Web. Bây giờ,
nó cạnh tranh trực tiếp, toàn diện với React.
3.1.3. Firebase
Firebase là một nền tảng phát triển phần mềm được ra mắt vào năm 2011 bởi
Firebase inc và được Google mua lại vào năm 2014. Bắt đầu như một cơ sở dữ liệu
thời gian thực. Toàn bộ nền tảng là giải pháp phụ trợ như một dịch vụ cho cả ứng dụng
di động và ứng dụng dựa trên web, bao gồm các dịch vụ xây dựng, thử nghiệm và
quản lý ứng dụng.
3.1.4. GitHub
GitHub là một dịch vụ nổi tiếng cung cấp kho lưu trữ mã nguồn Git cho các dự
án phần mềm. Github có đầy đủ những tính năng của Git, ngoài ra nó còn bổ sung
những tính năng về social để các developer tương tác với nhau.
Vài thông tin về GIT:
 Là công cụ giúp quản lý source code tổ chức theo dạng dữ liệu phân tán.
 Giúp đồng bộ source code của team lên 1 server.
 Hỗ trợ các thao tác kiểm tra source code trong quá trình làm việc.
3.2. Kết quả đạt được
3.2.1. Giao diện đăng nhập

Hình 3.20 Giao diện đăng nhập


3.2.2. Giao diện đổi mật khẩu

Hình 3.21 Giao diện đổi mật khẩu


3.2.3. Giao diện màn hình chính

Hình 3.22 Giao diện màn hình chính


3.2.4. Giao diện menu

Hình 3.23 Giao diện menu


3.2.5. Giao diện thông tin tài khoản

Hình 3.24 Giao diện thông tin tài khoản


3.2.6. Giao diện cập nhật thông tin tài khoản

Hình 3.25 Giao diện cập nhật thông tin tài khoản
3.2.7. Giao diện kho hàng

Hình 3.26 Giao diện kho hàng


3.2.8. Giao diện thêm sản phẩm

Hình 3.27 Giao diện thêm sản phẩm


3.2.9. Giao diện nhập kho sản phẩm

Hình 3.28 Giao diện nhập kho sản phẩm


3.2.10. Giao diện danh sách mặt hàng nhập kho

Hình 3.29 Giao diện danh sách mặt hàng nhập kho
3.2.11. Giao diện cập nhật thông tin sản phẩm

Hình 3.30 Giao diện cập nhật thông tin sản phẩm
3.2.12. Giao diện bán hàng

Hình 3.31 Giao diện bán hàng


3.2.13. Giao diện giỏ hàng

Hình 3.32 Giao diện giỏ hàng


3.3.14. Giao diện thêm nhân viên

Hình 3.33 Giao diện thêm nhân viên


KẾT LUẬN

Sau thời gian tìm hiểu, hình thành ý tưởng, thiết kế và xây dựng ứng dụng, mặc
dù chưa thật sự hoàn thiện ứng dụng như dự tính nhưng em cũng đã hoàn thành được
các chức năng cơ bản của đề tài.
1. Kết quả đạt được
- Xây dựng được ứng dụng quản lý cửa hàng tạp hoá với các tính năng cơ bản
thiết yếu.
- Tìm hiểu và áp dụng được các kiến thức về ngôn ngữ lập trình Dart cũng như
framework Flutter vào việc xây dựng ứng dụng di động.
- Tìm hiểu được cách xây dựng một ứng dụng di động, thiết kế và tuỳ chỉnh
giao diện ứng dụng.
- Hoàn thành đề tài đúng tiến độ.
2. Tồn tại
- Ứng dụng chưa thật sự hoàn thiện để có thể dùng thực tế.
- Cơ sở dữ liệu còn đơn giản, chưa thể đưa vào áp dụng trong thực tế.
3. Hướng phát triển
- Cải thiện giao diện người dùng, nâng cao trải nghiệm của khách hàng.
- Xử lý các lỗi còn tồn đọng, cải thiện hiệu năng xử lý của hệ thống.
- Phân tích bổ sung vào thiết kế cơ sở dữ liệu, đáp ứng khả năng áp dụng vào
thực tế trong tương lai.
- Phát triển ứng dụng theo chiều hướng đa dạng hoá các đối tượng khách hàng,
không chỉ tập trung vào các cửa hàng tạp hoá.
TÀI LIỆU THAM KHẢO

[1] “Flutter documentation”, link: https://flutter.dev/docs (truy cập


20/05/2021).
[2] “FlutterFirebase“, link: https://firebase.flutter.dev/docs/overview (truy cập
20/05/2021).
[3] “Tự học Flutter”, link: Tự học Flutter 2020 - YouTube (truy cập
20/05/2021).
[4] “Dart documentation”, link: https://dart.dev/guides (truy cập 20/04/2021).
[5] “Flutter packages”, link: https://pub.dev/ (truy cập 20/05/2021).

You might also like