Analysis
Analysis
Analysis Report
Efe Eroğlu, Muhammet Kamil Gök, Ahmet Serdar Gürbüz, Rumeysa Özaydın, Hasan Yıldırım
Progress Report
November 21, 2020
This report is submitted to the Department of Computer Engineering of Bilkent University in partial fulfillment
of the requirements of the Senior Design Project course CS491/2.
1.Introduction 4
2.Current System 5
3.Proposed System 5
3.1 Overview 5
3.2 Functional Requirements 6
3.3 Non-Functional Requirements 7
3.3.1 Reliability 7
3.3.2 Usability 7
3.3.3 Extendibility 7
3.3.4 Compatibility 7
3.3.5 Security 7
3.4 Pseudo Requirements 8
3.4.1 Language Constraints 8
3.4.2 Economic Constraints 8
3.4.3 Implementation Constraints 8
3.4.4 Social Constraints 8
3.4.5 Ethical Constraints 8
3.4.6 Timeline Constraints 9
3.4.7 Sustainability Constraints 9
3.4.8 Professional and Ethical Constraints 9
3.5 System Models 10
3.5.1 Scenarios 10
3.5.2 Use Case Model 20
3.5.3 Object and Class Model 22
3.5.4 Dynamic Model 22
3.5.4.1 State Diagram 22
3.5.4.2 Sequence Diagram 23
3.5.4.2.1 Sequence Diagram for Bidding a Product 23
3.5.4.2.2 Sequence Diagram for Payment 23
3.5.4.3 Activity Diagram 25
3.5.5 User Interface 26
5.Glossary 35
6. References 36
1.Introduction
Auction is a process of buying or selling products based on biddings. It is a good
alternative for fixed-price selling mechanisms. The word comes from Latin word “augere”
which means “to increase” [1]. One of the most common forms of auction is open ascending
price auction where participants bid openly and every bid must be higher than the previous
bid. As long as there are at least two bidders, the auction continues. The other form is the
sealed-bid first-price auction where bidders submit their bids privately in sealed envelopes
and the highest bidder wins [1]. The popular goods taking place in auctions are antiques and
rare collectibles.
When it comes to online auctions, some conditions mentioned above change. The
time is limited and the highest bidder at the end of the time buys the product. Also,
nowadays, auctions do not have to be about antiques or rare objects. People can sell their
second-handed products to get rid of them which makes it reasonable to have a
marketplace in order to meet the demands of these people.
Online shopping is very in demand these days. Either it is a brand new product or a
second-hand product. We aim to introduce a bidding system for these online shopping
platforms. Our platform, BidIt, will be an easy to use auction platform where users can buy
and sell products online.
This report explains the details of the proposed system in terms of System Overview,
Requirements, Constraints, and Similar Products to further explain the purpose and the
innovativeness of the project.
2.Current System
Currently, there is a website called eBay [2]. On eBay, users can buy and sell their
products with a bidding system online. However, it is not being used in Turkey. Firstly, our
design and target audience will be different. Our aim is to make people in Turkey adapt to
an online shopping system based on bidding. Also, BidIt will have extra features that are not
offered on eBay. We will make predictions about the price and the categorization for
helping the seller to choose the most appropriate price and the category.
3.Proposed System
3.1 Overview
In our senior project, BidIt, we aim to develop an easy-to-use auction platform
where users can sell their products. It will be a mobile application that is cross-platform
adaptable for both Android and iOS. We will have two different use cases for users which
give them an option to buy and sell. For selling items, users will define their items by writing
a caption and adding images. For categorization, the best-suited category will be suggested
by using the image and the description of the item but the user can manually change the
category specification later. Users can select the time for their advert by determining the
publish time and the length of the advert. Users are not allowed to remove the product
from the marketplace after it got a bid or bought. Users will define an initial start price
where other users can bid to buy this item and the highest bidder at the end of the auction
can buy the item. Also, users can optionally define a buy now price where other users can
buy the item instantaneously. When publishing an item, the platform will suggest optional
pricing for the item from the description. This platform will automatically take the payment
from the auction winner, and after the consolation of both buyers and sellers for the
transaction, the seller will receive the payment. Buyers can review the sellers. Users can not
bid on their own adverts in any manner. Users will get notifications about the auction dates,
prices, etc. about their interested items and subscriptions. When a user is out-bidded, the
user will be informed with a notification instantly.
3.2 Functional Requirements
These following functions will be available for the users.
● Users can sell their products by indicating their caption, description and images.
They will also initialize the start price and optionally a buy-now price. The expiration
time of an advertisement will be indicated by the user and it can be at most 15 days.
● Users can bid on the items to join the auction for the product or use the buy-now
option to acquire the item directly.
● Users can have different lists. They can add an item to personalize their lists.
● Users can browse the marketplace for the currently open sales.
● BidIt will notify buyers when someone out-bid their bid. Also, sellers will be notified
when someone bids their product.
● BidIt will estimate the price by using previous related items for an item so that users
can roughly have an understanding of the price of their items before publishing their
advertisements .
● Users can purchase an item with their own credit cards or virtual payments.
● BidIt will automatically categorize the product. The category subtree of the product
will be generated automatically according to the title and the image.
● BidIt will do the authentication of the users provided their usernames and
passwords.
● Users can report other users due to neglect of the term of usage of the app.
● Users can update their account information
3.3.1 Reliability
● The application must not randomly crash. It must be able to recover quickly from any
errors that occur during application usage.
3.3.2 Usability
● The BidIt application should have a user-friendly interface that will allow all types of
users to be able to easily adapt.
3.3.3 Extendibility
3.3.4 Compatibility
● The application will be cross-platform and it will be adaptable for Android and iOS.
3.3.5 Security
● Personal data of the user such as name, surname, and phone number must be
protected by the application to maintain security.
● The money transactions are all covered with an API.
3.4 Pseudo Requirements
3.4.1 Language Constraints
● The application will be working on mobile operating systems which are Android and
IOS.
● Client-Server model will be used as application structure.
● React Native will be used in order to provide cross-platform application
development.
● Version control will be sustained via Git and the source code will be hosted on
Github.
● Ebay Taxonomy API is planned to be utilized for automatic categorization, taxonomy
of the product [3].
● Object Oriented Design principles will be adapted in the design steps and
appropriate design patterns will be used as necessary.
● Sign in with Facebook authentications can be used to spend less time in registration
according to the users preferences [4].
Development of our product will be parallel with the following schedule [6],
● We will closely follow and consider user feedback in order to improve the product.
● Bugs will be followed and updated from the initial release until the deadline.
● Since the users have to sign up in order to sell or bid the products, we need to keep
their usernames and passwords. In order to manage this in a safe manner, we are
going to store the hash values of the passwords in our database. Also, the personal
information of the users such as phone number, name, and surname will not be
shared by other users or third parties without getting permission.
● The camera or storage permission will be needed when a buyer is uploading or
taking pictures of the products. Before accessing the phone’s camera and storage,
required permissions will be taken from users.
.
3.5 System Models
3.5.1 Scenarios
Scenario 1 Sign Up
Actor Client
Entry Conditions: 1- Client opens the app and clicks on the Sign Up button.
Exit Conditions: 1- Clients can turn back to the main page of the app by the back
button.
2- After Client Sign Up , the app redirects the client to the sign
in page.
3- Client fills the username and password then sign in.
Main Flow of Events: 1- Clients give their information that the app needs, then sign
up for the app.
Scenario 2 Sign In
Actor Client
Entry Conditions: 1- Actor opens the app and clicks on the Sign In button.
Exit Conditions: 1- Actor can turn back to the main page of the app by the back
button.
2- After Sign In , the app redirects the client to the home page.
Main Flow of Events: 1-Clients fill the username and password area and sign in the
app.
Actor Client
Exit Conditions: 1- Actor can turn back to the main page of the app by the back
button.
2- After Sign In , the app redirects the client to the home page.
Main Flow of Events: 1- Client enters the mail addresses that have already entered
while sign up, then the app resets the password and leads the
client to entering a new one.
Scenario 4 Logout
Actor Client
Actor Client
Exit Conditions: 1-Client presses the back button to exit the app.
Main Flow of Events: 1-Clients see the products that are listed on the home page.
Scenario 6 View Products to be Sold
Actor Client
Exit Conditions: 1- Client presses the back button to exit the app.
2- Client turns back to home page with click turn back.
Main Flow of Events: 1- Client login the app then press the profile page to see own
products that selling
Actor Client
Exit Conditions: 1- Client presses the back button to exit the app.
2- Client turns back to home page with click turn back.
Main Flow of Events: 1-Client login the app then click on profile button to see profile.
Actor Client
Exit Conditions: 1- Client presses the back button to exit the app.
2- Client turns back to home page with click turn back.
Main Flow of Events: 1- Client login to the app then click on one products to see its
description.
Alternative Flow of Events: 1- User filters the products then finds a specific products.
2- User enters the message part then presses one message,
then pressing the profile that message parts person to enter its
profile, then see its products.
Scenario 9 Filter Products
Actor Client
Main Flow of Events: 1-Client login the app then filter the products to see desired
products on the page.
Actor Client
Main Flow of Events: 1- Client login app and press notification button to see its
notifications.
Actor Client
Main Flow of Events: 1- Client login app and press the messages button then click
one of the messages to see it.
Scenario 12 View Main Screen
Actor Client
Actor Client
Main Flow of Events: 1- Client logins to the app then, in the product page with the
share button client choose a product and share it.
Actor Client
Main Flow of Events: 1- Client login the app then press the profile button, in profile
pressing favorites button to see products.
Scenario 15 Add Products to Favorites
Actor Client
Main Flow of Events: 1- Client login to the app then click on one product to see the
products, then click add favorite button the add.
Alternative Flow of Events: 1- User filters the products then finds a specific product.
2- User enters the message part then presses one message,
then pressing the profile that message parts person to enter its
profile, then see its products.
Actor Client
Main Flow of Events: 1- Client login app then opens a product , if the product is not
appropriate for clients, can report it with reason.
Scenario 17 Add Products to Sell
Actor Client
Main Flow of Events: 1-Client login to the app then go to the profile, with the add
products button user can create a new products page to sell the
products.
Actor Client
Main Flow of Events: 1- Client login to the app then click on one product to see its
description.
Alternative Flow of Events: 1- User can enter message part then press one message, then
can continue talk
Actor Client
Actor Client
Main Flow of Events: 1- Client login to the app then click on one product to see it,
then make a bid.
Actor Client
Main Flow of Events: 1- Clients can create tickets for problems in the app.
Alternative Flow of Events: 1- Clients can create tickets also while login to the app and go
to the profile part then click the support button.
Actor Client
Entry Conditions: 1-Client Sign Up then the system sends verification code to
email.
2- Client enters code to app.
Main Flow of Events: 1-Client successfully signs up then the system sends a
verification code to make the client verified.
Alternative Flow of Events: 1-Client can verify its account with another app like facebook or
phone number.
Actor Client
Main Flow of Events: 1-Client login to the app then go to the profile, then click on
one product to delete.
Actor Client
Main Flow of Events: 1-Client buys a product and gets feedback about the product
and seller.
Scenario 25 Search Product
Actor Client
Main Flow of Events: 1-Clients see the products that are listed on the home page
with the selected keyword contained.
Actor Client
Main Flow of Events: 1- Client wants to buy one product and make a bid, then if won
the auction it confirms the order.
Actor Client
Main Flow of Events: 1- Clients want to buy one item and make a bid, then if they
won the auction it confirms the order,lastly make payment for
the item.
3.5.2 Use Case Model
Users list all the products with the chosen parameters by getting data from the database. After
selecting a specific product, the user can bid a price for the chosen product. Then, the current price
of the product is updated via ProductController.
3.5.4.2.2 Sequence Diagram for Payment
When the auction is over, the winning user is informed with a notification. Then, the user proceeds
to the payment by choosing the payment option. If the buyer has enough balance to buy the
product, balances of the buyer and the seller is updated and the payment is completed.
3.5.4.3 Activity Diagram
Figure 14: Making review for a product Figure 15: Adding specifications for selling a product
4. Other Analysis Elements
The System will not have any feature that might affect the user’s health. Thus, BidIt will not
get affected by public health factors.
Level
Public Health 0
Public Safety 8
Public Welfare 7
Global Scale 2
Environmental Factors 8
Cultural Factor 0
Social Factor 8
Table 1: Factors that have an effect on the design and their significance
4.2 Risks and Alternatives
There will be some implementation risks that could be crucial in the development
process. Foreseeing these risks and finding B plans that address these risks is a must for the
team. The risks and their alternative plans to overcome these risks can be found below.
● Database system might collapse. It is planned to take regular system backups and
start the backup database in the event of a collapse.
● Time may not be long enough to deliver all of the desired requirements. It is planned
to keep the significant requirements and remove minor features that have the least
impact on the user.
● Ebay Taxonomy API may crash. It is planned to inform users about the problem. It
will only affect the automatic categorization of the products.
● Team members might be unfamiliar with the technologies that are going to be used.
It is planned for all group members to spare some time to learn the technologies
beforehand.
● The initial design and architecture of the project might fail to hold the expectations.
It is planned to come up with a more suitable design and architecture in the next
phases.
The risks and their information can be found in the table below:
Unfamiliarity with the medium Time delay and more Using individual spare hours
technology workload to learning needed
technologies
Design and architecture medium Time delay and more Coming up with new design
inefficiency workload and architecture
Table 2: Risk and their information
4.3 Project Plan
Work Package 2
● Leader: Hasan Yıldırım
● Milestone: The infrastructure of the database is finished and the frontend and
backend are connected to each other.
● Deliverable: Small program that users can log in.
● Description: The Database creation will be based on the information flow. We will
gradually test the information being kept. The connection between frontend and
backend will be provided.
Work Package 3
● Leader: Efe Eroğlu
● Milestone: Low-Level Design Report is made and ready to be submitted.
● Deliverable: Low-Level Design Report.
● Description: The Low-Level Design will be completed and uploaded to the project
website.
Work Package 4
● Leader: Ahmet Serdar Gürbüz
● Milestone: The app is implemented and the user interface is written.
● Deliverable: Demo of BidIt.
● Description: The BidIt with its basic feature will be implemented.
Work Package 5
● Leader: Muhammet Kamil Gök
● Milestone: Price prediction, automatic categorization and wallet system will be
added. All tests of the application will be done. The entire project will be completed
with the Final Report.
● Deliverable: Final Report and Final app.
● Description: New features described will be added. The tests will prevent the
platform from working incorrectly. The final report and the app will be finished.
10-Oct-2019].