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, sau vài năm học tập, đã dần hiểu rõ hơn về cuộc sống xa nhà Trải nghiệm này giúp sinh viên nhận thức sâu sắc về những thách thức và cơ hội trong quá trình học tập và sinh hoạt.
Chúng em luôn tận dụng tối đa những đồ dùng có thể tái sử dụng, từ các vật dụng cũ còn sử dụng tốt đến tài liệu của các khóa trước Nhiều món đồ cũ khác cũng được sử dụng lại, mang lại lợi ích kinh tế khi giá thành thường rẻ hơn so với thị trường Điều đặc biệt là những đồ này vẫn duy trì chất lượng và có thể sử dụng nhiều lần nữa.
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ề mua bán đồ cũ, cũng như việc trao đổi qua 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 tạo ra để phục vụ nhu cầu này.
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 thường bị "trôi" xuống, dẫn đến nhiều vấn đề khác phát sinh.
Dựa trên khảo sát và ý tưởng, tôi quyết định chọn đề tài “Xây dựng website chợ trao vặt, trao đổi/mua bán đồ cũ” phục vụ đặc biệt cho cộng đồng sinh viên tại 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 trao đổi và bán những món đồ cũ còn sử dụng tốt, như sách vở, đồ dùng học tập và các tài liệu liên quan đến học tập cho các bạn sinh viên trong trường Nền tảng này không chỉ hỗ trợ sinh viên tiết kiệm chi phí mà còn thúc đẩy việc tái sử dụng tài nguyên, tạo ra một cộng đồng học tập gắn kết và bền vững.
Sinh viên có thể tiết kiệm chi phí vận chuyển bằng cách liên hệ trực tiếp với nhau qua website, thay vì tìm kiếm trên các diễn đàn hay nhóm Hình thức này giúp họ dễ dàng trao đổi và đáp ứng nhu cầu cá nhân tại trường học.
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 ĐH Sư Phạm Kỹ Thuật nghiên cứu và lên kế hoạch thực hiện Dự án sẽ tiến hành khảo sát tại trường Đại học Sư Phạm Kỹ Thuật – UTE, địa chỉ 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 – mua lại món đồ
• 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 viên nào đó.
• Những ý kiến/ nhận xét/ phản hồi của
• Tài khoản vi phạm sẽ vị cảnh cáo/ khóa tài khoản.
• 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ủa Sinh 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à hệ thống quản lý cơ sở dữ liệu quan hệ mã nguồn mở (RDBMS) sử dụng ngôn ngữ truy vấn có cấu trúc (SQL), được phát triển và hỗ trợ bởi Oracle Nó hoạt động trên nhiều nền tảng, bao gồm 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ữ khác nhau 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, để kết nối mQuery với trình xử lý B + ISAM của UNIREG, từ đó tạo ra MySQL.
MySQL là một hệ quản trị cơ sở dữ liệu mạnh mẽ, dễ sử dụng và hoạt động ổn định trên nhiều hệ điều hành Nó cung cấp tốc độ cao cùng với một loạt các hàm tiện ích phong phú Đặc biệt, MySQL có độ bảo mật cao, rất phù hợp cho các ứng dụng truy cập cơ sở dữ liệu qua Internet với nhiều tính năng bảo vệ dữ liệu 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 thiết kế với các tiêu chuẩn cho phép hoạt động hiệu quả và tiết kiệm chi phí, nhờ đó tăng tốc độ thực thi.
Ngôn ngữ lập trình PHP
PHP, viết tắt của PHP: Hypertext Preprocessor, là một ngôn ngữ lập trình kịch bản mã nguồn mở, chủ yếu được sử dụng để phát triển ứng dụng cho 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 gần gũi với C và Java Điều này giúp PHP trở thành một ngôn ngữ lập trình dễ học và rút ngắn thời gian phát triển, từ đó nhanh chóng trở thành ngôn ngữ lập trình web phổ biến nhất toàn cầu.
Ngôn ngữ PHP, cùng với các thư viện và tài liệu gốc, đượ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 này được thành lập bởi các nhà phát triển cốt lõi của PHP, nhằm tạo ra một môi trường chuyên nghiệp giúp PHP phát triển mạnh mẽ 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à giới thiệu 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 xử lý dữ liệu đầu vào an toàn hơn và các cấu trúc ngôn ngữ mới Sự phát triển của PHP đã 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 20% tổng số tên miền trên Internet Đội ngũ phát triển PHP đã mở rộng lên tới hàng nghìn người, cùng với nhiều cá nhân tham gia 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 nhiều phiên bản thử nghiệm như Beta 4 và các bản RC 1, RC 2, RC 3 Mặc 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 đó có lỗi xác thực HTTP đáng chú ý.
Laravel Framework
Laravel là một framework PHP mã nguồn mở miễn phí, được phát triển bởi Taylor Otwell và ra mắt lần đầu vào tháng 6 năm 2011 Framework này được thiết kế để hỗ trợ 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 sau các đối thủ, Laravel đã nhanh chóng tạo ra sự bùng nổ và hiện đang được đánh giá cao cùng với mức độ sử dụng rộng rãi 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, và ngay sau đó, Laravel 1 cũng được phát hành trong cùng tháng Phiên bản 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, nó vẫn thiếu controller, do đó chưa hoàn toàn đáp ứng 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 với việc tái cấu trúc các gói hỗ trợ thông qua Composer, giúp cải thiện khả năng mở rộng đáng kể Phiên bản mới ra mắt định kỳ mỗi sáu tháng với các nâng cấp nhỏ, đồng thời cung cấp nhiều tính năng hữu ích như tạo và thêm dữ liệu mẫu (database seeding), hỗ trợ hàng đợi, các kiểu gửi mail, và tính năng “xóa mềm” (soft-delete) cho phép record bị ẩn khỏi các truy vấn mà không bị xóa hoàn toà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 ra mắt trên GitHub như một mã nguồn mở, ban đầu mang tên Twitter Blueprint Sản phẩm này là sự sáng tạo của Mark Otto và Jacob Thornton tại Twitter.
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.
Mô hình MVC
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 source code thành ba phần riêng biệt, mỗi phần tương ứng với một chức năng cụ thể, giúp tổ chức và quản lý mã nguồn hiệu quả hơn.
Model là thành phần lưu trữ toàn bộ dữ liệu của ứng dụng, đóng vai trò cầu nối giữa View và Controller Nó có thể là một cơ sở dữ liệu hoặc một file XML đơn giản, cho phép thực hiện các thao tác như xem, truy xuất và xử lý dữ liệu.
Phần giao diện (theme) trong View (V) là nơi người dùng có thể truy cập và lấy thông tin dữ liệu từ MVC thông qua các thao tác truy vấn như tìm kiếm hoặc sử dụng trên các website.
Trong các ứng dụng web, MVC View đó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ị yêu cầu được chuyển đến Controller.
Bộ phận này chịu trách nhiệm xử lý yêu cầu từ người dùng thông qua giao diện (view), từ đó cung cấp dữ liệu phù hợp Ngoài ra, Controller còn đóng vai trò kết nối với model để đảm bảo sự tương tác hiệu quả giữa các thành phần trong ứng dụng.
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 đồ: Thứ nhất, nhấn vào nút “Tải ảnh lên” để chọn ảnh có sẵn trên 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, nhấn vào nút “Chọn ảnh” để chụp trực tiếp từ thiết bị hiện tại.
• 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à xác nhận rằng đã tồn tại bài đăng của sinh viên này Sau đó, nội dung hoặc hình ảnh của bài đăng sẽ được chỉnh sửa theo yêu cầu.
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 đã đăng nhập thành công bằng tài khoản và có thể quản lý bài đăng của mình về món đồ Nếu sinh viên đã trao đổi món đồ hoặc không còn muốn trao đổi nữa, họ có quyền xóa bài đăng Quá trình xóa bài đăng sẽ diễn ra thành công.
Các bước thực hiện 1 Sinh viên có món đồ (Actor) vào quản lí bài đăng - bắt đầu
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ể dễ dàng tìm kiếm thông tin liên quan đến món đồ mình quan tâm bằng cách nhập từ khóa hoặc chọn danh mục cần tìm Hệ thống sẽ hiển thị các bài viết liên quan, giúp người dùng nhanh chóng tiếp cận thông tin 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
2a Actor nhập không đúng từ khóa tìm kiếm/ từ khóa không liên quan đến hoạt động của website hệ thống thông báo
“Không tìm thấy kết quả nào” Usecase dừng lại Quay lại bước 1
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 bảng tin bằng cách sử dụng các nút biểu tượng trên giao diện để giao tiếp và bày tỏ cảm xúc với các bài viết.
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 có thể bày tỏ quan điểm của mình về bài viết bằng cách để lại bình luận và đánh giá 5 sao Khi sinh viên đánh giá 5 sao, trạng thái "Đã Vote - 5 Sao" sẽ hiển thị trong bài viết Các bình luận của sinh viên cũng sẽ được hiển thị trực tiếp trong nội dung bài viết, tạo cơ hội cho sự tương tác và góp ý.
• 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
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 –
* 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 tới tài khoản đăng bài, đồng thời có thể áp dụng biện pháp 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
4a.1a Khi Actor 2 đã chỉnh sửa thì bài đăng thì sau khi sửa sẽ được cấp nhật lại trên hệ thống
4a.2a Actor 2 xóa bài đăng thì trên hệ thống sẽ không còn bài đă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 3.1: UI Đăng bài (Giao diện 1)
Hình 3.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 3.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 3.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 3.1: UI tìm kiếm theo danh mục
Hình 3.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 3.1: UI đăng nhập cho quản trị viên
Sơ đồ ERD
Hình 3.1: Sơ đồ ERD (Tiếng Việt)
Việc sử dụng tiếng Anh để đặt tên bảng giúp rút ngắn và đơn giản hóa quá trình này, tránh sự dài dòng trong tiếng Việt.
Hình 3.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ể bị 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 3.1: Sơ đồ Robustness cho usecase đăng bài
3.8.2 Robustness Diagram cho usecase tìm kiếm
Hình 3.1: Sơ đồ Robustness cho usecase tìm kiếm
3.8.3 Robustness Diagram cho usecase thống kê
Hình 3.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 3.1: Sơ đồ sequence cho usecase đăng bài
3.9.2 Sequence Diagram cho usecase tìm kiếm
Hình 3.1: Sơ đồ Sequence cho usecase tìm kiếm
3.9.3 Sequence Diagram cho usecase thống kê
Hình 3.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 4.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 4.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 4.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 4.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 4.1: Giao diện cập nhật thông tin cá nhân
Hình 4.1: Giao diện đăng bài
4.1.7 Giao diện quản lý bài đăng cá nhân
Hình 4.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 4.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 4.1: Giao diện chi tiết bài đăng
4.1.10 Giao diện comment bài đăng món đồ
Hình 4.1: Giao diện comment bài đăng
4.1.11 Giao diện đánh giá bài đăng món đồ
Hình 4.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 4.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 4.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 4.1: Giao diện quản lý sinh viên