TỔNG QUAN
Tổng quan đề tài
Sinh viên tại Đại học Đà Nẵng, đặc biệt là tại trường Đại học Sư Phạm Kỹ Thuật – Đà Nẵng, đã trải qua những năm học đáng nhớ và dần hiểu rõ hơn về cuộc sống xa nhà.
Chúng em luôn tận dụng mọi thứ có thể tái sử dụng, từ đồ dùng cũ còn tốt đến tài liệu của các khóa trước và nhiều món đồ cũ khác Điều đặc biệt là những vật dụng này vẫn còn sử dụng hiệu quả và có thể dùng nhiều lần, trong khi chi phí thường rẻ hơn so với thị trường.
Và một xu hướng trong vài năm trở lại đây, “ thị trường mua bán đồ cũ cũng đang trở nên tăng lên” – theo Báo Tuổi Trẻ online.
Hiện nay, mạng xã hội đã xuất hiện nhiều nhóm và trang về việc mua bán đồ cũ, cùng với việc trao đổi qua bạn bè và người quen Ngoài ra, một số website như http://thanhlydocu.net.vn/, http://thanhlyhangcu.vn/, và http://sieuthihangcu.net/ cũng đã được phát triển để phục vụ nhu cầu này.
Tuy nhiên, việc kiểm tra thông tin về món đồ đã được trao đổi hay chưa gặp nhiều khó khăn, và mỗi lần tìm kiếm bài đăng, bài viết sẽ dễ bị "trôi" mất, cùng với nhiều vấn đề khác phát sinh.
Dựa trên khảo sát và ý tưởng đã nêu, tôi quyết định chọn đề tài “Xây dựng website chợ trao vặt, trao đổi/mua bán đồ cũ” nhằm phục vụ cộng đồng sinh viên trường Đại học Sư phạm Kỹ thuật.
Mục đích đề tài
Tin học hóa ở những bước nào?
Xây dựng một website giúp sinh viên dễ dàng trao đổi và bán những món đồ cũ còn sử dụng tốt cho bạn bè trong trường Ngoài ra, trang web cũng hỗ trợ chia sẻ tài liệu học tập hữu ích, tạo điều kiện cho sinh viên tiết kiệm chi phí và nâng cao chất lượng học tập.
Sinh viên có thể dễ dàng kết nối và trao đổi với nhau thông qua website, thay vì phải tìm kiếm thông tin trên các diễn đàn hay nhóm với chi phí vận chuyển cao Điều này giúp đáp ứng nhu cầu cá nhân của mỗi sinh viên một cách hiệu quả và tiện lợi hơn.
Website còn có đội ngũ Quản trị viên để nhận thông tin phản hồi từ người dùng,duyệt bài viết và report tài khoản vi phạm.
Phạm vi đề tài
Đề tài "Chợ rao vặt, mua bán, trao đổi đồ cũ cho sinh viên UTE" được sinh viên năm IV ngành công nghệ thông tin tại Trường Đại học Sư Phạm Kỹ Thuật lên kế hoạch và bàn luận Dự án này sẽ thực hiện khảo sát tại trường Đại học Sư Phạm Kỹ Thuật - UTE, có địa chỉ tại 48 Cao Thắng, Hải Châu, Đà Nẵng.
Quy mô hiện có sẽ áp dụng cho toàn bộ sinh viên và giảng viên trong trường trong việc chia sẻ những món đồ cũ với nhau.
Cơ cấu tổ chức
Hình 1.1: Sơ đồ quy trình hoạt động của đề tài website
Hoạt động nghiệp vụ thực tế
• Món đồ • Sinh viên có món đồ cần đổi
• Bài đăng được hiện trên bảng tin của tất cả người dùng.
• Bài đăng của các tài khoản khác
• Sinh viên có tài khoản
• Thông tin về món đồ đã xem
Bước 3: Chọn món đồ cần trao đổi
• Bài đăng • Sinh viên cần trao đổi
• Món đồ cần dùng được nhấn chọn
“Mua” - Thông báo cần đổi được đưa đến chủ bài viết.
Bước 4: Trao đổi qua nhiều hình thức như: gọi điện, comment, xác nhận giao dịch
• Bài đăng đã có người chọn mua
• Sinh viên cần món đồ
• Trường hợp 1: Cả hai bên thỏa thuận đúng với điều kiện món đồ được trao đổi
• Trường hợp 2: Một trong hai bên chưa đồng ý với điều kiện Món đồ không được trao đổi.
Bước 5: Report bài đăng sai thông tin
• Đánh giá tài khoản/ bài đăng của sinh
• Tài khoản vi phạm sẽ vị cảnh cáo/ khóa tài viên nào đó.
• Những ý kiến/ nhận xét/ phản hồi của
• Bài viết không đạt yêu cầu bị xóa.
• Bổ sung thông tin cho những thắc mắc củaSinh viên.
Đặc tả yêu cầu nghiệp vụ (Business Requirments)
1.6.1 Khách hàng chưa là thành viên
1.6.1.1 Được phép truy cập website
1.6.1.2 Được phép xem bài đăng
1.6.1.3 Được phép tìm kiếm món đồ/ bài đăng của sinh viên có tài khoản
Sinh viên có tài khoản vẫn được xem các thông tin chung, được tìm kiếm như
Khách vãng lai … Ngoài ra, sinh viên còn được thực hiện một số tính năng khác gồm:
1.6.2.1 Được phép tìm kiếm được các bài đăng với món đồ mong muốn
1.6.2.2 Được phép quản lý thông tin cá nhân
1.6.2.3 Được phép lọc bài đăng theo danh mục, theo mức giá
1.6.3 Sinh viên có món đồ
1.6.3.1 Được phép đăng bài với thông tin món đồ cần bán lại
1.6.3.2 Được phép quản lý lịch sử bài đăng
1.6.3.3 Được phép xem thông báo khi có sinh viên đăng ký giao dịch món đồ
1.6.4 Sinh viên có nhu cầu mua hoặc đổi món đồ
1.6.4.1 Được phép xem chi tiết bài đăng món đồ của sinh viên khác
1.6.4.2 Được phep mua lại món đồ hoặc trao đổi với sinh viên có món đồ
1.6.4.3 Xem thông báo xác nhân từ sinh viên có món đồ khi giao dịch thành công 1.6.4.4 Comment bài đăng món đồ của sinh viên có món đồ
1.6.5.1 Vì là quản trị có nhiệm vụ quản lý tài khoản và bài viết nên quản trị viên có những chức năng khác gồm:
- Quản lý danh mục bài đăng
- Quản lý tài khoản sinh viên
- Cảnh cáo và khóa tài khoản với những sinh viên đăng bài sai thông tin hoặc không đáng tin cậy
CƠ SỞ LÝ THUYẾT
Hệ quản trị cơ sở dữ liệu
MySQL là một hệ thống quản lý cơ sở dữ liệu quan hệ mã nguồn mở (RDBMS) dựa trên ngôn ngữ SQL, được phát triển và hỗ trợ bởi Oracle Hệ thống này tương thích với nhiều nền tảng như Linux, UNIX và Windows, và thường được sử dụng kết hợp với các ứng dụng web.
2.1.3 Đôi nét về lịch sử
Dự án MySQL bắt đầu vào năm 1979 khi Michael Widenius phát triển công cụ cơ sở dữ liệu UNIREG để quản lý dữ liệu UNIREG sau đó được viết lại bằng nhiều ngôn ngữ và mở rộng để xử lý cơ sở dữ liệu lớn Michael Widenius đã liên hệ với David Hughes, tác giả của mQuery, để thảo luận về việc kết nối mQuery với trình xử lý B + ISAM của UNIREG nhằm cung cấp lập chỉ mục cho mQuery, từ đó MySQL được ra đời.
MySQL là một hệ quản trị cơ sở dữ liệu mạnh mẽ, dễ sử dụng và tương thích với nhiều hệ điều hành, mang lại tốc độ cao và độ ổn định Với tính năng bảo mật vượt trội, MySQL rất phù hợp cho các ứng dụng truy cập cơ sở dữ liệu qua Internet, cung cấp nhiều giải pháp bảo vệ thông tin Hơn nữa, MySQL hỗ trợ đa dạng các chức năng SQL, đáp ứng đầy đủ nhu cầu của người dùng trong quản lý cơ sở dữ liệu quan hệ.
Khả năng mở rộng và mạnh mẽ: MySQL có thể xử lý rất nhiều dữ liệu và hơn thế nữa nó có thể được mở rộng nếu cần thiết.
MySQL được tối ưu hóa với các tiêu chuẩn giúp tăng cường hiệu quả và tiết kiệm chi phí, từ đó nâng cao tốc độ thực thi của hệ thống.
Ngôn ngữ lập trình PHP
PHP, viết tắt của Hypertext Preprocessor, là ngôn ngữ lập trình kịch bản mã nguồn mở chủ yếu dùng để phát triển ứng dụng máy chủ Với khả năng nhúng dễ dàng vào HTML, PHP được tối ưu hóa cho các ứng dụng web, mang lại tốc độ nhanh và cú pháp tương tự như C và Java Đặc biệt, PHP dễ học và cho phép xây dựng ứng dụng trong thời gian ngắn, giúp nó nhanh chóng trở thành ngôn ngữ lập trình web phổ biến nhất trên toàn cầu.
Ngôn ngữ PHP và các thư viện, tài liệu gốc của nó được phát triển chủ yếu bởi cộng đồng, với sự đóng góp đáng kể từ Zend Inc - công ty do các nhà phát triển cốt lõi của PHP thành lập Mục tiêu của Zend Inc là tạo ra một môi trường chuyên nghiệp nhằm thúc đẩy sự phát triển của PHP trong lĩnh vực doanh nghiệp.
2.2.3 Đôi nét về lịch sử
PHP được phát triển từ một món đồ có tên là PHP/FI PHP/FI do Rasmus Lerdorf tạo ra năm 1995 được viết bằng C và được sửa lại năm 1997.
PHP 3.0: Được Andi Gutmans và Zeev Suraski tạo ra năm 1997 sau khi viết lại hoàn toàn bộ mã nguồn trước đó Lý do chính mà họ đã tạo ra phiên bản này là do họ nhận thấy PHP/FI 2.0 không mở rộng được trong việc phát triển các ứng dụng thương mại điện tử PHP 3.0 như là phiên bản thế hệ kế tiếp của PHP/FI 2.0, và chấm dứt phát triển PHP/FI 2.0 PHP 3.0 cung cấp cho người dùng cuối một cơ sở hạ tầng dùng cho nhiều cơ sở dữ liệu, giao thức và API khác nhau Cho phép người dùng có thể mở rộng theo module Chính điều này làm cho PHP3 thành công so với PHP2 Lúc này chính thức đặt tên ngắn gọn là PHP (Hypertext Preprocessor).
PHP 4, được công bố vào năm 2000, đã cải thiện đáng kể tốc độ xử lý và mang đến nhiều tính năng quan trọng như hỗ trợ nhiều máy chủ web, session HTTP, output buffering, cùng với các phương pháp bảo mật tốt hơn cho dữ liệu đầu vào và một số cấu trúc ngôn ngữ mới Sự ra mắt của PHP 4 đã thu hút hàng trăm nghìn nhà phát triển, với hàng triệu trang web sử dụng PHP, chiếm khoảng 20% tổng số tên miền trên Internet Đội ngũ phát triển PHP hiện đã lên tới hàng nghìn người, cùng với sự tham gia của nhiều cá nhân vào các dự án liên quan như PEAR, PECL và tài liệu cho PHP.
PHP5 chính thức ra mắt vào ngày 13 tháng 7 năm 2004, sau một loạt các phiên bản thử nghiệm như Beta 4, RC 1, RC 2 và RC 3 Dù là phiên bản sản xuất đầu tiên, PHP 5.0 vẫn tồn tại một số lỗi, trong đó lỗi xác thực HTTP là đáng chú ý nhất.
Laravel Framework
Laravel là một framework PHP mã nguồn mở miễn phí, được Taylor Otwell phát triển và ra mắt lần đầu vào tháng 6 năm 2011 Framework này được thiết kế để hỗ trợ việc phát triển ứng dụng web theo mô hình MVC (Model – View – Controller).
Laravel hiện được phát hành theo giấy phép MIT, với source code được lưu trữ tại Gitthub.
Mặc dù xuất hiện muộn hơn so với các framework khác, Laravel đã nhanh chóng tạo ra một làn sóng lớn và được đánh giá cao, trở thành một trong những framework phổ biến nhất hiện nay Biểu đồ dưới đây minh họa sự tăng trưởng ấn tượng về số lượng sao trên Github của Laravel so với các framework khác.
2.3.2 Đôi nét về lịch sử
Laravel beta đầu tiên ra mắt vào ngày 9/6/2011, tiếp theo là phiên bản Laravel 1 trong cùng tháng Laravel 1 sở hữu nhiều tính năng như xác thực, bản địa hóa, model, view, session và định tuyến, tuy nhiên vẫn thiếu controller, khiến nó chưa hoàn toàn đạt tiêu chuẩn của một framework MVC thực thụ.
Laravel 2 được phát hành vào tháng 9 năm 2011, mang đến nhiều cài tiến từ tác giả và cộng đồng Tính năng đáng kể bao gồm hỗ trợ controller, điều này thực sự biến Laravel 2 thành một MVC framework hoàn chỉnh, hỗ trợ Inversion of Control (IoC), hệ thống template Blade Bên cạnh đó, có một nhược điểm là hỗ trợ cho các gói của nhà phát triển bên thứ 3 bị gỡ bỏ.
Laravel 3 được phát hành vào tháng 2 năm 2012, với một tấn tính năng mới bao gồm giao diện dòng lệnh (CLI) tên “Artisan”, hỗ trợ nhiều hơn cho hệ thống quản trị cơ sở dữ liệu, chức năng ánh xạ cơ sở dữ liệu Migration, hỗ trợ “bắt sự kiện” trong ứng dụng, và hệ thống quản lý gói gọi là “Bundles” Lượng người dùng và sự phổ biến tăng trưởng mạnh kể từ phiên bản Laravel 3.
Laravel 4, với tên mã "Illuminate", được phát hành vào tháng 5 năm 2013, đánh dấu sự lột xác của framework này Phiên bản mới đã di chuyển và tái cấu trúc các gói hỗ trợ thông qua Composer, nâng cao khả năng mở rộng so với các phiên bản trước Laravel 4 cũng giới thiệu lịch phát hành chính thức với phiên bản nâng cấp nhỏ mỗi sáu tháng, cùng với các tính năng mới như tạo và thêm dữ liệu mẫu, hỗ trợ hàng đợi, các kiểu gửi mail, và tính năng "xóa mềm" cho phép record bị ẩn khỏi các truy vấn mà không bị xóa hẳn khỏi cơ sở dữ liệu.
Laravel 5 được phát hành trong tháng 2 năm 2015, như một kết quả thay đổi đáng kể cho việc kết thúc vòng đời nâng cấp Laravel lên 4.3 Bên cạnh một loạt tính năng mới và các cải tiến như hiện tại, Laravel 5 cũng giới thiệu cấu trúc cây thư mục nội bộ cho phát triển ứng dụng mới Những tính năng mới của Laravel 5 bao gồm hộ trợ lập lịch định kỳ thực hiện nhiệm vụ thông qua một gói tên là “Scheduler”, một lớp trừu tượng gọi là “Flysystem” cho phép điều khiển việc lưu trữ từ xa đơn giản như lưu trữ trên máy local – dễ thấy nhất là mặc định hỗ trợ dịch vụ Amazone S3, cải tiến quản lý assets thông qua “Elixir”, cũng như đơn giản hóa quản lý xác thực với các dịch vụ bên ngoài bằng gói “Socialite”.
Laravel 5.1 phát hành vào tháng 6 năm 2015, là bản phát hành đầu tiên nhận được hỗ trợ dài hạng (LTS) với một kết hoạch fix bug lên tới 2 năm vào hỗ trợ vá lỗi bảo mật lên tới 3 năm Các bản phát hành LTS của Laravel được lên kế hoạch theo mỗi 2 năm. Laravel 5.3, được phát hành vào ngày 23 tháng 8 năm 2016 Các tính năng mới trong 5.3 tập trung vào việc cải thiện tốc độ phát triển bằng cách bổ sung thêm các cải tiến cho các tác vụ phổ biến.
Laravel 5.4 Phiên bản này có nhiều tính năng mới, như Laravel Dusk, Laravel Mix, Blade Components và Slots, Markdown Emails, Automatic Facades, Route Improvements, Higher Order Messaging cho Collections, và nhiều thứ khác.
Laravel 5.5, phát hành vào ngày 30 tháng 8 năm 2017 là phiên bản LTS thứ 2
Laravel 5.6, phát hành vào ngày 7 tháng 2 năm 2018.
Laravel 5.7, phát hành vào ngày 4 tháng 9 năm 2018 với những cập nhật.
Laravel 6, phát hành vào ngày 3 tháng 9 năm 2019.
Laravel 7, ra mắt ngày 3 tháng 3 năm 2020 với nhiều tính năng cũng như cải thiện tốc độ
Bootstrap
Hiểu đơn giản, Bootstrap là những đoạn code viết sẵn để giúp developer dễ dàng tạo ra những giao diện website tương thích với màn hình điện thoại.
Bootstrap là một framework bao gồm các HTML template, CSS template và JavaScript template dùng để phát triển website chuẩn responsive.
2.4.2 Đôi nét về lịch sử
Vào ngày 19 tháng 8 năm 2011, Bootstrap được giới thiệu trên GitHub dưới dạng mã nguồn mở với tên gọi ban đầu là Twitter Blueprint Đây là sản phẩm sáng tạo của Mark Otto và Jacob Thornton tại Twitter.
Vào ngày 31 tháng 1 năm 2012, Bootstrap phiên bản 2 đã được phát hành, mang đến bố cục lưới 12 cột và thiết kế tùy chỉnh, giúp tương thích linh hoạt với nhiều kích thước màn hình khác nhau.
19/8/2013, Bootstrap 3 ra đời với giao diện tương thích với smartphone, trở thành No.1 project trên GitHub.
Tháng 10/2014, Mark Otto công bố phiên bản Bootstrap 4 đang được phát triển. Phiên bản alpha đầu tiên của Bootstrap 4 đã được triển khai vào tháng 8/2015.
Phiên bản mới nhất là Bootstrap 4.5. Đến nay, Bootstrap vẫn là một trong những framework thiết kế website được nhiều developer đánh giá cao.
MVC, viết tắt của Model – View – Controller, là một mô hình thiết kế quan trọng trong kỹ thuật phần mềm Mô hình này phân chia mã nguồn thành ba phần riêng biệt, mỗi phần tương ứng với một hoạt động cụ thể Sự tách biệt này giúp cải thiện khả năng quản lý và phát triển ứng dụng hiệu quả hơn.
Model là bộ phận lưu trữ dữ liệu của ứng dụng, đóng vai trò cầu nối giữa View và Controller Nó có thể được thể hiện dưới dạng cơ sở dữ liệu hoặc file XML, cho phép thực hiện các thao tác như xem, truy xuất và xử lý dữ liệu.
Giao diện (theme) là phần dành cho người sử dụng, cho phép người dùng truy cập thông tin dữ liệu của MVC thông qua các thao tác như tìm kiếm hoặc sử dụng trên các trang web.
Trong các ứng dụng web, View theo mô hình MVC đóng vai trò quan trọng trong việc tạo ra các thành phần HTML và ghi nhận hoạt động của người dùng để tương tác với Controller Tuy nhiên, View không trực tiếp liên kết với Controller và không lấy dữ liệu từ Controller, mà chỉ hiển thị các yêu cầu được chuyển đến Controller.
Bộ phận Controller chịu trách nhiệm xử lý các yêu cầu từ người dùng thông qua giao diện (view) và cung cấp dữ liệu phù hợp Ngoài ra, Controller còn có vai trò kết nối với model để đảm bảo tính linh hoạt và hiệu quả trong việc quản lý dữ liệu.
PHÂN TÍCH THIẾT KẾ
Đặc tả yêu cầu phần mềm (Software Requirements)
Phần liệt kê Actor-Usecase lấy nội dung từ phần Liệt kê User-Chức năng ở chương
1 (lưu ý sử dụng multilevel list)
Tìm kiếm theo tên món đồ
3.1.1.3 Lọc (sẽ là usecase nếu tren giao diện chính có tính năng lọc theo danh mục)
Lọc theo danh mục món đồ
3.1.2 Sinh viên có món đồ
Kế thừa các usecase “Xem thông tin”, “Tìm kiếm”, “Lọc” từ GUEST
Đăng nhập bằng tài khoản sinh viên
3.1.2.2 Đăng bài/ Rao bán món đồ
Đăng nhập bằng tài khoản đã có
Nhập thông tin món đồ cần rao bán/ trao đổi
Chọn ảnh món đồ: chọn từ thiết bị di động hoặc chụp trực tiếp
Đăng bài (Nhấn chọn nút “Đăng bài”)
Thay đổi thông tin món đồ
Thay đổi ảnh món đồ
Chỉnh sửa giá hoặc món đồ cần trao đổi (vì phải vào bài đăng để xóa/ ẩn bài đăng nên phải bắt buộc mục Bài đăng
Sinh viên vào bài đăng của mình muốn xóa
Xóa bài viết: Cả người xem và chủ nhân bài viết sẽ không còn thấy bài đăng nữa (xóa vĩnh viễn)
Vì phải vào bài viết để xóa nên bắt buộc bải mục Bài đăng
Gọi điện thông qua số điến thoại trên chi tiết bài đăng
3.1.3 Sinh viên có nhu cầu trao đổi, mua đồ cũ
Kế thừa các usecase “Xem thông tin”, “Tìm kiếm”, “Lọc” từ Khách vãng lai.
Kế thừa các usecase “Đăng nhập”, “Liên lạc – Trao đổi” từ Sinh viên có món đồ
3.1.3.1 Xem thông tin chi tiết của bài đăng
Hiển thị tài khoản đăng bài
Hiển thị các thông tin khác của bài đăng
3.1.3.2 Report bài đăng (sẽ là một usecase trong sơ đồ)
Tài khoản đăng bài không đúng với nội dung website
Món đồ không đúng như mô tả trên bài đăng
3.1.3.4 Đăng ký trao đổi – mua món đồ
3.1.3.5 Đánh giá món đồ bài đăng
3.1.4 Quản trị viên (Phòng CTHSSV)
Kế thừa các usecase “Xem thông tin”, “Tìm kiếm”, “Lọc” từ Khách vãng lai.
Kế thừa các usecase “Đăng nhập”, “Quản lý tài khoản cá nhân”, “Liên lạc – Trao đổi” từ Sinh viên có món đồ.
Thống kê bài đăng, sinh viên sử dụng hệ thống
3.1.4.2 Trả lời phản hồi người dùng
3.1.4.3 Quản lý danh mục bài đăng
3.1.4.4 Cảnh cáo và khóa tài khoản với những sinh viên đăng bài sai thông tin hoặc không đán tin cậy
Sơ đồ Usecase
Kịch bản cho Usecase
3.3.1 Actor Sinh Viên, Quản trị viên
Mô tả Người dùng muốn thực hiện những chức năng mua bàn cần phải đăng nhập vào hệ thống
Actors Sinh viên, quản trị viên Đầu vào Email
Passwork Đầu ra Đăng nhập thành công
1 Actor vào giao diện web
5 Actor nhấn nút “Đăng nhập”
6 Đăng nhập hệ thống – Kết thúc Usecase
2a Actor chọn phương thức đăng nhập tự động 2a.1 Tự động sao lưu trong hệ thống use`case tiếp tục bước 5 3a.1 Actor nhập sai email
3a.1 Nhập lại usecase tiếp tục bước 4 4a Actor nhập sai Passwork
4a.1 Actor nhập lại usecase tiếp tục bước 5 4a.2 Actor quên mật khẩu
4a.2.1 Xin hệ thống gửi lại mật khẩu usecase tiếp tục bước 5
Các trường hợp động ngoại lệ
5a Actor không nhập – hệ thống dừng, thông báo nhập lại Actor ghi email, không có password – hệ thống dừng, thông báo nhập lại
3.3.2 Actor sinh viên có món đồ
Mô tả Người có món đồ muốn rao bán hoặc muốn trao đổi món đồ trên
Website để mọi người có thể xem và chọn trao đổi.
Actors Sinh viên có món đồ cần đổi Đầu vào Sinh viên sau khi thực hiện việc Đăng Nhập thành công
Chọn mục “đăng bán món đồ” vào đó để thực hiện việc đăng bài
Nhập thông tin về món đồ (hình ảnh, giá,…) Đầu ra Sinh viên đăng bài có thể thấy được bài đăng của mình đã hiện ở trang chủ
1 Sinh viên (Actor) nhấn vào mục đăng bài
2 Actor nhập vào nội dung mô tả cụ thể món đồ
3 Actor chọn ảnh của món đồ
4 Actor chọn nút “Đăng bài ” để đăng bài trực tiếp trên bảng tin
2a Actor không nhập nội dung mô tả
Diễn viên có hai cách để chọn ảnh món đồ: đầu tiên, họ có thể nhấn vào nút “Tải ảnh lên” để chọn ảnh có sẵn từ thiết bị di động hoặc máy tính, sau đó tiếp tục thực hiện bước 4 Thứ hai, họ cũng có thể nhấn vào nút “Chọn ảnh” để chụp ảnh trực tiếp từ thiết bị đang sử dụng.
• Usecase thực hiện tiếp tục bước 4
Các trường hợp ngoại lệ
2a Actor không nhập nội dung mô tả 3a Actor không nhập ảnh món đồ (đồng thời hai bước trên)
• Usecase dừng lại và thông báo “Bắt buộc người dùng phải nhập nội dung bào đăng!!!”
4a Actor chọn nút “Hủy” Usecase dừng lại
3.3.2.2 Usecase chỉnh sửa bài đăng
Tên usecase Chỉnh sửa bài đăng
Mô tả Sinh viên có món đồ có thể thay đổi thông tin hoặc hình ảnh của món đồ
Sinh viên có món đồ đã đăng nhập thành công bằng tài khoản của mình Hệ thống kiểm tra và phát hiện bài đăng của sinh viên đã tồn tại Sau đó, nội dung hoặc hình ảnh của bài đăng sẽ được chỉnh sửa để đảm bảo tính chính xác và cập nhật.
1 Sinh viên (Actor) nhấn vào mục đăng bài
2 Actor nhập vào nội dung mô tả cụ thể món đồ
3 Actor chọn ảnh của món đồ
4 Actor chọn “Đăng bài ” để đăng bài trực tiếp trên bảng tin
5 Hệ thống xác nhận lại thông tin bài đã được đăng với dòng thông báo: “Đã đăng bài thành công”
4a Khi actor đã chọn chỉnh sủa bài đăng mà không sửa gì thì không được lưu và thoát ra
4a.1 Actor chỉnh sửa xong thì nút “Lưu” trên góc phải màn hình sẽ cho lưu bài đăng vừa sửa
Usecase tiếp tục bước 5 5a Actor chỉnh sửa xong mà thoát ra không chọ lưu thì hệ thống sẽ hiển thị “Lưu bài” và “không lưu và thoát”
Các trường hợp ngoại lệ
5a.1a Actor chọn “không lưu và thoát” bài đăng sẽ hiển thị như lúc chưa chỉnh sửa
5a.2a Actor chọn nút hủy Usecase dừng lại
Tên usecase Xóa bài đăng
Mô tả Sinh viên đăng bài có thể xóa bài đăng
Sinh viên có thể đăng nhập thành công bằng tài khoản của mình để quản lý bài đăng về món đồ Nếu đã trao đổi hoặc không còn muốn trao đổi món đồ nữa, sinh viên có quyền xóa bài đăng của mình Sau khi thực hiện, hệ thống sẽ thông báo xóa bài đăng thành công.
1 Sinh viên có món đồ (Actor) vào quản lí bài đăng - bắt đầu Usecase
2 Xuất hiện List chọn xóa bài đăng
3 Actor nhấn vào nút “Xóa bài”
4 Hệ thống xóa bài đăng – kết thúc Usecase
Các bước phát sinh Không có
Các trường hợp ngoại lệ 4a Actor chọn nút hủy Usecase dừng lại trở lại bước 1
3.3.3 Actor sinh viên cần món đồ/ Khách vãng lai
3.3.3.1 Usecase tìm kiếm – lọc theo danh mục
Tên usecase Tìm kiếm – lọc
Mô tả Sinh viên có tài khoản đăng nhập có thể tìm kiếm món đồ cần dùng
Khách vãng lai tìm kiếm nhưng không mua hoặc đổi đồ được
Actors Sinh viên có cần món đồ
Khách vãng lai có thể nhập từ khóa hoặc danh mục mà họ muốn tìm kiếm Hệ thống sẽ hiển thị thông tin liên quan đến món đồ mà người dùng đang tìm kiếm, giúp họ dễ dàng tiếp cận nội dung cần thiết.
1 Sinh viên cần món đồ/ Khách vãng lai (Actor) vào trang chủ của Website Thanh “Tìm kếm” luôn hiển thi trên đầu website
2 Actor nhập tên hoặc thông tin món đồ cần tìm hoặc chọn theo danh mục có sẵn
3 Actor nhấn vào icon để gửi thông tin tìm kiếm đi đến hệ thống
4 Hệ thống kiểm tra/ xuất/ hiển thị ra các bài viết liên quan đến nội dung tìm kiếm
Nếu người dùng nhập từ khóa tìm kiếm không chính xác hoặc từ khóa không liên quan đến hoạt động của website, hệ thống sẽ hiển thị thông báo “Không tìm thấy kết quả nào” Trong trường hợp này, người dùng cần quay lại bước 1 để thực hiện tìm kiếm lại.
Các trường hợp ngoại lệ
3a Actor chọn nút “Hủy” Usecase dừng lại Quay về bước 1 3b Actor không nhập nhưng nhấn nút Hệ thống thông báo
“Hãy nhập thông tin bạn muốn tìm kiếm!” Quay về bước 1
Tên usecase Comment bài đăng
Sinh viên có tài khoản có thể tương tác với các bài viết trên bảng tin bằng cách sử dụng các nút biểu tượng trên giao diện, cho phép họ giao tiếp và bày tỏ cảm xúc một cách dễ dàng.
Actors Sinh Viên cần món đồ Đầu vào Tồn tại bài viết đã được đăng bởi tài khoản khác trước đó của sinh viên có món đồ.
Sinh viên lướt tin muốn bày tỏ quan điểm với bài viết cần
Đánh giá 5 sao cho bài viết giúp sinh viên thể hiện ý kiến và trạng thái đã bình chọn Khi sinh viên để lại nhận xét, chúng sẽ hiển thị trực tiếp trong bài viết, tạo cơ hội cho mọi người cùng tham gia thảo luận và chia sẻ quan điểm.
• Mọi thao tác trên đều được hệ thống thông báo đến Tài khoản của Sinh viên đăng bài viết.
1 Sinh viên (Actor) ở vị trí Trang chủ 2a Actor nhấn nút “Like” ở mỗi bài viết – Nếu muốn Like bài 2b Actor nhấn vào dòng “Comment” để bình luận bài viết 2b.1 Actor nhấn vào Commnent và nhập bình luận
2b.2 Actor Nhấn nút “Hoàn tất Comment” Hệ thống tự động cập nhập Comment trong bài viết.
3 Actor đánh giá theo bài viết theo số lượng ngôi sao trên bài viết (Cấp độ đánh giá được xếp theo số lượng của Ngôi sao – Từ thấp đến cao)
* Các hành động trong bài viết đều thực hiện độc lập nhau/ Mỗi thao tác thực hiện riêng lẻ không cần theo thứ tự hay ràng buộc.
Các trường hợp ngoại lệ
2b.1 Actor nhấn vào mục ba chấm trong dòng comment của mình để “Chỉnh sửa” hoặc “Xóa” Bình luận của mình.
2b.2 Actor không thể thực hiện thao tác “Chỉnh sửa” hay “Xóa” Bình luận của người khác Chỉ được phép “Trả lời”
Tên usecase Report bài đăng
Mô tả Khi mà bài đăng không đúng sự thật hoặc những thông tin ngoài lề thì sinh viên cần món đồ có thể báo cáo bài đăng đó
Sinh viên đã đăng nhập thành công vào hệ thống và phát hiện một bài đăng không đúng thông tin về món đồ Hệ thống sẽ thông báo rằng bài đăng đã được báo cáo hoặc gửi cảnh cáo đến tài khoản đăng bài, đồng thời có thể áp dụng hình thức khóa tạm thời tài khoản nếu vi phạm tiếp tục xảy ra.
1 Actor 1 nhận thấy bài đăng có nội dung về món đồ không đúng hoặc những bài đăng không phù hợp với trang
2 Actor 1 chọn nút *** phía trên bên phải của bài đăng
3 Actor 1 nhấn vào nút Report
4a Khi có thông báo về mà Actor 2 không chỉnh sửa hoặc xóa bài đăng thì tài khoản của Actor đó sẽ bị tạm khóa
Khi Actor 2 thực hiện chỉnh sửa bài đăng, hệ thống sẽ cập nhật lại nội dung sau khi sửa Nếu Actor 2 xóa bài đăng, bài viết đó sẽ không còn xuất hiện trên hệ thống nữa.
Các trường hợp ngoại lệ
3a Actor 1 chọn nút hủy Usecase dừng lại
3.3.5 Actor Quản trị viên (phòng CTHSSV)
Tên usecase Phản hồi report
Mô tả Admin thông báo người dùng vì vi phạm các điều khoản
Input Quản trị viên đã đăng nhập bằng tài khoản thành công
Có thông báo report từ người dùng
Output Hệ thống cảnh báo người dùng vì các lỗi vi phạm
Basic flow 1 Quản trị viên vào phần phản hồi
3 Chọn báo cáo chi tiết
4 Chọn hình thức sử lý
5 Xác nhận Thông báo gữi đến người dùng kết thúc Usecase
4a.Chọn cảnh cáo người dùng 4a.1 Chọn hình thức sử phạt Usecase tiếp túc với bước 5 4b.Chọn khóa tài khoản người dùng
4b.1 Khóa tài khoản người dùng và gữi thông báo đến người dùng Usecase tiếp tục với 5
Exception flow Người dùng dùng rút report Thông báo lại Quản trị viên báo cáo đã được rút lại
Phác thảo giao diện người dùng & Sơ đồ hoạt động
3.4.1 Actor sinh viên có món đồ
Hình 1.1: UI Đăng bài (Giao diện 1)
Hình 1.2: UI Đăng bài (Giao diện 2)
Sau khi đăng bài thành công thì bài đăng sẽ hiển thị lên đầu tiên trong trang chủ
Hình 1.3: Sơ đồ hoạt động cho usecase đăng bài
3.4.2 Actor khách vãng lai/sinh viên/ Quản trị viên
3.4.2.1 Usecase tìm kiếm bằng thanh search
Hình 1.1: UI tìm kiếm bằng thanh search
3.4.2.2 Usecase lọc theo danh mục bài đăng
Hình 2.1: UI tìm kiếm theo danh mục
Hình 2.2: Sơ đồ hoạt động cho usecase tìm kiếm/ lọc
3.4.3.1 Usecase đăng nhập cho quản trị viên
Hình 1.1: UI đăng nhập cho quản trị viên
Sơ đồ ERD
Hình 1.1: Sơ đồ ERD (Tiếng Việt)
Việc đặt tên bảng bằng tiếng Việt thường dài dòng, vì vậy tôi đã chuyển sang sử dụng tiếng Anh để dễ dàng hơn trong việc đặt tên, giúp nó ngắn gọn và thuận tiện hơn.
Hình 1.2: Sơ đồ ERD (Tiếng Anh)
Diagram trong MySQL
Mô hình khái niệm (Domain Model)
Sơ đồ mô hình khái niệm được thể hiện qua Class Diagram, trong đó các Class được xác định là các Class ứng viên Những Class này có thể được loại bỏ nếu không cần thiết trong các giai đoạn phân tích và thiết kế tiếp theo.
3.7.1 Xác định các lớp ứng viên (Candidate Class)
3 sinhVienDangBai – Sinh Viên đăng bài
4 sinhVienMuonDoi - Sinh Viên Muốn Đổi
9 thongTinMonDo – Thông tin món đồ
10 trangThaiMonDo – Trạng thái món đồ
3.7.2 Xây dựng sơ đồ Domain Model (Class Diagram - Level 1)
Sơ đồ lớp ở giai đoạn này chỉ bao gồm các lớp (có attribute – chưa có method)
Sơ đồ Robustness Diagram
3.8.1 Robustness Diagram cho usecase đăng bài
Hình 1.1: Sơ đồ Robustness cho usecase đăng bài
3.8.2 Robustness Diagram cho usecase tìm kiếm
Hình 1.1: Sơ đồ Robustness cho usecase tìm kiếm
3.8.3 Robustness Diagram cho usecase thống kê
Hình 1.1: Sơ đồ Robustness cho usecase thống kê
Sơ đồ tương tác
Chọn xây dựng sơ đồ Sequence Diagram hoặc Communication/Collaboration Diagram dựa trên các sơ đồ Robustness Diagram và Activity Diagram tương ứng.
3.9.1 Sequence Diagram cho usecase đăng bài
Hình 1.1: Sơ đồ sequence cho usecase đăng bài
3.9.2 Sequence Diagram cho usecase tìm kiếm
Hình 1.1: Sơ đồ Sequence cho usecase tìm kiếm
3.9.3 Sequence Diagram cho usecase thống kê
Hình 1.1: Sơ đồ Sequence cho usecase thống kê
Sơ đồ lớp (Level 2)
DEMO CHƯƠNG TRÌNH
Trang người dùng (dành cho sinh viên và khách vãng lai)
4.1.1 Giao diện trang chủ dành cho sinh viên và khách vãng lai
Hình 1.1: Giao diện trang chủ dành cho sinh viên
4.1.2 Giao diện đăng ký tài khoản dành cho sinh viên
Hình 1.1: Giao diện đăng ký tài khoản
4.1.3 Giao diện đăng nhập khi có tài khoản
Hình 1.1: Giao diện đăng nhập tài khoản
4.1.4 Giao diện khi sinh viên đăng nhập thành công
Hình 1.1: Giao diện sau khi đăng nhập thành công
4.1.5 Cập nhật thông tin cá nhân
Hình 1.1: Giao diện cập nhật thông tin cá nhân
Hình 1.1: Giao diện đăng bài
4.1.7 Giao diện quản lý bài đăng cá nhân
Hình 1.1: Giao diện quản lý bài đăng cá nhân
4.1.8 Giao diên lịch sử trao đổi - giao dịch thành công
Hình 1.1: Giao diện lịch sử trao đổi – giao dịch thành công
4.1.9 Giao diện xem chi tiết bài đăng của sinh viên khác
Hình 1.1: Giao diện chi tiết bài đăng
4.1.10 Giao diện comment bài đăng món đồ
Hình 1.1: Giao diện comment bài đăng
4.1.11 Giao diện đánh giá bài đăng món đồ
Hình 1.1: Giao diện đánh giá bài đăng
Trang quản lý (Dành cho PCTHSSV)
4.2.1 Giao diện đăng nhập dành cho tài khoản Admin
Hình 1.1: Giao diện đăng nhập Admin
4.2.2 Giao diện đăng nhập Admin thành công – thống kê
Hình 1.1: Giao diện sau khi Admin đăng nhập thành công
4.2.3 Giao diện quản lý sinh viên – cảnh báo tài khoản
Hình 1.1: Giao diện quản lý sinh viên