Giter Club home page Giter Club logo

int2208-8-2019's People

Contributors

17020932 avatar 1m93 avatar buidanhtuan avatar dat15021999 avatar hoangkimminh avatar hoanphi2201 avatar hungle051902 avatar khaitran2171999 avatar lightkuriboh avatar maivtt avatar nguyengiangk62uet avatar nguyenhuunam99 avatar nguyenquanghiep17 avatar nguyentienson28051999 avatar nguyentuanvu2105 avatar ohmygod481999 avatar onethousanddong avatar paulthoms avatar phamhung99 avatar phuctd99 avatar thangnmuet2017 avatar thanhthanhquy avatar thanhvh99 avatar thuynt99 avatar tiep2999 avatar tranthiensonuet avatar trunganhvu avatar truonganhhoang avatar tungminh111 avatar tungvv318 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

int2208-8-2019's Issues

Là người quản lý, tôi muốn có chức năng đăng nhập để quản lý những người dùng ứng dụng của mình. (Nguyễn Thị Phương Đông - 17021186)

  1. Quy tắc INVEST:
  • Independent: User story độc lập với hầu hết các tính năng khác, có thể thực hiện riêng.

  • Negotiable: Việc đăng nhập có thể được bổ sung thêm một số hình thức như: đăng nhập trực tiếp bằng tài khoản do người dùng lập, đăng nhập thông qua mạng xã hội khác,...

  • Valuable: Việc thêm tính năng đăng nhập giúp người quản lý dễ dàng quản lý và phân biệt các người dùng với nhau.

  • Estimable: Có thể được phát triển trong 3-5 ngày và thường được làm đầu tiên.

  • Small: Tính năng đủ để một người làm trong thời gian 3-5 ngày với công cụ sẵn có.

  • Testable: Thử đăng nhập bằng tài khoản đúng, tài khoản sai hoặc chưa tồn tại.

  1. Công việc cần làm:
  • Tìm hiểu về Python và Framework Django đặc biệt lưu ý đến phần tạo Form login (1 ngày).

  • Cài đặt Form login của Django để có chức năng login với giao diện sơ khai (2-3 giờ).

  • Thử với tài khoản đã có, tài khoản chưa có hoặc tài khoản sai.

  • Tạo liên kết các API để đăng nhập bằng mạng xã hội khác (1 ngày).

  • Thử đăng nhập bằng các mạng xã hội đã liên kết.

  • Tìm hiểu Html, CSS để thiết kế giao diện đẹp hơn (1 ngày).

Là khách hàng , tôi muốn có chức năng tìm kiếm sách để tiết kiệm thời gian công sức<Trần Duy Phúc>

Đánh giá dựa trên phương pháp INVEST:

  1. Independent : là một chức năng độc lập không phụ thuộc bất kì chức năng nào khác, khi thay đổi không ảnh hưởng đến các chức năng khác
  2. Negotiable : có tính linh hoạt, có thể thay đổi bất cứ lúc nào để phù hợp yêu cầu của khách hàng
  3. Valuable : giúp tìm kiếm nhanh chóng tiết kiệm thời gian
  4. Estimable : Xác định được khoảng thời gian cần thiết để hoàn thành yêu cầu dựa vào tasklist
  5. Small : Đủ nhỏ và đơn giản , dễ hiểu có thể nắm bắt nhanh
  6. Testable : Có thể kiểm tra, đánh giá thành quả xem thực hiện đúng chức năng hay chưa

Các bước thực hiện:

  • Làm rõ yêu cầu(30') edx
  • Tạo giao diện của thanh tìm kiếm và button Search trên màn hình trang chủ (1h) w3school / commit
  • Tạo trang trả về kết quả tìm kiếm (1h)commit
  • Tìm hiểu cách sử dụng Database(3h) w3school
  • Kết nối với database(30') w3school
  • Tìm kiếm khi click button Search hoặc nhấn nút Enter (1h)commit
  • Nếu người dùng chưa nhập nội dung thì đưa ra thông báo(10')commit
  • Trả về tất cả những cuốn sách liên quan "Keyword" mà người dùng nhập lên màn hình kết quả (1,5h)commit
  • Nếu không có kết quả nào thì đưa ra thông báo(10')commit
  • Kiểm tra chức năng xem hoạt động đúng chưa, đáp ứng yêu cầu của khách hàng chưa(1h) edx

Demo issues:
https://www.youtube.com/watch?v=Nw9gd7uVp6U

Là một người dùng, tôi muốn có một tài khoản để tôi có thể chơi trò chơi đố vui và xem hồ sơ của tôi (Lý Minh Nghĩa)

1. Đảm bảo tiêu chí INVEST:

  • Independent: Tạo cơ sở dữ liệu, trang đăng nhập, đăng kí, thông tin cá nhân của người dùng cơ bản độc lập với các tính năng khác.

  • Negotiable: Tính năng có thể đàm phán được. Nhóm phát triển có thể dựa vào yêu cầu của người dùng phát triển tính năng cho phù hợp, dễ dàng thay đổi trong tương lai.

  • Valuable: Có giá trị với người dùng. Với tài khoản có thông tin cá nhân của riêng biệt người dùng có thể có thông tin cá nhân của riêng mình và dễ dàng phân biệt được với các người dùng khác.

  • Estimable: Nhóm phát triển có thể ước lượng được khối lượng cũng như thời gian hoàn thành công việc.

  • Small: Tính năng đủ nhỏ để có thể xây dựng trong thời gian tương đối.

  • Testable: Sau khi hoàn thành tính năng, nhóm phát triển có thể tự kiểm thử trước khi kết hợp với các tính năng khác.

2. Các công việc cần làm

  • Thu thập yêu cầu của người dùng về User Story (2 giờ)

  • Lên ý tưởng vẽ mô phỏng cơ sở dữ liệu người dùng (1 giờ 30 phút) Hướng dẫn tạo CSDL

  • Lựa chọn sử dụng database MySQL (15 phút) MySQL

  • Tạo cơ sở dữ liệu lưu thông tin người dùng bằng database MySQL (30 phút) Học MySQL

  • Lên ý tưởng giao diện đăng nhập, đăng kí cho người sử dụng (30 phút)

  • Tạo giao diện đăng nhập, đăng kí cho người dùng sử dụng html, css, javascript (1 giờ 30 phút) Tài liệu học

  • Chia nhỏ mã nguồn thành các file nhỏ hơn để quản lý (1 giờ) Tài liệu

  • Cải thiện giao diện bằng bootstrap 4 (1 giờ) Bootstrap

  • Kiểm thử lại phần giao diện đã hoàn thiện (30 phút) Kiểm thử

  • Lựa chọn làm backend bằng Node.js (10 phút) Node.js

  • Thực hiện tìm hiểu phân tích giao diện đã hoàn thiện để thiết kết backend phù hợp (1 giờ)

  • Thực hiện làm backend cho phần đăng kí của người dùng (1 giờ) Học Node.js

  • Kiểm tra lại xem khi thực hiện đăng kí tài khoản có được thêm vào database đầy đủ không (10 phút)

  • Thực hiện làm backend cho phần đăng nhập của người dùng (1 giờ) Học Node.js

  • Kiểm tra lại việc thực hiện đăng nhập với tất cả các tài khoản trong database (15 phút)

  • Kết hợp phần đăng nhập, đăng kí và thực hiện đăng kí rồi đăng nhập lại bằng chính tài khoản đó (30 phút)

  • Mã hóa mật khẩu bằng bcrypt trước khi đưa vào database MySQL (30 phút) Mã hóa bcrypt

  • kiểm thử lại backend đã hoàn thiện (1 giờ 30 phút) Kiểm thử

  • Thực hiện liên kết các trang đăng nhập, đăng kí với phần backend đã hoàn thiện (1 giờ)

  • Tối ưu source code, comment cẩn thận để tăng tốc độ và dễ bảo trì phát triển tính năng mới (1 giờ 30 phút) Cách tăng tốc

  • Thực hiện việc kiểm thử toàn bộ chương trình đã hoàn thành để tìm lỗi (2 giờ) Kiểm thử toàn bộ Web

  • Triển khai user story

Video demo chức năng theo user story: https://youtu.be/FbFcPiUAPEI

Bài tập nhóm tuần 1

Mỗi nhóm chọn một ứng dụng nhỏ để thực hành xây dựng phần mềm. Ví dụ có thể chọn một module của kahoot, hay quizizz hay quizalize để làm.

Mỗi nhóm tạo một file readme.md trong thư mục "nhom-X" với X là số của nhóm mô tả
Tên ứng dụng:
Các nhóm người dùng:
Mô tả tóm tắt phần mềm (5-10 câu)
Phác thảo các màn hình chính của ứng dụng.

Trước buổi học tiếp theo, mỗi nhóm nộp bài (file readme.md) bằng pull request. Phác thảo màn hình nên tìm các (tìm công cụ có sẵn). Tốt hơn thì học và thiết kế giao diện dựa trên bootstrap luôn. Trong file readme.md có thể link đến các tài liệu khác nếu cần.

Mỗi sinh viên tự học, tìm hiểu kiến thức môn học thông qua các học liệu đã cung cấp, và đặt/ trả lời các câu hỏi ngay trên các tài liệu này. Tự học một số kiến thức cơ bản về HTML, CSS, JavaScript, Firebase/MongoDB/MySQL,.. để làm ứng dụng web trong môn học này.

https://medium.com/codingthesmartway-com-blog/the-2019-roadmap-to-fullstack-web-development-1bba67a54ae8
https://hackernoon.com/7-best-web-development-backend-frameworks-in-2018-22a5e276cdd

Là một người có nhu cầu thuê nhà/phòng, tôi muốn tìm loại phòng phù hợp cho mục đích và điều kiện của bản thân (Nguyễn Mạnh Thắng)

Theo quy tắc INVEST

  • Independent: User story trên là độc lập với các user story khác
  • Negotiable: User story này có thể thương lượng được khi xây dựng tính năng
  • Valuable: User story là có giá trị với người cần người ở ghép (để tìm được người ở cùng)
  • Estimable: Có thể ước lượng được lượng công việc gồm những nhiệm vụ gì, ưu tiên thực hiện và thời gian cho mỗi nhiệm vụ
  • Small: User story đủ nhỏ
  • Testable: Có thể test được để đánh giá kết quả

Những công việc cần làm

  • Sử dụng MXH và các trang web khác về nhà trọ để tìm hiểu cách thức tìm người ở ghép (1.5 h)
  • Sau khi tìm hiểu, phân tích tìm ra những yêu cầu chính để thiết kế chức năng (2h)
  • Tìm danh sách quận huyện và xã phường của TP Hà Nội (2h)
  • Tìm nguồn địa chỉ để tạo cơ sở dữ liệu (4h) (tại Facebook hoặc các trang như phongtot.vn, ...)
    (4 task lists trên tương ứng với Requirements Elicitation )
  • phân rã giao diện trang thành các thành phần độc lập nhau (module)
  • Tạo bố cục cơ bản của trang bằng HTML và CSS cho từng module đó (1 ngày)
  • Sử dụng thêm Bootstrap 4 và JavaScript để trang trí thêm (2 ngày)
    (3 task lists tương ứng với Decomposition )
  • Thiết kế và thiết lập Cơ sở dữ liệu (4h)
  • Tạo các controller để xử lý dữ liệu (đăng nhập, đăng xuất, tải dữ liệu, kết nối database,..)
  • Thiết lập kết nối CSDL vào trang (3h)
  • Hiển thị kết quả phù hợp của chức năng (3h)
    (4 task lists tương ứng với Design Patterns: MVC )
  • Thêm chức năng sắp xếp theo giá và thời gian đăng (3h) Cải thiện thiết kế
  • Kiểm thử hộp trắng dựa trên mã nguồn (3h) White Box Testing
  • Kiểm thử hộp đen dựa vào đặc tả yêu cầu (3h) Black Box Testing
  • Bảo trì, cải tiến code, tránh mã xấu (1-2 ngày) Refactoring and Code smells
  • Kiểm thử chấp nhận của người dùng (3h) Kind of tests
  • Triển khai trên website (4h)

Là một khách hàng, tôi muốn có thêm chức năng phân loại sản phẩm theo cấu hình, mức giá, thương hiệu,..., để tôi có thể chọn sản phẩm phù hợp nhanh hơn(Đỗ Lương Khoa)

1. INVEST

  • Independent: User story trên hoàn toàn độc lập, không bị phụ thuộc vào các user story khác.

  • Negotiable: User story không được mô tả quá chi tiết, mà sẽ được làm rõ trong quá trình triển khai.

  • Valuable: User story này hoàn toàn có ích với khách hàng.

  • Estimable: User story này có thể ước lượng để lên kế hoạch được(Khoảng một tuần).

  • Small: User story này đủ nhỏ.

  • Testable: User story kiểm thử được để xác nhận kết quả.
    2. Công việc:

  • Làm rõ yêu cầu của User story.

  • Xây dựng User story dựa trên mô hình MVC.

  • Tạo thanh phân loại hàng với các mục: Thương hiệu, mức giá, cấu hình.(1h)

  • Trong mỗi mục tạo các sự lựa chọn.(2h)

  • Liên kết với cơ sở dữ liệu để truy xuất các sản phẩm.(2h)

  • Phối hợp các lựa chọn của người dùng để tìm được các kết quả phù hợp.(2h)

  • Trả về kết quả các sản phẩm phù hợp với lựa chọn người dùng trên giao diện.(1h)

  • Xây dựng các ca kiểm thử hộp trắng để bao phủ các nhánh code.(3h)

  • Kiểm thử hộp đen để kiểm thử giao diện, chức năng.(2h)

As a customer, I want to register member so that my personal information is stored ( Lê Bá Công )

Analysis:

  • Independent: explicit, don't clash with the other
  • Negotiable: can propose preferences after
  • Valuable: facilitate for the customer
  • Estimable: estimate time, resources...
  • Small: just 2 views, 2 models
  • Testable: be able to integrate test as well as unit test

Task list:

  • Design login page UI

  • Create Customer model om database

  • Handle logic controller

  • Write unit test

  • Write integration test

  • Validate and evaluate the test

Là một người chơi, tôi muốn có một chế độ chơi cơ bản để dễ dàng chơi và kiểm tra kiến thức (Hoàng Kim Minh)

1. Đảm bảo tiêu chí INVEST:

  • Independent: tạo chế độ chơi cơ bản độc lập với các tính năng khác.

  • Negotiable: tính năng có thể đàm phán được. Nhóm phát triển có thể xây dựng nội dung trò chơi phù hợp với yêu cầu của người chơi, dễ dàng thay đổi trong tương lai.

  • Valuable: có giá trị với người dùng. Đây là sân chơi cơ bản để người chơi được tham gia trả lời các câu hỏi vừa để giải trí, vừa ôn luyện kiến thức.

  • Estimable: nhóm phát triển có thể ước lượng được khối lượng công việc.

  • Small: Tính năng đủ nhỏ để có thể xây dựng trong thời gian tương đối. Các công việc được xác định thời gian hoàn thành khá ngắn.

  • Testable: tính năng có thể kiểm thử do người dùng.

2. Các công việc cần làm

  • Thu thập và làm rõ yêu cầu cho user story (1h) Làm rõ yêu cầu

  • Xác định các component cần dùng cho user story (1h)

  • Học cách thiết kế giao diện cơ bản bằng Bootstrap 4 (3 ngày, 2h/ngày) Bootstrap Documentation

  • Thiết kế giao diện trang trò chơi cơ bản bằng HTML5 (2h) Link commit

  • Cải thiện giao diện bằng CSS3 và Javascript (2h)

  • Xây dựng classic game RESTful API (3h)

  • Hiển thị câu hỏi lên màn hình (30 phút) Link commit

  • Hiển thị kết quả cuối cùng của màn chơi (30 phút) Link commit

  • Đánh giá tính khả kiểm thử của user story (30 phút) Tính khả kiểm thử

  • Kiểm thử hộp trắng, với độ bao phủ >80% thì đạt yêu cầu (1h) White Box Testing

  • Kiểm thử hộp đen, dựa vào giao diện, chức năng, dùng phương pháp phân vùng tương đương hoặc phân tích giá trị biên hoặc đoán lỗi viết các ca kiểm thử (1h) Black Box Testing

  • Đánh giá mã xấu (1h) Code Smells

  • Tái cấu trúc mã nguồn, cải tiến các đoạn mã nguồn chưa tối ưu (1h) Refactoring

  • Thêm comment vào các vị trí cần thiết để code dễ đọc và quản lí hơn (1h) Rules for commenting code

3. Video mô tả: https://youtu.be/nehOPPW_pW4

Bài tập dự án nhóm - Scrum với Github

Tìm hiểu kỹ quy trình Scrum và áp dụng vào dự án của nhóm

  • Xác định các vai trong quy trình cho thành viên nhóm, đưa vào readme.md của thư mục của nhóm.
  • Người được giao vài nào thì viết nội dung công việc, trách nhiệm của người đó trong quy trình để phối hợp. Một người có thể làm nhiều vai.
  • Lập Product Backlog của dự án, đưa vào issues với label: product-backlog trên repo của nhóm trưởng.
    Xong bước 2 thì nhóm cùng thảo luận để tạo ra Sprint Backlog cho 2 tuần tiếp theo, tạo các issue tương ứng, gán label:sprint-backlog.

Sử dụng milestones của github để quản lý các sprints.
Tham khảo thêm: https://github.com/jvandemo/github-scrum-workflow

Thực hiện sprint

Sau khi thực hiện phần việc trên, trong 2 tuần tiếp theo, các thành viên nhóm nhận việc (dùng assignees của github) và giải quyết các việc (issues) đã tạo cho sprint. Khi giải quyết xong thì đóng các issues. Trong quá trình làm việc comment vào issues để trao đổi, ghi chú, thảo luận,..

Các nhóm dùng task list của github issues để mô tả các đầu việc có thể thực hiện dưới 1 giờ đồng hồ cho mỗi sprint backlog item.

hạn: 10/3/2019

Là một người mua hàng, tôi muốn có 1 trang để quản lí các sản phẩm mình có ý định mua ( Bùi Danh Tuấn )

Quy tắc INVEST:

  • Independent: user story này là một yêu cầu cụ thể và độc lập với các user story khác

  • Negotiable: câu chuyện này có thể thương lượng khi thêm các tính năng bổ sung từ khách hàng như giao diện hay các tính năng thêm, xóa, sửa hoặc các hình thức thanh toán

  • Valuable: user story này mang lại giá trị giúp người dùng có thể bán những sản phẩm mình không dùng nữa để tiết kiệm tiền

  • Estimable: Xác định được khoảng thời gian cần thiết để hoàn thành yêu cầu ( khoảng 1-2 tuần )

  • Small: Tính năng này đủ nhỏ và đơn giản để có thể nắm bắt nhanh chỉ cần có thể thêm và xóa các sản phẩm của người dùng

  • Testable: Có thể kiểm tra, đánh giá kết quả bằng các bài kiểm thử

Các bước thực hiện

Là một người quản lý tôi muốn có chức năng thêm, xóa cũng như hiện danh sách các người quản lý khác để quản lý website của mình một cách tối ưu nhất (Hoàng Văn Định)

Các tiêu chí INVEST

  • Independent: User story trên có thể độc lập với các user story khác, có thể thực hiện riêng biệt.

  • Negotiable: User Story có thể thương lượng với bên phát triển.

  • Valuable:User story là có giá trị (cung cấp thông tin thêm thông tin cho người dùng).

  • Estimable: Có thể ước lượng được lượng các công việc và các mốc thời gian hoàn thành.

  • Small: User story đủ nhỏ.

  • Testable: Có thể test được để đánh giá kết quả(thường user story này kèm theo các bài học nên rất dễ kiểm thử ).

Những công việc cần làm:

  • Xây dựng user story dựa trên mô hình MVC.

  • Phác thảo giao diện admin - ( dùng html, css, bootstrap, js).

  • Thiết kế cơ sở dữ liệu lưu trữ thông tin của quản trị viên.

  • Kết nối cơ sở dữ liệu( dùng SQL).

  • hiện thị các thông tin admin được lấy từ cơ sở dữ liệu( dùng SQL, PHP).

  • Vận hành và kiểm thử ().

Bài tập về nhà tuần 3 đến tuần 6

  1. Mỗi sinh viên tạo thư mục cá nhân với tên theo mẫu: NguyenVanA.
  2. Chụp ảnh màn hình thể hiện tiến độ tự học khóa học SoftEng1x và lưu vào file với tên: SoftEng1x.jpg và để vào thư mục trên.
  3. Nộp bài tập cho trưởng nhóm để trưởng nhóm tạo pull request nộp cho giáo viên khi cả nhóm xong.

Mỗi khi hoàn thành một module của khóa học, sinh viên chụp ảnh để báo cáo tiến độ, không cần thay đổi tên file.

Là một người khách hàng online , tôi muốn chức năng hiển thị danh mục sản phẩm và hiển thị sản phẩm theo danh mục(Võ Lộc Anh)

THEO QUY TẮC INVEST

  • Independent: User story trên là độc lập , chức năng độc lập với các chức năng khác
  • Negotiable: User story này có thể thương lượng được khi xây dựng tính năng như là thịnh hành, bán chạy,..
  • Valuable: User story là có giá trị với khách hàng tiết kiệm thời gian, lựa chọn được sản phẩm phù hợp nhất.
  • Estimable: Có thể ước lượng được lượng công việc và thời gian hoàn thành
  • Small: User story đủ nhỏ
  • Testable: Có thể test được để đánh giá kết quả

NHỮNG CÔNG VIỆC CẦN LÀM

  • Phân tích userstory và làm ra kê hoạch phát triển

  • Lựa chọn mẫu thiết kế MVC cho sản phầm và trao đổi tìm tài liệu
    API

  • Tham khảo các trang web đã có trên mạng để tham khảo giao diện, chức năng và yêu cầu

  • Thiết kế khung , ý tưởng hiển thị sản phẩm mà khách hàng hướng tới

  • Xử lý html

  • Xứ lý css

  • Submit lên github phần giao diện cơ bản nhất

  • Update giao diện sau khi link với mysql

  • Thiết kế cơ sở dữ liệu cho danh mục sản phẩm, phần tìm và làm csdl
    Cơ sở dữ liệu

  • Thiết kế cơ sở dữ liệu cho sản phẩm , tạo các thuộc tính về sản phẩm-hiện thị ra thành quả
    Cơ sở dữ liệu

  • Dựa vào ID của sản phẩm , cho phép sắp xếp sản phẩm theo danh mục code

  • Viết code để có thể hiển thị danh mục sản phẩm

Link code trên github

  • Lựa chọn và phân tích API phù hợp để triển khai vào code để tối ưu
    api

  • Lựa chọn kiểm thử hộp đen hoặc hộp trắng để sử dụng trong quá trình
    Testing

  • Làm sạch code, tối ưu hóa các class

  • Phát triển thêm cơ sở dữ liệu cho phong phú và nhiều lựa chọn

  • Kiểm tra lại cơ sở dữ liệu , xem xét lại từng ID cua sản phẩm cho phù hợp với danh mục sản phẩm
    Cho người dùng thử nghiệm
    Link youtube

Là một khách hàng, tôi muốn có chức năng hỗ trợ khách hàng để đặt ra câu hỏi hoặc góp ý tới quản trị viên (Vũ Thị Thanh Mai)

Quy tắc INVEST:

  • Independent: User Story cụ thể và độc lập với các User Story khác

  • Negotiable: Tính đàm phán được giúp cho Nhóm Phát triển và Product Owner cùng nhau xây dựng nội dung chi tiết và phụ hợp hơn cho những thay đổi trong tương lai

  • Valuable: User Story có giá trị với khác hàng, khách hàng được hỗ trợ một cách nhanh chóng nhất

  • Estimable: Có thể ước lượng được lượng công việc và thời gian hoàn thành

  • Small: Tính năng đủ nhỏ để xây dựng trong một thời gian ngắn

  • Testable: Có thể kiểm thử được

Công việc cần làm:

  • Tạo form khung giao diện bằng html, css (email và message)

  • Giới hạn độ dài kí tự trong khung textarea của message

  • Kết nối database và table

  • Lấy dữ liệu post từ form

  • Xử lí, insert dữ liệu vào table có id của quản trị viên

  • Kiểm tra các text box, button

  • Kiểm tra các sơ đồ, bảng cơ sở dữ liệu

Là một người mua hàng tôi muốn có 1 trang hiển thị thông tin chi tiết sản phẩm để lựa chọn chính xác hơn (Nguyễn Thị Thúy)

Quy tắc INVEST:

  • Independent: user story này là cụ thể và độc lập với các user story khác

  • Negotiable: câu chuyện này có thể thương lượng khi thêm các tính năng bổ sung

  • Valuable: user story này mang lại giá trị giúp người dùng xem thông tin chi tiết sản phẩm mình chọn trước khi mua.

  • Estimable: Xác định được khoảng thời gian cần thiết để hoàn thành yêu cầu khoảng 6-7 tiếng.

  • Small: Tính năng này đủ nhỏ và đơn giản để có thể nắm bắt nhanh chỉ cần hiển thị hình ảnh và thông tin(số lượng, tình trạng, màu sắc) sản phẩm.

  • Testable: Có thể kiểm tra, đánh giá kết quả bằng kiểm thử.
    Các bước thực hiện

  • Làm rõ yêu cầu của user story ( đổ dữ liệu thông tin chi tiết từ cơ sở dữ liệu ra giao diện). User story

  • Lựa chọn mô hình thiết kế MVC .MVC

  • Thiết kế giao diện hiển thị thông tin chi tiết và tạo form để lựa chọn chi tiết sản phẩm ( size, màu sắc,...) Bootstrap4, Jquery , Link commit

  • Kết nối cơ sở dữ liệu đổ cơ sở dữ liệu ra giao diện.

  • Thêm tính năng xem chi tiết ảnh(phóng to ảnh). Link commit

  • Hiển thị chính sách mua hàng của trang web. Link commit

  • Thêm chức năng thêm vào giỏ hàng/mua ngay. Link commit

  • Áp dụng kiểm thử hộp trắng để bao phủ tối đa các nhánh code. White box testing

  • Tối ưu code và hoàn thành sản phẩm.

Link bài tập cá nhân demo chức năng: https://www.youtube.com/watch?v=st1_EyGOwvg

Là một khách hàng tôi muốn có một trang hiển thị thông tin chi tiết sản phẩm để có thể hiểu rõ hơn về sản phẩm(Nguyễn Trần Phương Thảo)

Quy tắc INVEST:

  • Independent: User story này độc lập với các user story khác.

  • Negotiable: Chức năng này có thể thương lượng hoặc điều chỉnh theo mong muốn của khách hàng.

  • Valuable: Khách hàng có thể hiểu được thông tin,tính chất và giá cả về sản phẩm mình dự định mua một cách rõ hơn để đưa ra quyết định.

  • Estimate: Xác định được khoảng thời gian cần thiết để hoàn thành yêu cầu khoảng 1 - 2 ngày.

  • Small: Tính năng này đủ nhỏ và đơn giản để có thể nắm bắt nhanh chỉ cần hiển thị hình ảnh và thông tin(số lượng, tình trạng, màu sắc) sản phẩm.

  • Testable: Có thể kiểm tra, đánh giá bằng kết quả kiểm thử

Công việc cần làm:

  • Xây dựng user stories User stories
    Viết user stories hiệu quả
  • Làm rõ yêu cầu của user stories(Xây dựng cần những cái gì, tính năng nào)
  • Lựa chọn mô hình thiết kế MVC MVC
  • Lựa chọn sử dụng cơ sở dữ liệu MongoDB
  • Học HTML,CSS,Jquery cơ bản
    Học HTML,CSS,Jquery
  • Tạo 1 form để hiển thị thông tin (Có hình ảnh sản phẩm và thông tin sản phẩm) sử dụng HTML, CSS,Jquery.
  • Liên kết cơ sở dữ liệu MongoDB
    Tài liệu
  • Kiểm thử hộp trắng
    EDX
  • Kiểm tra lại mã nguồn xem có mã xấu hay không. Nếu có mã xấu thì sửa lại đoạn mã đó
    Tài liệu

Link video demo: Link

Là một khách hàng, tôi muốn có chức năng tìm kiếm để có thể tìm kiếm sản phẩm mong muốn một cách nhanh nhất ( Trần Văn Khải)

Đánh giá theo quy tắc INVEST:

  1. Independent: là một chức năng độc lập với các chức năng khác.
  2. Negotiable: có tính linh hoạt cao, có thể thay đổi(giao diện, nội dung tìm kiếm ) tùy theo yêu cầu và mong muốn của khách hàng.
  3. Valuable: giá trị sử dụng cao, giúp người dùng tra cứu một cách thuận tiện và nhanh chóng, chỉ cần gõ tên mã hoặc model của sản phẩm sẽ ra chi tiết sản phẩm.
  4. Estimable: ước lượng được khoảng thời gian là lượng công việc( khoảng 1 tháng)
  5. Small: tính năng đủ nhỏ để hoàn thiện trong thời gian yêu cầu.
  6. Testable: có thể kiểm tra.

Các công việc cần thực hiện:

Là khách hàng, tôi muốn lựa chọn sản phẩm và bắt đầu công việc mua hàng để có được sản phẩm mong muốn (Nguyễn Thị Thanh Quý)

Quy tắc INVEST

  • Independent: đây là một chức năng xem sản phẩm trên trang chủ hoàn toàn độc lập với các chức năng khác
  • Negotiable: việc miêu tả user story trên là đủ rộng để hai bên có thể thương lượng thêm chi tiết
  • Valuable: user story này mang lại giá trị giúp người dùng tìm kiếm sản phẩm tốt hơn
  • Estimable: xác định được thời gian hoàn thành chức năng 2-3 tuần
  • Small: user story đủ nhỏ và đơn giản để ước lượng
  • Testable: đủ các tính năng để có thể kiểm thử được

Các công việc cần làm:

  • Xây dựng user story

    tham khảo Tạo userstory tốt

  • Làm rõ yêu cầu của user (Xây dựng giao diện gồm những gì, có những tính năng cần thiết nào,...)

  • Lựa chọn hệ quản trị dữ liệu MongoDB, cài đặt MongoDBCompass để quản lí cơ sở dữ liệu tại máy(phía local)

Thiết kế giao diện

  • Tạo giao diện trang chủ.

    • tạo nội dung và những hiệu ứng cơ bản cho trang chủ cần có

    Tài liệu: học html,css cơ bản

    • Tạo những hiệu ứng phức tạp hơn và tương tác đơn giản ban đầu

    Tài liệu: Học JS,bootstrap

  • profile người dùng

  • Các giao diện có liên quan khác

Tạo 1 trang web động

  • Lựa chọn, tìm hiểu NodeJS- frameWork Express cho việc tạo trang web

Tài liệu: Xây dựng web động sử dụng nodejs

  • Liên kết với cơ sở dữ liệu MongoDB

Tài liệu: Sử dụng mongodb cho việc quản lí dữ liệu

Xây dựng các tính năng

Cập nhật và kiểm thử

  • Cập nhật và kiểm thử

Link video demo: Link

Là một người quản lý tôi muốn có chức năng lọc, tìm kiếm, sắp xếp, thay đổi trạng thái một hoặc nhiều đề thi để quản lý thuận tiện hơn (Nguyễn Trường Giang)

Nguyên tắc INVEST:

  • Độc lập: Không phụ thuộc vào các userstory khác, có chức năng riêng là lọc các môn học theo trạng thái.
  • Có thể thương lượng: Bàn bạc về phương án triển khai như thiết kế giao diện, thực hiện chức năng lọc bằng API.
  • Có giá trị với khách hàng: Dùng để lọc đề thi các môn học mà khách hàng cần, khách hàng có thể góp ý để thêm các môn học hay sửa chữa cho hợp lý.
  • Ước lượng được: Mức độ ưu tiên khá quan trọng, là thành phần cần thiết giúp người dùng có thể tìm kiếm môn học dễ dàng hơn.
  • Đủ nhỏ: Không quá lớn, thực hiện vẽ giao diện trong khoảng 2 giờ, thiết kế chức năng lọc trong 2 giờ, kiểm thử trong 1 giờ.
  • Có thể kiểm thử: Có thể dùng các test case để kiểm thử, kiểm thử theo yêu cầu người dùng và các chuẩn mực quy định.

* Task list:

Các công việc cần làm

  • Vẽ sơ đồ tương tác giữa các component User - List - Exam - Form (30p) EDX

  • Làm rõ yêu cầu (tạo các chức năng để quản lý các đề thi như lọc, tìm kiếm, sắp xếp, thay đổi trạng thái) EDX

Chức năng lọc, tìm kiếm và sắp xếp

  • Viết HTML (lợi dụng phần đã làm từ issue trước) (40p) issue

  • Chỉnh sửa các textbox, button, dropdown bằng CSS commit (30p)

  • Setup dữ liệu cho dropdown (status, subject) (30p) issue

  • Viết hàm thực hiện chức năng lọc, tìm kiếm (filterExams()) commit (1h)

  • Thêm các icon sắp xếp (sử dụng font-awesome) (30p) source

  • Viết hàm thực hiện chức năng sắp xếp commit (30p)

Chức năng thay đổi status, special của một hoặc nhiều đề thi

  • Tạo các select box, một select box chọn tất cả commit (1h)

  • Gọi API put để thay đổi status, special một hoặc nhiều đề thi (Hoàn đã làm và deploy lên server để cả nhóm làm chung) (1h) REST

  • Viết hàm gửi dữ liệu lên server commit (30p)

  • Viết hàm xử lý chức năng thay đổi status, special commit (1h)

  • Báo lỗi chung [(30p)] Tài liệu Edx

  • Kiểm thử (24h) Tài liệu Edx

Tài liệu tham khảo:
Bài giảng tiếng Việt
Khóa học SoftEng1x

As a user, i need a feature to guide me to use the application, so that i will not meet any difficulties using it. (<Phạm Ngọc Hiếu>)

  1. Quy tắc INVEST
  • Independent: Nó độc lập với các User Story khác, có thể thực hiện riêng mà không ảnh hưởng đến các User Story khác.
  • Negotiable: Có thể chỉnh sửa dễ dàng bằng cách thay đổi các hành động của class đại diện cho các đối tượng.
  • Valuable: Giúp người dùng hiểu hơn về các tính năng của ứng dụng.
  • Estimable: User Story có thể ước lượng được thời gian hoàn thành, các tasks đều đã có nguồn thông tin cách làm và ước lượng được thời gian hoàn thanh từng phần.
  • Small: Đủ nhỏ để xây dựng trong thời gian ngắn, dễ dàng lên kế hoạch cùng các User Story khác.
  • Testable: Có thể dễ dàng kiểm thử bằng Automation Test và Manual Test.
  1. Các công việc cần làm:

Low level Design
Another document

  • Tạo class Guide, class này điều khiển các hành động trên UI
    Commit

Interface Segregation
Another document
Tạo UI trên App với XML

  • Tạo ScrollView với khả năng cuộn để phòng trường hợp Guideline quá dài và format sao cho đẹp nhất.
  • Tạo Webview trong ScrollView bên trên để dễ dàng hiển thị Guideline với style như ý muốn.
  • Tạo Button để người dùng ấn sau khi đã hiểu hết Guideline, cùng với đó là Event Button được click cũng như activities sẽ được thực hiện khi có event.
    Commit

Documentation

  • Lên nội dung cho Guideline, để người dùng một cách hiệu quả nhất hiểu được cách sử dụng và các tính năng của ứng dụng.
    Commit

Testing

  • Nếu nội dung Guideline quá dài, ScrollView vẫn cung cấp ScrollBar cho việc hiển thị dễ dàng hơn.
  • Màu sắc, phông chữ Guideline trong WebView hợp lý, ổn định trên các thiết bị.
  • Khi Button Done, tức là đã xong Guideline, màn hình chuyển về giao diện chính của ứng dụng.
  • Khi người dùng muốn đọc lại hướng dẫn, ấn Back từ giao diện chính của ứng dụng để đọc hướng dẫn.

Là khách hàng, tôi muốn vào trang chủ để tham khảo và chọn mua sản phẩm (Vũ Văn Tùng)

1. Quy tắc INVEST

  • Independent: Độc lập không liên quan đến các User Story khác
  • Negotiable: Có thể chỉnh sửa dễ dàng bằng cách thay đổi dữ liệu
  • Valuable: Giúp người mua có thể mua được sản phẩm
  • Estimable: Có thể ước lượng được thời gian hoàn thành
  • Small: Đủ nhỏ để xây dựng trong thời gian ngắn
  • Testable: Có thể dễ dàng kiểm thử

2. Các công việc cần làm

  • Tạo menu đa cấp (20p) link tham khảo
  • Thực hiện thêm css để trang web đẹp hơn (30p) link tham khảo
  • Suy nghĩ các thuộc tính và thực hiện tạo đối tượng (30p)
  • Thực hiện viết hàm lưu đối tượng xuống database (30p)
  • Thực hiện viết hàm để load đối tượng đã lưu ở database lên giao diện (1h) link tham khảo
  • Thực hiện kiểm thử hộp đen để kiểm tra hiển thị có đúng với ý định code (1h) link tham khảo
  • Thực hiện kiểm thử hộp trắng để kiểm tra cách tổ chức code, logic code (1h) link tham khảo

Là một người dùng tôi muốn có thể đăng nhập bằng facebook, google để tiết kiệm thời gian tham gia vào ứng dụng (Phí Xuân Hoàn)

  • Làm rõ yêu cầu (giao diện như thế nào, sau khi đăng nhập chuyển đến trang nào, cần những dữ liệu nào mà google, facebook trả về hệ thống của mình) edx

  • Thẩm định yêu cầu edx

  • Các yêu cầu khác (giao diện di động, yêu cầu về hiệu năng ...) edx

  • User story được xây dựng dựa trên mô hình MVC kết hợp API edx edx edx edx edx

  • Tìm tài liệu đọc về google auth và faccebook auth
    Google: url
    Facebook: url

  • Tạo ứng dụng trên nền tảng facebook, google để có được facebook app id và google client id (1-2 giờ)
    Google: url
    Facebook: url

  • Xây dựng giao diện đăng nhập. gồm các input đăng nhập bằng local. các nút nhấn có biểu tượng facebook, google (2 giờ) bootstrap w3school edx | commit

  • Thiết kế sơ đồ tương tác ví dụ như các tiện ích bằng nút nhấn chuyển trang (ví dụ như ở trang đăng nhập thì họ sẽ có xác suất đến trang đăng ký) edx | commit

  • Kiểm tra dữ liệu form đăng nhập commit

  • Viết Service yêu cầu trả về dữ liệu người dùng của facebook, google (cần custom để lấy thêm thông tin) (2-3 giờ) commit commit

  • Viết service gửi thông tin người dùng cho server của hệ thống thực hiện xác minh commit

  • Viết API ghi nhận người dùng vào hệ thống (2-3 giờ) commit commit

  • Xử lý download ảnh đại diện về hệ thống của mình (1-2 giờ) commit commit

  • Xử lý trùng tên đăng nhập (1 giờ) commit commit

Testing

  • Kiểm thử hộp trắng độ bao phủ edx

  • Kiểm thư giao diện (reponsive, text, ...) edx

  • Unit Testing với Karma và Jasmine tài liệu

  • Cho các thành viên trong nhóm kiểm thử và dùng thử, mời 1 số người dùng trải nghiệm.

Quy tắc INVEST

  1. Independent: Không liên quan quá nhiều đến các câu chuyện khác trong dự án để đảm bảo tính thuận tiện, dễ quản lí khi thực hiện. đây không phải 1 việc cần làm đầu tiên trong dự án nhưng là cần thiết khi các thành phần khác hoàn thiện.

  2. Negotiable: Có thể thương lượng được, chi tiết về giao diện, chức năng sẽ được làm rõ qua trao đổi với khách hàng

  3. Valuable: Có giá trị lớn với người dùng, giúp người dùng tiết kiệm tối đa thời gian đăng kí (không phải điền form dữ liệu cồng kềnh nhiều khi gây ức chế cho người sử dụng).

  4. Estimable: Nhóm phát triển có thể ước lượng được khối lượng công việc để thuận lợi cho việc đánh giá mức độ ưu tiên và lên kế hoạch.

  5. Small: Tính năng đủ nhỏ để có thể xây dựng trong thời gian tương đối (đảm bảo tính ước lượng được). có thể hoàn thành trong 5 ngày.

  6. Testable: Có thể kiểm thử dễ dàng thông qua request đến google, facebook trả về dữ liệu không, hệ thống có ghi nhận đầy đủ thông tin người dùng hay không.

Là một khách hàng, tôi muốn lưu lại các sản phẩm tôi đã chọn để thuận tiện cho những lần mua hàng sau<Tác giả - Vũ Trung Anh>

Quy tắc INVEST:

  • Independent: user story độc lập cần tạo được tài khoản phân quyền.
  • Estimable: tính năng này cần tích hợp trong phần thông tin của mỗi tài khoản và kết quả dựa trên lịch sử mua hàng và ghi nhớ lại để có thể sử dụng
  • Negotiable: có thế thương lượng được về giá trị của ưu đãi (mã giảm giá, miễn phí giao hàng,...)
  • Valuable: Vấn đề này ảnh hướng đến lợi ích về kinh tế với khách hàng và chiến lược của cửa hàng.
  • Small: Đầu tiên là cần mỗi khách hàng một tài khoản để có thể lấy thông tin mua hàng trong quá khứ để tính toán ưu đãi đối với nhóm khách hàng khác nhau.
  • Testable: Tính năng này sẽ đưa vào sử dụng nếu đáp ứng được nhu cầu người mua và chiến lược marketing của của hàng.

Công việc cần làm:

  • Phân tích user stroy (lưu thông tin khách hàng khi đăng ký và đăng nhập từ những lần sau)(1h)
    Tài liệu
  • Lựa chọn mô hình thiết kế phù hợp là mẫu MVC và MVP (30p) -
    Design Patterns Low lever design
  • Lựa chọn mẫu thiết kế, giao diện và làm theo.(1h) - Tham khảo những trang bán hàng như shoppe, tiki, nike,...
    Tài liệu

  • Hoàn thành giao diện header, body, footer,...
    Sản phẩm
    Tài liệu:Bootsrap3,Bootsrap4

  • Lưu mặc đinh thử vài tài khoản xem có đăng nhập được không.(30p)
    link github, tài liệu nhờ bạn bè hộ trợ

  • Mã hóa mật khẩu bằng bcrypt trước khi đưa vào database MySQL (30 phút)
    Tài liệu

  • Làm thêm, thêm hàm để người dùng có thể đăng ký(1h)
    Link code tren github, tài liệu nhiều nguồn trên mạng

  • Kiểm thử hộp trắng khi đăng nhập như đúng, sai hay không có tài khoản,...(30p)
    Testing - Kiểm thử hộp trắng, nhưng chưa toàn diện

  • Lựa chọn API phù hợp để tích hợp vào sản phẩm cho tối ưu và dễ sử dụng(30p)

  • Mã hóa mật khẩu bằng bcrypt trước khi đưa vào database MySQL (30 phút)
    Mã hóa mật khẩu

  • Tạo thông tin lịch sử cho mỗi tài khoản. (30p)

  • Thiết kế thêm nút thêm, bớt xóa ở sản phẩm và trong giỏ hàng (1h)

  • Tạo thêm tính năng cập nhật giỏ hàng như thêm, bớt, xóa(2h)

  • Gửi thông điện đến server cho lưu lại thay đổi vào database(1h)

  • Làm sach code, fix lại nhưng lỗi khi kiểm tra, tối ưu hóa(2h)
    Tài liệu

  • Kiểm thử hôp đen với thực tế của product owner(2h)
    Testing - kiểm thử hộp đen

Là một người chơi, tôi muốn trang web có hình thức bố trí đẹp, màu sắc phù hợp để có trải nghiệm tốt cũng như cảm hứng khi chơi (Vũ Hà Thành)

Các tiêu chí INVEST

  • Independent: User story liên quan đến giao diện đồ họa, hiệu ứng trang web nên nó độc lập và thứ tự không ảnh hưởng đến các công việc khác
  • Negotiable: Có thể được sự thống nhất giữa nhóm phát triển, product owner, phù hợp với những thay đổi trong tương lai, giao diện của trang web có thể thay đổi theo sở thích của đa số người dùng
  • Valuable: Tạo sự thích thú cho khách hàng khi họ sử dụng, trải nghiệm sản phẩm
  • Estimable: Thiết kế giao diện sử dụng css và hiệu ứng trang web sử dụng JavaScript
  • Small: Chia nhỏ được thành hai phần là giao diện và hiệu ứng
  • Testable: Do công việc liên quan đến giao diện nên dễ dàng kiểm thử

Công việc cần làm

  • Thu thập, phân tích yêu cầu cho user story (2 giờ)
    Specifications (Đặc tả)

  • Lên ý tưởng giao diện cho trang chủ (1 giờ)
    Website templates

  • Lựa chọn công cụ để thiết kế ý tưởng
    Tài liệu: HTML5, CSS, JavaScript

  • Thiết kế khung trang chủ sử dụng HTML5 (1 giờ)

  • Xây dựng nội dung cho trang chủ (1 giờ)

  • Bổ sung thêm nội dung vào khung trang chủ (30 phút)

  • Lựa chọn tông màu áp dụng cho sản phẩm (30 phút)

  • Sử dụng CSS để xây dựng các file stylesheet dựa trên tông màu đã có (1 giờ)

  • Áp dụng kiểm thử hộp đen kiểm tra giao diện trang chủ (30 phút)
    Black box testing (Kiểm thử hộp đen)

  • Lên ý tưởng về hiệu ứng cho trang chủ (30 phút)

  • Sử dụng JavaScript để xây dựng các hiệu ứng (1 giờ)

  • Áp dụng kiểm thử hộp đen kiểm tra hiệu ứng (30 phút)
    Black box testing (Kiểm thử hộp đen)

  • Áp dụng kiểm thử hộp trắng kiểm tra mã nguồn của hiệu ứng (1 giờ)
    White box testing (Kiểm thử hộp trắng)

  • Tối ưu hóa mã nguồn, loại bỏ mã xấu, thêm comment để mã dễ đọc hơn (1 giờ)
    Code smells, Refactoring

  • Kiểm thử hộp đen toàn bộ trang chủ (30 phút)

As a developer, I want to store user's information in database so that I can manage them easily.( Nguyễn Tiến Sơn 17021002)

Họ và tên: Nguyễn Tiến Sơn
MSV:17021002
Nhóm : 19
Trang Web: Quizy
*: As a developer, I want to store user’s information in database so that I can manage them easily .
TIÊU CHÍ INVEST

  • Independent: Độc lập với các câu chuyện người dùng khác , không gây xung đột .
  • Negestiable: Liên tục mở rộng và cập nhật thông tin người dùng và phát triển thêm . Từ đó đưa ra trò chơi phù hợp với người chơi . Dễ dàng thay đổi trong tương lai để phục vụ các mục đích khác .
  • Valuable : Giúp đảm bảo an toàn dữ liệu người dùng , lưu giữ một cách nhanh chóng đơn giản . Phát hiện người dùng giả mạo thông tin hay có mục đích bất chính khác .
  • Estimable : Nhóm phát triển có thể ước lượng được những công việc cần làm để hoàn thiện chức năng.
  • Small : Tính năng này đủ nhỏ để có thể xây dựng trong một thời gian ngắn .
  • Testable : Công việc dễ kiểm thử , có thể kiểm tra xem người dùng viết sai , hay chưa đầy đủ thông tin.

CÁC CÔNG VIỆC CẦN LÀM

  • Thu thập yêu cầu

  • Đánh giá user story

  • Tạo cơ sở dữ liệu ( 15’)

  • Tạo Model người dùng (30’)

  • Kết nối cơ sở dữ liệu với model người dùng (30’)

  • Kiểm tra database bằng cách thêm thủ công người dùng và chỉnh sửa nếu có lỗi phát sinh (30 phút)
    Video mô tả : https://youtu.be/N5bMxCjCYdk

Là người mua hàng tôi muốn biết chi tiết sản phẩm (Nguyễn Hữu Nam)

  1. Giải pháp: trang chi tiết sản phẩm.
  2. Tuân thủ quy tắc INVEST:
    -Independent: Nó độc lập với các User Story khác, có thể thực hiện riêng
    -Negotiable: Có thể chỉnh sửa dễ dàng bằng cách thay đổi dữ liệu
    -Valuable: rất tiện cho khách hàng
    -Estimable: Có thể ước lượng được thời gian hoàn thành
    -Small: Đủ nhỏ để xây dựng trong thời gian ngắn
    -Testable: Có thể dễ dàng kiểm thử
  3. Các công việc cần làm:
  • Phân tích yêu cầu của người dùng (1 ngày)
    Quy trình yêu cầu: xác định các yêu cầu chức năng và yêu cầu phi chức năng từ phía khách hàng
    Tính chất của yêu cầu : yêu cầu cần phải đầy đủ, nhất quán, chính xác, xúc tích và không mâu thuẫn với nhau
    Làm rõ yêu cầu: xác định các chức năng cần có của sản phẩm
  • Xác định các thông tin cần hiển thị về sản phẩm
  • Tiến hành theo mô hình MVC
    Mô hình MVC: MVC bao gồm 3 lớp Model,View,Controller
  • Thêm button cho từng sản phẩm (1h)
  • Xây dựng giao diện trang chi tiết sản phẩm bằng HTML,CSS (sơ khai) (3h)
    Tham khảo
  • Kết nối cơ sở dữ liệu (1h)
  • Hiển thị thông tin sản phẩm đã xác định ở trên (1 ngày)
  • Kiểm thử cho từng sản phẩm (1 ngày)
    Kiểm thử hộp trắng: xây dựng các ca kiểm thử (test case) dựa trên kĩ thuật kiểm thử hộp trắng yêu cầu độ bao phủ trên 80%
    Kiểm thử hộp đen
  • Hoàn thiện giao diện (5h)
  • Loại bỏ mã xấu (1h)
    Code smell :định nghĩa mã xấu
  • Thêm comment và commit code cho nhóm
    commit

Là người nội trợ, tôi muốn tìm kiếm những món ăn ưa thích để nấu những món ăn ngon <Nguyễn Văn Huy - nhom28>

Quy tắc INVEST:

Independent: user story này hoàn toàn riêng biệt.
Negotiable: hiển thị linh hoạt dựa tìm kiếm của mỗi khách hàng.
Valuable: giúp người dùng truy cập nhanh tới các món dễ dàng nhất.
Estimable: 3 ngày
Small: tính năng dễ thực hiện vì chỉ cần so sánh dữ liệu nhập vào với dữ liệu có sẵn trong database.
Testable: kiểm thử dễ dàng.

Công việc cần làm:

  • tạo thanh tìm kiếm có thể nhập text. ( 15 phút)

  • tạo button tìm kiếm. ( 15 phút)

  • tạo giao diện các món ăn phù hợp. ( 1 tiếng )

  • kết nối giao diện với database. ( 3 tiếng)

  • Tìm hiểu ngôn ngữ python để tạo hàm tìm kiếm ( 2 ngày )

  • kiểm thử chức năng tìm kiếm

Là một học sinh sắp thi đại học, tôi muốn có đồng hồ đếm ngược thời gian thi đại học trên trang web học tập, để biết chính xác thời gian đến ngày thi (Nguyễn Hữu Minh Quang)

Quy tắc INVEST

  • Independent: User Story độc lập với các User Story khác

  • Negotiable: User Story có thể thương lượng với bên phát triển

  • Valuable: Có giá trị với khách hàng - Xác định được thời gian

  • Estimable: Ước lượng và có mức độ ưu tiên , không cần chia quá nhỏ

  • Small: User Story vừa đủ để thực hiện

  • Testable: Kiểm thử dễ dàng

Cách thực hiện

  • Xác định bố cục, vị trí đặt đồng hồ - 30 phút

  • Xây dựng đồng hồ - Xử dụng HTML/CSS/ JAVASCRIP - 4 giờ

  • Thêm các hiệu ứng cho đồng hồ(CSS) - 1 giờ

  • Kiểm thử - 1 giờ

  • Vận hành - 1 giờ

User Story:Là một khách hàng, tôi muốn có chức năng tìm kiếm, để có thể tìm kiếm sản phẩm mong muốn một cách nhanh nhất (Nguyễn Đức Hoàng).

THEO QUY TẮC INVEST:

  • Independent: User story trên là độc lập.
  • Negotiable: User story này có thể thương lượng được khi xây dựng tính năng.
  • Valuable: User story là có giá trị với khách hàng tượng tự.
  • Có thể ước lượng được lượng công việc và thời gian hoàn thành.
  • Small: User story đủ nhỏ.
  • Testable: Có thể test được để đánh giá kết quả.

Các công việc cần làm:

  • Lập giao diện tìm kiếm.

  • Nạp dữ liệu về các sản phầm.

  • Làm chức năng tìm kiếm: tìm kiếm bằng chữ nhập từ bàn phím.

  • Hiển thị những sản phẩm được tìm.

Là một người mua hàng, tôi muốn các sản phẩm được hiển thị theo từng danh mục để dễ dàng lựa chọn<Nguyễn Thị Ngọc>

Quy tắc INVEST:

  • Independent: user story này là cụ thể và độc lập với các user story khác

  • Negotiable: câu chuyện này có thể thương lượng, phát triển để phù hợp hơn với nhu cầu người dùng như ngoài lọc sản phẩm theo danh mục có thể thêm lọc theo giá sản phẩm,......

  • Valuable: user story này mang lại giá trị giúp người mua hàng dễ dàng lựa chọn được sản phẩm vừa ý mà không tốn thời gian

  • Estimable: có thể ước lượng được, đánh giá mức độ ưu tiên

  • Small: đủ nhỏ để thực hiện (khoảng 6 tiếng)

  • Testable: Có thể kiểm tra, đánh giá kết quả

Các bước thực hiện

Video demo sản phẩm đã làm đc: https://youtu.be/4Tn6buX5I5M

Là một học sinh, tôi muốn có chức năng phát âm cho từ vựng để tôi biết từ vựng đó phát âm chính xác như thế nào. <-Nguyễn Thành Đạt->

  • Independent: thêm chức năng phát âm
  • Negotiable: thực hiện được giống với từ điển thông thường
  • Valuable: đem lại tính năng gần gũi và thực tế
  • Estimate: 2 ngày
  • Small: tính năng đơn giản và gọn gàng
  • Testable: kiểm thử dễ dàng

Công việc cần làm:

  • Tìm hiểu về thư viện giọng nói, chọn lọc thư viện phù hợp

  • Thêm thư viện giọng nói đã tìm được

  • Tạo button và tính năng phát âm

  • Kết nối thư viện với database

  • Kiểm thử để xác định sai sót

Bài tập nhóm tuần 2

Mỗi nhóm tìm hiểu và chọn một quy trình trong nhóm phương pháp linh hoạt (agile methods) để nhóm áp dụng vào dự án của nhóm. Mô tả tóm tắt kế hoạch thực hiện theo các tuần dựa trên quy trình đã chọn để áp dụng vào file readme.md của nhóm.

Là một khách hàng, tôi muốn xem các sản phẩm được phân loại theo chức năng, để tìm mua dễ dàng và nhanh chóng hơn (Lê Xuân Hưng).

Quy tắc INVEST:

  • Independent: user story này độc lập với các user story khác.

  • Negotiable: chức năng phân loại có thể thương lượng hoặc thay đổi theo mong muốn của khách hàng.

  • Valuable: khách hàng có thể tìm kiếm, theo dõi, đặt mua một cách nhanh chóng và dễ dàng hơn.

  • Estimate: 2 tuần.

  • Small: đủ nhỏ và đơn giản vì chỉ cần phân loại sản phẩm theo chức năng như giá cả, đặc điểm, tình trạng …

  • Testable: user story này chỉ cần phân loại, do vậy dễ dàng kiểm tra được sản phẩm đã được phân loại theo đúng yêu cầu hay chưa.

Công việc cần làm:

1. Phân tích và thiết kế.

2. Xây dựng chức năng.

  • Học php. (Tài liệu: Học php)
  • Viết chức năng phân loại sản phẩm theo giá cả. edx
  • Viết chức năng phân loại sản phẩm theo trạng thái. edx
  • Viết chức năng phân loại sản phẩm theo kích thước. edx
  • Học ajax. (tài liệu: Ví dụ về Ajax)
  • Xây dựng chức năng tìm kiếm bằng nhập liệu. (Tài liệu: Search function)
  • Tạo sự đồng bộ trong các chức năng.

3. Kiểm thử và cập nhật.

là một sinh viên đang muốn tìm phòng trọ mới, tôi muốn xem chi tiết phòng trọ mình định thuê qua ứng dụng web (Nguyễn Hữu Trí).

Quy tắc :

  • Independent: User story trên là độc lập.

  • Negotiable: User story này có thể thương lượng được khi xây dựng tính năng.

  • Valuable: User story là có giá trị (thêm thông tin cho người thuê phòng).

  • Estimable: Có thể ước lượng được lượng công việc và thời gian hoàn thành.

  • Small: User story đủ nhỏ.

  • Testable: Có thể test được để đánh giá kết quả.

Những công việc cần làm:

  • Phác thảo giao diện xem phòng.

  • Hoàn thiện dần các phần mà ở đó hiển thị thông tin cho người xem.

  • Kết nối với cơ sở dữ liệu

  • Vận hành và kiểm thử.

Là một quản lý,tôi muốn có chức năng đăng nhập để quản lý thông tin khách hàng( Vi Thế Anh-Nhóm 99)

1. Đánh giá theo quy tắc INVEST:

  • Independent: User story trên là độc lập so với các chức năng khác như lọc,

  • Negotiable: Chức năng đánh giá có thể thương lượng được khi xây dựng

  • Valuable: User story là có giá trị với người cần mua giày theo yêu cầu uy tín và tin cậy với cửa hàng

  • Estimable: Có thể ước lượng được công việc và thời gian hoàn thành(1 ngày)

  • Small: Tính năng đủ nhỏ để có thể xây dựng trong thời gian tương đối

  • Testable: tính năng có thể kiểm thử để kiểm tra
    2. Các công việc cần làm

  • Phân tích user story theo mẫu(30p)
    user story

  • Lựa chọn mẫu thiết kế giao diện, mockup của trang web(1h)

  • Sử dụng Node.js để làm backend (3h)
    Node.js

  • Lấy dữ liệu người dùng sử dụng mongooes( 1h )
    Mongooes
    Sản phẩm

  • Đọc data người dùng đã đăng ký sử dụng phần mềm Robo 3T
    Robo 3T

  • Tạo form đăng ký cho người đùng để tránh trùng lặp và dễ sử dụng(1h)
    Đăng ký

  • Tạo form đăng nhập cho người đùng để tránh trùng lặp và dễ sử dụng(1h)
    Đăng nhập

  • Tạo form reset password(1h)
    Resetpassword

  • Sử dụng css để giao diện đăng nhập đăng ký nhìn đẹp hơn(1h)
    CSS

  • Cải thiện giao diện bằng boostrap(1h)
    Boostrap
    Sản phẩm

  • Có chức năng lấy lại mật khẩu bằng email đã đăng ký khi quên mật khẩu sử dụng Nodemailer(1h)
    Nodemailer
    Sản phẩm

  • Tạo các điều kiện khi đăng ký tài khoản người dùng sử dụng Nodejs và Ajax(5h)
    Node.js
    Sản phẩm Nodejs
    Sản phẩm Ajax

  • Hiển thị thông báo khi tài khoản và mật khẩu để trống sử dụng 5h)

  • Kết nối các phần đăng ký, đăng nhập,quên mật khẩu lại sử dụng router(5h)
    Sản phẩm

  • Kiểm tra lại việc thực hiện đăng nhập với tất cả các tài khoản trong database (15 phút)

  • Kết hợp phần đăng nhập, đăng kí và thực hiện đăng kí rồi đăng nhập lại bằng chính tài khoản đó (30 phút)

  • Thực hiện liên kết các trang đăng nhập, đăng kí với phần backend đã hoàn thiện (1 giờ)

  • Lựa chọn phương pháp kiểm thử hộp trắng và hộp đen(10p)
    testing

  • Kiểm thử hộp trắng bằng cách các thành viên trong nhóm tự hộ trợ nhau(30p)

  • Kiểm thử hộp đen bằng các cho các bạn dùng và trải nhiệm thử(1h)
    testing-kiểm thử hộp đen

  • Triển khai user story
    Sản phẩm đăng nhập
    Link demo youtube

User Story

  1. Mỗi người tạo một issue ở repo này với tiêu đề là nội dung của user story, gồm ba vế
    As <1>, I want to <2>, so that <3> (<tác giả - ghi tên của sv>).

  2. Trong nội dung của issue phân tích và giải thích quy tắc INVEST cho user story trên.

  3. Liệt kê các công việc cần làm và thời gian cần để hoàn thành công việc đó dưới dạng Task List của Github.

  4. Thực hiện công việc và cập nhật vào issue đó.

Là một người đọc truyện, tôi muốn có chức năng bình luận để thảo luận về diễn biến truyện cũng như chia sẻ ý kiến của mình với những người đọc truyện khác. <-Phạm Nhật Hưng->

1.Quy tắc INVEST

  • Independent: Chức năng độc lập với chức năng khác.

  • Negotiable: Chức năng có thể thương lượng để thay đổi phù hợp với người dùng trong tương lai.

  • Valuable: Giúp người dùng cảm thấy thoải mái khi sử dụng.

  • Estimable: Có thể ước lượng được thời gian hoàn thành công việc.

  • Small: Chức năng đủ nhỏ để xây dựng trong thời gian ngắn (2 -> 3 ngày).

  • Testable: Có thể kiểm thử dễ dàng.

  1. Những công việc cần làm
  • Phân tích kỹ yêu cầu của người dùng (giao diện cần gì, đặt ô comment ở đâu ...) (1h)
    Làm rõ yêu cầu

  • Xác định các component cần dùng cho user story. (1h)

  • Học cách thiết kế giao diện cơ bản bằng HTML, CSS, Bootstrap. (2h)
    Tài liệu cơ bản

  • Chọn mẫu thiết kế (design pattern) MVP : MVP

  • Tạo thanh comment. (2h)

  • Tính toán số lượng giới hạn ký tự cho phần comment.

  • Triển khai code.

  • Kiểm thử giao diện trên nhiều màn hình (2h)
    Kiểm thử hộp trắng

  • Lưu vào cơ sở dữ liệu.(1h)

  • Tái cấu trúc mã nguồn, cải tiến các đoạn mã nguồn chưa tối ưu.(1h)
    Refactoring

  • Link video

Là một người quản lý, tôi muốn có chức năng thêm, sửa đề thi để thêm mới một đề thi vào CSDL hoặc chỉnh sửa nó khi phát hiện sai sót (Trần Tiến Đức)

Quy tắc INVEST:

  • Độc lập: Không phụ thuộc vào các userstory khác, có chức năng riêng là hiển thị danh sách

  • Có thể thương lượng: Có thể bàn bạc về phương án triển khai cụ thể, mô tả ở mức độ vừa đủ

  • Có giá trị với khách hàng: Có giá trị về mặt yêu cầu mà khách hàng hiểu được và mong muốn. Có thể nói chuyện với khách hàng hoặc ghi xuống.

  • Ước lượng được: Có thể hiểu được mức độ ưu tiên, ước lượng được công việc vì khá cụ thể. Đây là việc làm cần làm đầu tiên.

  • Đủ nhỏ: Không quá lớn, có thể thực hiện trong khoảng thời gian vừa phải (5 ngày)

  • Có thể kiểm thử: Có thể dùng các test case để kiểm thử, kiểm thử theo yêu cầu người dùng và các chuẩn mực quy định. Kiểm thử giao diện, các button, dropdown, responsive,...

Các công việc cần làm

  • Làm rõ yêu cầu (thêm - sửa) (1h). edx

  • Các yêu cầu khác. edx

  • Tìm hiểu mô hình MVC. Mô hình MVC

  • Design form (2h) commit & edx

  • Viết html form hiển thị (sử dụng modal) (1h) commit

  • Gọi API POST phía backend (Hoàn đã làm và deloy lên server để cả nhóm làm chung) REST

  • Hiển thị dữ liệu khi mở form từ list (khi thêm và khi sửa) (15p) commit

  • Tạo form data, validate dữ liệu (30p) commit

  • Chức năng lựa chọn giờ thi - sử dụng date-picker (30p) commit

  • Chức năng nhập số câu và đáp án (1h) commit

  • Xử lý khi click button Submit (1h) commit

  • View list sau khi báo thêm (sửa) thành công (2h)commit

  • Test giao diện, chức năng. edx

  • Triển khai ứng dụng.

Demo issue : https://www.youtube.com/watch?v=SSHt6mW1eN0

Là một nhà phát triển, tôi muốn tất cả câu hỏi được lưu trong cơ sở dữ liệu , để quản lý và lấy ra một cách dễ dàng ( Trần Thế Vượng)

Đánh giá dựa trên phương pháp INVEST:

  1. Independent : việc phát triển cơ sở dữ liệu cho câu hỏi là độc lập, không xung đột với các câu chuyện người dùng khác
  2. Negotiable: cơ sở dữ liệu câu hỏi là sự phát triển lâu dài của trang web, là cần thiết, không thể thiếu.
    Mở rộng liên tục, thay đổi đề phù hợp với người dùng.
  3. Valuable: có giá trị cao, là cốt lõi, nội dung chính của trang Web
  4. Estimable: Nhóm phát triển có thể ước lượng được những công việc cần làm để hoàn thiện chức năng.
  5. Small: Tính năng này có thể chia đủ nhỏ để có thể xây dựng trong một thời gian ngắn .
  6. Testing: kiểm thử dễ dàng

Các công việc cần làm

  • Đánh giá user story theo quy tắc INVEST (1h)

  • Thu thập yêu cầu và làm rõ yêu cầu (1h)

  • Tạo cơ sở dữ liệu (3h)

  • Tìm hiểu thư viện Sequelize kết nối với MySQL (3h): http://docs.sequelizejs.com

  • Tạo model câu hỏi (30')

  • Kết nối Cơ sở dữ liệu với model (30')

  • Kiểm tra database bằng cách thêm thủ công câu hỏi và chỉnh sửa nếu có lỗi phát sinh (30 phút)

  • Kiểm thử hộp trắng, nếu độ bảo phủ đạt 80% thì đạt yêu cầu (20 phút)

  • Tái cấu trúc mã nguồn tối ưu và sạch sẽ hơn (30 phút)

Là một người mua giày, tôi muốn có chức năng tìm kiếm giày bằng bộ lọc, để việc tìm kiếm giày thuận tiện, nhanh và dễ dàng hơn (<Hà Xuân Việt>)

1. Đảm bảo tiêu chí INVEST:

  • Independent: User story trên là độc lập

  • Negotiable: User story này có thể thương lượng được khi xây dựng tính năng tùy bộ lọc nhiều hay ít phụ thuộc vào số lượng sản phẩm

  • Valuable: User story là có giá trị với người cần mua giày theo yêu cầu nhanh chóng, tiện ích

  • Estimable: Có thể ước lượng được công việc và thời gian hoàn thành

  • Small: Tính năng đủ nhỏ để có thể xây dựng trong thời gian tương đối(12h)

  • Testable: tính năng có thể kiểm thử để kiểm tra

2. Các công việc cần làm

  • Tìm hiểu những yêu cầu lọc (10p)

  • Liệt kê các yêu cầu lọc (10p)

  • Thiết kế giao diện lọc bằng html, css, bootstrap (4h)

  • Thêm các tính năng (2h)

  • Xử lý việc tìm dữ liệu trên cơ sở dữ liệu (10p)

  • Tối ưu hóa code (1h)

  • Nhập và xuất cơ sở dữ liệu(10p)

  • Hiện thị bộ lọc và kiểm thử (15p)

  • Sửa và hoàn thiện(1h)

Là một người dùng, tôi muốn trang web có chức năng có thể hiển thị danh sách các món ăn theo nguyên liệu, để tôi có thể tìm kiếm những công thức nấu ăn theo nguyên liệu mà tôi có ( Đặng Thị Ngọc Ánh)

Quy tắc INVEST:

  • Independent: chức năng hiển thị món ăn theo nguyên liệu là độc lập với các chức năng khác.
  • Negotiable: câu chuyện này có thể thương lượng vì nó có thể phân tích thành các nhiệm vụ nhỏ như tạo thêm button tìm món ăn theo nguyên liệu , tạo bảng nguyên liệu trong database, kết nối với giao diện tìm món ăn theo nguyên liệu.
  • Valuable: câu chuyện này có ý nghĩa tìm kiếm những công thức nấu ăn theo nguyên liệu người dùng đưa ra.
  • Estimable: tính năng này được ước tính về chi phí là 4 giờ tương ứng với 4 công việc cần làm.
  • Small: nó chỉ là một tính năng đơn giản.
  • Testable: tính năng này có thể kiểm tra để trả về kết quả mà người dùng mong muốn.

Công việc cần làm:

Là một quản trị viên, tối muốn có chức năng xóa bỏ những người bán hàng không đạt đủ tiêu chuẩn để tránh ảnh hưởng xấu đến người mua (Nguyễn Đăng An)

Các tiêu chí INVEST

  • Independent: User story trên hoàn toàn độc lập với các user story khác, có thể thực hiện riêng biệt.

  • Negotiable: Có thể thương lượng về mức độ bị xếp vào diện không đủ tiêu chuẩn của người bán.

  • Valuable: Thêm tính năng này giúp nâng cao trải nghiệm sử dụng của khách hàng và tạo nên một môi trường mua bán trung thực.

  • Estimable: Có thể làm trong vòng 2-3 ngày.

  • Small: đủ nhỏ để có thể nhanh chóng hoàn thành.

  • Testable: có thể kiểm thử

Công việc cần làm

  • Thảo luận về mức độ không đủ tiêu chuẩn của người bán

  • Lấy dữ liệu từ databases

  • Lọc để tìm ra người phù hợp

  • Loại bỏ khỏi hệ thống

Là người học nấu ăn, tôi muốn có một trang giao diện riêng có đầy đủ hình ảnh minh họa, nguyên liệu, công thức và phần video hướng dẫn chi tiết cho từng món ăn để việc học nấu ăn dễ dàng hơn (Cao Thị Ngọc Huyền)

Quy tắc INVEST:

  • Independent: user story này là cụ thể và độc lập với các user story khác

  • Negotiable: có thể thương lượng khi thêm các tính năng bổ sung hoặc chỉnh sửa nội dung

  • Valuable: giúp người học nấu ăn dễ dàng làm theo công thức với các video chi tiết, cụ thể

  • Estimable: cần nguồn video, chỉnh sửa giao diện phần xem công thức nấu ăn của từng món (khoảng 15h)

  • Small: dễ chỉnh sửa, bổ sung, tuy nhiên việc thu thập video phụ thuộc vào số lượng công thức món ăn

  • Testable: có thể dễ dàng kiểm thử để cập nhật đúng theo hướng mà người dùng mong muốn

Công việc cần thực hiện:

  • Nắm bắt chung các yêu cầu: Yêu cầu người dùng là có giao diện xem công thức, dữ liệu cần chi tiết và rõ ràng, đáp ứng được nhu cầu người dùng
  • Yêu cầu chức năng: giao diện công thức (gồm hình ảnh, nguyên liệu công thức, video) sẽ hiển thị thế nào trên màn hình, sử dụng thanh tìm kiếm ra sao,...
  • Yêu cầu phi chức năng: Dễ sử dụng (Người dùng chỉ cần nhấn vào phần công thức nấu ăn của một món cụ thể, sẽ hiển thị một video để xem cách chế biến của món đó), kiểm thử dễ dàng.
    Requirements process

Là một người quản lý tôi muốn có một danh sách các môn học để biết tổng quan về các đề thi liên quan(Lê Công Kỳ)

Quy tắc INVEST

  1. Independent: không liên quan quá nhiều đến các câu chuyện khác trong dự án như làm bài thi, đọc tin tức,...

  2. Negotiable: tính năng có thể đàm phán được. Xây dựng giao diện xem danh sách môn học thông qua trao đổi đàm phán với khách hàng (màu sắc, khung hình, cỡ chữ như thế nào?, có những chức năng gì?).

  3. Valuable: có giá trị với người dùng. Đây là khung danh sách để người quản lí có thể biết được hệ thống của mình có những môn học nào.

  4. Estimable: Có thể hiểu được mức độ ưu tiên, ước lượng được công việc vì khá cụ thể và tương minh vì số lượng môn học có hạn.

  5. Small: Tính năng đủ nhỏ để có thể xây dựng trong thời gian tương đối, khoảng 1 - 2 tuần.

  6. Testable: tính năng có thể kiểm thử, người dùng có thể kiểm thử được để biết nhóm phát triển xây dựng giao diện xem đáp án đã đúng yêu cầu hay đáp ứng được yêu cầu hay chưa. các chức năng thêm sửa xóa hoạt động thế nào.

Các công việc cần làm

  • Phân tích rõ yêu cầu khách hàng về giao diện và chức năng( 2h ) (cụ thể)

  • Tìm hiểu câu chuyện người dùng (tài liệu tham khảo)

  • Tìm hiểu và lựa chọn mô hình MVC (2h) (tài liệu tham khảo)

  • Tìm hiểu nguyên lí chia nhỏ giao diện (Tài liệu tham khảo)

  • Tìm hiểu mẫu thiết kế trạng thái (design patterns: state) (tài liệu tham khảo)

  • Tìm hiểu về API (2h) (tài liệu tham khảo)

  • Thiết kế khung hình giao diện gồm check box , table content, button, dropdown ( 4h )

  • Viết mã html, css ( 2h ) (commit: lần 1, lần 2)

  • Gọi API trả về dữ liệu danh sách môn học( 2h) (commit: lần 1)

  • Gọi API thay đổi trạng thái một môn học( 1h) (commit: lần 1)

  • Gọi API thay đổi trạng thái nhiều môn học (1h) (commit: lần 1, lần 2)

  • Gọi API để xóa một môn học (1h) (commit: lần 1)

  • Gọi API để thêm, sửa một môn học (1h) (commit: lần 1)

  • Xử lí thông báo thành công hoặc không thành công khi thêm hoặc sửa môn học (1h) (commit: lần 1)

  • Lọc danh sách môn theo tùy chọn (theo trạng thái hoặc tìm kiếm môn học) (1h)
    (commit: lần 1)

  • Sắp xếp môn học theo các tính chất khác nhau (1h) (commit: lần 1)

  • Phân trang (1h) (commit: lần 1)

  • Ghi chú, cải thiện mã nguồn (clean code) (tài liệu tham khảo) (commit: lần 1)

  • Kiểm thử hộp trắng, dựa vào code, tính độ bao phủ, nếu > 70% thì đạt yêu cầu(3h) (tài liệu tham khảo)

  • Kiểm thử hộp đen, dựa vào giao diện, chức năng, dùng phương pháp phân vùng tương đương và phân tích giá trị biên viết các ca kiểm thử ( 4h ) (tài liệu tham khảo)

  • Cho các thành viên trong nhóm kiểm thử và dùng thử, mời 1 số người dùng trải nghiệm.

  • Triển khai ứng dụng (link ứng dụng)

Demo issue: https://www.youtube.com/watch?v=O0xD-tGpk_A

Là một người đi tìm phòng trọ, tôi muốn tìm kiếm phòng trọ thông qua các lựa chọn, để việc tìm kiếm trở nên nhanh dễ dàng và chính xác hơn (Nguyễn Duy Tâm)

Theo quy tắc INVEST

  • Independent: User story trên là độc lập với các user story khác khi tính năng tìm kiếm là riêng biệt với các tính năng khác.

  • Negotiable: User story này có thể thương lượng được khi xây dựng tính năng.

  • Valuable: User story có giá trị đối với việc tìm kiếm của người dùng.

  • Estimable: Có thể ước lượng được lượng công việc và thời gian hoàn thành khi các công việc cần làm là nhỏ.

  • Small: Các công việc cần làm là nhỏ.

  • Testable: Có thể test được riêng từng phần của tính năng để đánh giá kết quả.

Những công việc cần làm

  • Làm rõ yêu cầu của user story (chức năng tìm kiếm phòng trọ bằng bộ lọc) (1 giờ) Phân rã câu chuyện người dùng

  • Liệt kê các nội dung cần có trong bộ lọc tìm kiếm (1 giờ)

  • Lựa chọn thiết kế theo mô hình MVC Mẫu thiết kế MVC

  • Thiết kế cơ sở dữ liệu lưu các thông tin của phòng trọ (1 giờ) Commit

  • Thêm giao diện cho bộ lọc và hiển thị kết quả tìm kiếm bằng html (2 giờ) Commit

  • Chỉnh sửa hiển thị trang web theo các loại màn hình(2 giờ) Cải thiện thiết kế Commit

  • Sử dụng CSS và javascript để giao diện hiển thị đẹp và dễ sử dụng hơn (3 giờ) Commit

  • Xử lý việc nhập sai dữ liệu từ người dùng (1.5 giờ) Commit

  • Lấy dữ liệu người dùng nhập vào (1.5 giờ) Commit

  • Từ dữ liệu đã nhập và lấy ra dữ liệu phù hợp trên cơ sở dữ liệu (2 giờ) Commit

  • Hiển thị các căn phòng phù hợp với tìm kiếm của người dùng (2 giờ) Commit

  • Kiểm thử hộp đen dựa vào giao diện chức năng (3 giờ) Kiểm thử hộp đen

  • Tối ưu mã nguồn ngắn gọn, dễ đọc, dễ bảo trì (1 giờ) Code smells

  • Kiểm thử chấp nhận của người dùng (3 giờ) Kiểm thử chấp thuận

Video user story https://youtu.be/DbOC8O1skPk

Là một khách hàng, tôi muốn đăng kí tài khoản để có thể đặt mua đơn hàng của mình(Trần Thiên Sơn)

Quy tắc INVEST:

  • Independent: User story này biểu thị một chức năng độc lập của sản phẩm.
  • Negotiable: Chức năng này có thể thương lượng hoặc điều chỉnh theo mong muốn của khách hàng.Có thể đăng nhập bằng nhiều cách khác nhau mà không cần đăng kí tài khoản.
  • Valuable: Là công cụ xác nhận khách hàng đã đặt sản phẩm và để người giao hàng thuận lợi trong việc gửi hàng.
  • Estimable: 2 tuần.
  • Small: Đủ nhỏ và đơn giản.
  • Testable: Có thể kiểm thử dễ dàng.

Công việc cần làm:

  • Tạo giao diện đăng kí tài khoản bằng HTML, CSS (1 giờ ). Giao diện đăng nhập | Link tài liệu
  • Tạo dựng giao diện đăng nhập bằng HTML, CSS (1 giờ). Giao diện đăng kí | Link tài liệu
  • Sử dụng Node.js và MongoDB để quản lí tài khoản (1 giờ) .
  • Học cách kết nối đến cơ sở dữ liệu (1 giờ).
  • Đăng kí được tài khoản trên phần mềm (2 giờ). Đăng kí tài khoản | Link tài liệu
  • Kiểm tra dữ liệu các tài khoản đã được đăng kí (1 giờ).
  • Dùng tài khoản đăng kí được trong cơ sở dữ liệu để đăng nhập (1 giờ). Link tài liêu
  • Cải thiện giao diện phần mềm sau khi đăng kí thành công (1 giờ).
  • Cải thiện giao diện phần mềm sau khi đăng nhập thành công (1 giờ).
  • Cập nhật và kiểm thử (1,5 giờ).
    Link demo: https://www.youtube.com/watch?v=iJS77kQMEAo&t

Là một người học nấu ăn, tôi muốn có mục mẹo vào bếp để xem và học hỏi các mẹo vặt nhà bếp trên trang web một cách dễ dàng(Nguyễn Thị Liên)

1. INVEST

  • Independent: Tính năng này là độc lập, không phụ thuộc vào bất kì tính năng nào

  • Negotiable: Có sự linh hoạt,có thể chỉnh sửa, viết lại, bổ sung thêm (Vd: có thể cập nhật thêm nhiều thông tin hơn,...)

  • Valuable: Mang lại giá trị cho người dùng (những mẹo vặt bổ ích )

  • Estimable: Có thể định lượng được,có thể ước lượng được cần bao lâu để hoàn thành xong yêu cầu

  • Small: Đủ nhỏ và đơn giản (chỉ gồm các mẹo vặt)

  • Testable: Có thể kiểm tra và đánh giá được kết quả (kiểm tra giao diện,...)

2. CÁC CÔNG VIỆC CẦN LÀM

  • Thu thập và phân tích yêu cầu, phân chia yêu cầu thành 2 nhóm: yêu cầu chức năng và yêu cầu phi chức năng (2h)
    Phân tích làm rõ yêu cầu

  • Xây dựng product backlog với các user story áp dụng mô hình MVC (30p - 1h)
    Mẫu thiết kế MVC

  • Đặc tả yêu cầu (1h)
    Lý thuyết đặc tả yêu cầu

  • Thẩm định yêu cầu: đánh giá các yêu cầu đã phù hợp với người dùng chưa (2h)
    Lý thuyết thẩm định yêu cầu

  • Thiết kế sơ đồ tương tác và giao diện (2h)

  • Xây dựng giao diện sơ khai của mục mẹo vặt bằng HTML, CSS (1h - 2h)
    Tài liệu học

  • Chỉnh sửa lại giao diện bằng Bootstrap (2h)

  • Thu thập cơ sở dữ liệu và thiết kế mô hình quan hệ của kho dữ liệu (5h-6h)
    Cơ sở dữ liệu

  • Tạo cơ sở dữ liệu sử dụng MySQL ( 3h - 4h)

  • Kết nối cơ sở dữ liệu với giao diện sử dụng ngôn ngữ Python (2h)
    commit code kết nối database

  • Kiểm thử hộp đen (kiểm thử giao diện: cuộn đến vị trí nào thì sẽ hết trang, ...) (3h)
    Kiểm thử hộp đen

  • Kiểm thử hộp trắng( kiểm tra mã nguồn,tính độ bao phủ, nếu độ bao phủ >70% thì đạt yêu cầu) (2h)
    Kiểm thử hộp trắng

  • Phân tích tĩnh sử dụng Pylint để đưa ra các cảnh báo và đưa ra các nguy cơ tiềm ẩn
    Phân tích tĩnh

  • Tối ưu mã nguồn sạch, gọn, dễ hiểu

  • Thu thập feedback và update( nếu cần)

Link demo chức năng: https://www.youtube.com/watch?v=Do65rzt4vAo&t=9s

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.