You are on page 1of 16

OFFICIAL (CLOSED) \ NON-SENSITIVE

C206 Software Development Process


AY2022 Semester 1 Graded Assignment
Declaration of Compliance

Student ID 21038298

Student Name Lau Peng Jie

Class C206-2D-E66Q-A

Academic Integrity Compliance Statement

I declare that:
 This submission is my original work – all sources have been properly referenced and
acknowledged.
 I have neither received nor rendered any assistance (either paid or unpaid) on work
that requires individual effort.
 I have fully complied with the RP rules and regulations for students pertaining to

assessments and academic integrity outlined here and 


If found guilty of committing any act of academic dishonesty, I understand that I will be
liable:
 for disciplinary action by the School
 to the full extent of penalties, including immediate failure for this assessment and
other disciplinary actions such as dismissal

Retention of Backup Copy


I declare that I have a back-up electronic copy of this submission for immediate
resubmission.

Signature Date 02/08/2022

IMPORTANT: Non-compliance to these clauses will result in unconditional rejection of your submission.
OFFICIAL (CLOSED) \ NON-SENSITIVE

C206 Assignment Individual Submission (due L12 +5D)

Project Description
Campus Online Auction Shop (COAS)

Motivation and benefits: It will be convenient for RP students on campus to buy and sell items, reduce the
wastage, and be more environment friendly.
Detailed description of the project:
This project aims to create an online auction system which can be used for students on campus to buy and
sell items. The application also allows administrator of the system to manage the categories of the shop
inventory and block fraudulent users.
Users need to register and login to the site in order to access the auction features.
Sellers to upload an item to the auction site to sell. Following information is compulsory to provide:
 Item name and description
 The image or document of the item
 The minimum bidding prices
 Auction start and end date
 Bid increment

Sellers can edit an item by uploading a new image, uploading a document, changing the bid increment,
change the auction end date and whether to give notifications of the incoming bid. Sellers have a ‘Seller
rating’ based on the numbers of successful sells, this minimises the chance of online scamming.
Buyers may select a category and browse all the items for sale in the category, or search by categories (CD,
book, electronic accessories etc.) or search any item via keyword. The item page contains following
information of an item:
 Item title and description
 The image or attached document of the item (if any)
 The seller’s name, contact information and the rating of the seller
 The minimum bid price and bid increment provided by the seller (if any)
 The current bidding price
 A link to view the history of previous bids and competitive buyers
 A button to put a new bid

After the end date of the auction, the deal or transaction is confirmed. The system shall inform both the
buyer and seller. One transaction should have the following information:
 The Seller and Buyer’s name and contact information
 The item name and description
 The transaction price
However, if there are no bidders, the application will notify the Seller to lower the price.

Member Sprint 1
1  Add user account (name, role, email, password)
OFFICIAL (CLOSED) \ NON-SENSITIVE

 View all users


Darren  Delete user based on email
2  Add category (name)
 View all categories
Ali  Delete category based on name
3  Add item (name, description, minimum bid price, auction start and end date,
bid increment)
Peng Jie  View all items
 Delete item based on name
4  Add bid (bid id, item name, seller email, buyer email, bid price)
Williams  Show all bids
 Delete bid based on bid id
5  Add deal (deal id, item name, seller email, buyer email, transaction price, close
Junyi date)
 Show all deals
 Delete deal based on deal id.
OFFICIAL (CLOSED) \ NON-SENSITIVE

Your User Stories from Product Backlog


Take screen capture of the user stories you wrote in the product backlog and paste in the box below
OFFICIAL (CLOSED) \ NON-SENSITIVE

Sprint 1 Execution
Instructions:
• Perform Test Driven Development by the entire Scrum Team
1. Design Java class/method
2. Design unit test cases
3. Write the test class (in Junit)
4. Code the Java class/method
5. Refine the Java class until it passes the test
 Commit and push to GitHub repository

Daily Scrum Meeting for Sprint 1


Day Questions Your Answer
1 What did you do yesterday? Discuss with product owner and development team
on project requirements for sprint 1.
What will you do today? Create viewAll method and run Junit test.
Are there any impediments in your way? Nil
2 What did you do yesterday? Created viewAll() Method as well as manage to run a
Junit test that passes.
What will you do today? Create selleraddnewitem() method.
Are there any impediments in your way? Nil
3 What did you do yesterday? Created selleraddnewitem() method.
What will you do today? Run junit test on selleraddnewitem method. To
ensure it passes.
Are there any impediments in your way? Unsure of which assert method to use when writing
junit test.
4 What did you do yesterday? Run Junit test on selleraddnewitem() method but
have yet to test it.
What will you do today? Create sellerdeleteitem() method.
Are there any impediments in your way? Encountered Java exception error.
Concurrentexception.
5 What did you do yesterday? Created sellerdeleteitem() method.
What will you do today? Fix java exception error for sellerdeleteitem()
method and ensure code can run without anymore
error
Are there any impediments in your way? Nil
OFFICIAL (CLOSED) \ NON-SENSITIVE

Design Functional Test Case for Sprint 1


Instruction:
 For each user story, write at least 3 functional test cases, cover at least 2 out of 3 conditions: normal,
boundary and error.
 Each test case must specify the Test Steps, Test Data to use, and expected results
 Duplicate the table if necessary
User Story:
As a seller, I want to add item into auction (name, description, minimum bid price, auction start and end date, bid increment)
So I can let the buyers bid on them. Given that I am on the listing page, when I click “add item”, then I will be prompted to fill
in the item particulars before adding.

Priority: Must have


Acceptance Criteria:
Test that the required fields are keyed in by user before adding item.
Test that add item function is working
No. Functional Test Case (include Steps and Test data) Expected Results
1. (Normal) After the seller's identification had been
When a legitimate username and password have been verified, the system would quickly allow them
entered and have been approved by the system, the access so they could add their new items.
Seller can log in successfully.
In order to add new things to the system for bidding,
the seller must first log in with their username and
password.
2. (Normal) The "Add items" link need to allow sellers to
The updated list of items and their details should be add new items, and their updated item list
available to the Seller without any duplicates or ought to be displayed in accordance with what
incorrect values being required to be seen. they have entered.
To add things for the customers to place bids on, the
seller would click the add items option.
3. (Error) In order to gain access to their account, the user
The user would be refused entrance and asked to re- would need to reenter their username and
verify their passwords or username by entering their password after receiving an error notice from
credentials. the system.
The Seller will be asked to enter their username and
password once more so that it can be verified that they
are the same as those they used to sign up.
OFFICIAL (CLOSED) \ NON-SENSITIVE

User Story:
As a buyer, I want to be able to view the item title and description so that I would know what the item is about and see if the
item is of my interest. Given that I am logged into the account, when I clicked the ‘name’ of the item, then the title and
description of the item will be shown to me.

Priority: Must have


Acceptance Criteria:
 Test if the title and description match with the item that is being displayed
 Test if the item is shown upon clicking on it.
No. Functional Test Case (include Steps and Test data) Expected Results
1. (Error) “No such item found” error will be displayed
When buyer enters random item enters an invalid item
that has not been registered
2. (Normal) Redirects user from the browsing page to the
When buyer clicks on the name of the item specifically, item page
it should redirect them to the item page.
3. (Normal) Only items that has similar descriptions will be
When user searches for the description in the search shown to the user
bar, it would only display items that fit the description

User Story:
User Story: As a seller, I want to delete item so I can have any items that I do not want, to be removed from my auction list.
Given that I am at the inventory list page, when I click on ‘delete item’ , then the I will be prompted to key in item name
before I can delete the item from the list.

Priority:
Acceptance Criteria:
Test if an item can be deleted if the wrong item name is keyed.
Test that an item can be deleted after keying in the name that matches the item you want , removed.
No. Functional Test Case (include Steps and Test data) Expected Results
1. (Error) “No such item found in item list” error will be
Seller inputs an item name that is not in the item list displayed.
arraylist
2. (Normal) “Item successfully deleted” message will be
Seller enters valid item name that can be found inside displayed
the item list
3. (Boundary) “This item does not belong to you” message will
User enters an item that is registered by another seller be displayed
OFFICIAL (CLOSED) \ NON-SENSITIVE

Design Java Class / Methods for Sprint 1


Instruction:
 For each user story you are coding, list down the java class / method that is created to implement the
function

User Story Statement Java Class / Method Name


As a seller, I want to add item into auction (name, selleraddnewitem()
description, minimum bid price, auction start and end date,
bid increment) So I can let the buyers bid on them. Given that
I am on the listing page, when I click “add item”, then I will be
prompted to fill in the item particulars before adding.
User Story: As a seller, I want to delete item so I can have any viewall()
items that I do not want, to be removed from my auction list. viewmyauction()
Given that I am at the inventory list page, when I click on viewauctionbycategory()
‘delete item’ , then the I will be prompted to key in item
name before I can delete the item from the list.
User Story: As a seller, I want to delete item so I can have any sellerdeleteitem()
items that I do not want, to be removed from my auction list.
Given that I am at the inventory list page, when I click on
‘delete item’ , then the I will be prompted to key in item
name before I can delete the item from the list.
OFFICIAL (CLOSED) \ NON-SENSITIVE

Design Unit Test Case for Sprint 1


Instruction:
 For each user story you are coding, write at least 3unit test cases
 For each unit test case, determine the Junit Assertion method that can be used
 Duplicate the table if needed
User Story:
User Story: As a seller, I want to delete item so I can have any items that I do not want, to be removed from my auction list.
Given that I am at the inventory list page, when I click on ‘delete item’ , then the I will be prompted to key in item name
before I can delete the item from the list.
No. Unit Test Case Junit Assertion Method
4. viewall not null assertNotNull(CAOS.viewAll());
5. test if the list of items from CAOS is not assertNotEquals("Check that viewAll",
empty testOutput, allitem);

User Story:
As a seller, I want to add item into auction (name, description, minimum bid price, auction start and end date, bid increment)
So I can let the buyers bid on them. Given that I am on the listing page, when I click “add item”, then I will be prompted to fill
in the item particulars before adding.
No. Unit Test Case Junit Assertion Method
6. Test if it is possible to add item if account assertFalse(itemsize);
is invalid

User Story:
User Story: As a seller, I want to delete item so I can have any items that I do not want, to be removed from my auction list.
Given that I am at the inventory list page, when I click on ‘delete item’ , then the I will be prompted to key in item name
before I can delete the item from the list.
No. Unit Test Case Junit Assertion Method
7. Test if seller is able to delete item assertTrue(CAOS.sellerdeleteitem());
OFFICIAL (CLOSED) \ NON-SENSITIVE

Write JUnit Test Case & Code Java Class for Sprint 1
Instruction: After you have completed writing the Junit Test methods and Java Class/methods, take screen print of
the following in Eclipse and paste in the respective row of the table below:
 Java Class / Method code
 Corresponding Junit Test method Code
 Junit Test Result

Use 1 table for 1 Java Class/Method. Made copy of the table if necessary

Java (Screen Capture of Java class/method code)


Class /
Method

Junit Test (Screen Capture of Junit test method code)


Method

Junit Test (Screen Capture of Junit test result)


OFFICIAL (CLOSED) \ NON-SENSITIVE

result

Java (Screen Capture of Java class/method code)


Class /
Metho
d
OFFICIAL (CLOSED) \ NON-SENSITIVE

Junit (Screen Capture of Junit test method code)


Test
Metho
d

Junit (Screen Capture of Junit test result)


Test
result

Java (Screen Capture of Java class/method code)


OFFICIAL (CLOSED) \ NON-SENSITIVE

Class /
Method

Junit Test (Screen Capture of Junit test method code)


Method
OFFICIAL (CLOSED) \ NON-SENSITIVE

Junit Test (Screen Capture of Junit test result)


result

New Requirements from Product Owner for Sprint 2


(Copy and paste the new requirements given by lecturer below)

Your User Stories from Product Backlog for Sprint 2 (After P12)
Take screen capture of the user stories you wrote in the product backlog and paste in the box below

Sprint 2 Execution (After P12)


Instructions:
OFFICIAL (CLOSED) \ NON-SENSITIVE

• Perform Test Driven Development by the entire Scrum Team


1. Design Java class/method
2. Design unit test cases
3. Write the test class (in Junit)
 Commit and push to GitHub repository

Design Functional Test Case for Sprint 2


Instruction:
 For each user story you are coding, write at least 3 functional test cases.
 Each test case must specify the Test Steps and Test Data to use
 Duplicate the table if necessary
User Story:
As a buyer, I want to search item by name or description, so it is faster for me to find the item I want. Given that I am at the
browsing page, when I enter the item name or description in the search bar, then that specific item I am looking for will be
displayed.

Priority: Must have


Acceptance Criteria:
 Test that the fields entered in the search bar can only be name or description and not anything else.
 Test that the items displayed are according to what the user keyed in based on the name and description.
No. Functional Test Case (include Steps and Test data) Expected Results
1. (Normal) The buyer would be able to search and choose
Verify that the user can simply search for the products from lists of items that are present in the item
using either their name or their description. list thanks to the system's automatic display of
those lists.
The buyer would enter the item name or description in
the search window to look for it, and the item would
then be shown for them to choose.
2. (Boundary) Seller can also see the same things as well, the
Check to see if a list of items appears when a character system will show a list of items that correspond
from that description or name is typed into the search to the name that the buyer enters.
bar.

When a buyer uses the search box and types a


character, like "M," the product with the label "M"—
such as Metal Straw—will be displayed.
3. (Error) The buyers are unable to view the items, the
Test that a message would be displayed to alert the system will display an error message to let them
seller that an error has occurred when an item with an know.
invalid name is being entered.

The buyer would examine the search box to see if an


item that is not in the item list displays an error
message instead of the items.

User Story:
As a seller, I want to update item, so I can edit whichever information I need about an item anytime. Given that I am on the
item page, when I click on “Update item” button, then a new window will be displayed asking users to key in whichever
OFFICIAL (CLOSED) \ NON-SENSITIVE

information they would like to edit.

Priority: Must have


Acceptance Criteria:
 Test that “Update item” button is functioning.
 Test that updates window will be displayed upon clicking “Update item” button
No. Functional Test Case (include Steps and Test data) Expected Results
1. (Normal) Successful update message will be displayed
Sellers to enter their account details to prove that the
item their editing belongs to them

2. (Normal) System will be able to detect that there is no


When seller does not fill in any new information about changes hence button would be greyed out
the item, the “Update item” button would be disabled. (disabled)
3. (Error) Error message will be prompted as
When seller updates an inappropriate information, inappropriate information keyed in by user
system would prompt an error. Eg if seller sets how
many days will the auction last? And keys in a String ,
the system would not allow clearance of item to be
updated.

User Story:
As a buyer, i want to browse all items in category, so i can view what are the items available within a certain category. Given
that i am at the browsing page, given that i am at the browsing page, when i select a specific category, then only items of
those category will be displayed.

Priority: Must have


Acceptance Criteria:
 Test that the item displayed will be according to the category selected.
 Test that users are able to select categories in browsing page
No. Functional Test Case (include Steps and Test data) Expected Results
1. (Normal) Only items within the category the user
The buyer will select an existing category. And the selected is displayed
respective items from that category will be displayed
2. (Normal) Blank window will be popped up as no category
Buyer inputs a category that is not in the system yet will co-exist with users category input.
have no display

You might also like