Skip to content
ivSaav edited this page May 4, 2021 · 25 revisions

ER: Requirements Specification Component

The project Trade-a-Bid is an online auction system available over the Web for users to buy and sell digital products.

A1: Trade-a-Bid

This project intends to specify, develop and promote an online auction platform for users to buy and sell all kinds of digital products, such as e-Books, digital keys, or subscriptions, through a bidding system.

Currently, most websites that provide auction services focus on physical items that must be transported from the seller to the buyer, which entails various complications such as creating false addresses to bypass shipping costs and using built-in or third-party messaging applications to transfer the item bought. Therefore we seek to explore this untapped market and create a web platform to auction exclusively digital products.

Our platform will provide an array of useful features for the users, such as tracking, saving, planning, searching (with different criteria), and creating auctions, with a fluent, responsive, straightforward design in mind, focusing on the ease of use and the general user experience. Users will be able to rate and review each other to build their reputations and allow other users to feel safer on the platform.

Users will be categorized by groups with different permissions, such as unregistered, registered, and admin. The unregistered users are only allowed the browse the website, without participating, whereas registered users might both sell products or bid on open auctions. The admins are superuser accounts whose role is to manage and regulate any anomaly or discrepancy within the platform. As these accounts' sole purpose is management, they are not allowed to participate in auctions. Registered users might have their accounts linked to an external OAuth API.


A2: Actors and User stories

This artifact contains the specification of the actors and their user stories, serving as agile documentation of project requirements.

1. Actors

For the Trade-a-Bid system, the actors are represented in Figure 1 and described in Table 1.

Actors Diagram

Figure 1: Actors.

Name Description Examples
User Generic user that has access to public information and can perform actions such as search, view auctions, and user profiles N/A
Guest Unauthenticated member that can register itself (sign-up) or login (sign-in) in the system N/A
Authenticated Member Authenticated member that is logged in its personal account janedoe
Bidder Authenticated member that participates or intends to participate in an auction as a bidder janedoe
Seller Authenticated member that posts or intends to post an auction to sell an item janedoe
Admin Authenticated user that is responsible for the management, supervision, and moderation of users and auctions admin
OAuth API External OAuth API that is used to manage the registration and authentication into the system Github OAuth API

Table 1: Actor's description

2. User Stories

2.1. User

Identifier Name Priority Description
US001 See Home High As a User, I want to access the home page, so I can have a general view of the website
US002 Search by keywords High As a User, I want to search for auctions and users using the search bar, so that I can easily find them
US003 Filter search results High As a User, I want to filter search results using different criteria, so that I can further narrow down what I'm searching for
US004 Sort search results High As a User, I want to sort the search results using different criteria, so that they are ordered
US005 View auction High As a User, I want to check auctions' information, so that I'm informed in greater detail about it
US006 View user profile High As a User, I want to check a user's profile, so that I'm informed about their rating, name, description, and auctions
US007 See About Medium As a User, I want to access the About page, so I can see the website's complete description
US008 See Contact Medium As a User, I want to access contacts about the system's maintainers, so that I can report any technical issues and give feedback
US009 See statistics Medium As a User, I want to check usage statistics (for example the most bid auctions), so that I stay informed
US010 See FAQ Low As a User, I want to access the FAQ, so that I can see the frequently asked questions to clarify common issues
US011 View top auctions Low As a User, I want to check the most popular auctions at the moment, so I have an idea of the current trends
US012 View auction bidding history Low As a User, I want to check the bidding history of a certain auction, so I can analyze the growth of the bids and plan ahead

Table 2: User's user stories

2.2. Guest

Identifier Name Priority Description
US101 Sign-up High As a Guest, I want to register a new account, so I can authenticate myself
US102 Sign-in High As a Guest, I_ want to authenticate into the system, so that I access privileged information and participate in auctions
US103 OAuth Sign-up Low As a Guest, I want to register a new account linked to an external account service, so I can authenticate myself
US104 OAuth Sign-in Low As a Guest, I want to authenticate into the system through an external account service, so that I can access privileged information and participate in auctions

Table 3: Guest's user stories

2.3. Authenticated Member

Identifier Name Priority Description
US201 See Dashboard High As an Authenticated Member, I want to have access to a personal dashboard, so I can easily access my resources (such as followed users, bookmarked auctions, etc... )
US202 Edit profile High As an Authenticated Member, I want to edit my profile information (eg. name, description, profile picture, etc...) so it can always be updated
US203 Report user High As an Authenticated Member, I want to report users, so the platform is kept safe and friendly
US204 Report auction High As an Authenticated Member, I want to report auctions, so the platform is kept free from fraudulent or indecent auctions
US205 Rate user High As an Authenticated Member, I want to rate users, so I can reward good sellers and punish bad ones
US206 Delete account High As an Authenticated Member, I want to delete my account, so my right to be forgotten is respected
US207 Sign-out High As an Authenticated Member, I want to log out from the system, so that my session is terminated
US208 Consult bookmarked auctions High As an Authenticated Member, I want to consult my bookmarked auctions, so that I can easily remember what auctions I saved
US209 Consult bidding history High As an Authenticated Member, I want to consult previous auctions I bid on, so that I can easily revisit them
US210 Consult auctions history High As an Authenticated Member, I want to consult previous auctions I created, so that I can easily revisit them
US211 Consult personal statistics Medium As an Authenticated Member, I want to consult personal statistics, so that I'm informed about how much I've spent and earned so far
US212 Consult recently visited auctions Medium As an Authenticated Member, I want to consult my recently visited auctions on the homepage, so I can easily return to them
US213 Follow User Medium As an Authenticated Member, I want to follow a user, so that I can reach their profile easier and stay informed about their auctions
US214 Unfollow User Medium As an Authenticated Member, I want to unfollow a user, so that I'm no longer notified about their activity
US215 Consult notifications Medium As an Authenticated Member, I want to be able to check my notifications, so I'm up to date with all the relevant updates on auctions I bookmarked and users I'm following
US216 Filter inappropriate auctions Medium As an Authenticated Member, I want to filter auctions by their content's mature rating, so that I can be in control of my experience

Table 4: Member's user stories

2.4. Bidder

Identifier Name Priority Description
US301 Bid High As a Bidder, I want to bid on current auctions, so I can acquire the item in question
US302 Notify outbid High As a Bidder, I want to be notified when I am outbid in an auction, so I may make another bid
US303 Bookmark add High As a Bidder, I want to add auctions to my bookmarks, so I can easily keep track of their updates
US304 Bookmark remove High As a Bidder, I want to remove auctions from my bookmarks, so I can stop keeping track of their updates
US305 Notify auction opening High As a Bidder, I want to be notified when an auction I have bookmarked opens, so I may take action and place my bid

Table 5: Bidder's user stories

2.5. Seller

Identifier Name Priority Description
US401 Create an auction High As a Seller, I want to create an auction, so that I can sell my product
US402 Set base price for auction High As a Seller, I want to set the base price for an auction, so the product doesn't get lowballed
US403 Delete auction High As a Seller, I want to delete an auction, so that it isn't available anymore
US404 Schedule auctions Medium As a Seller, I want to schedule auctions for my items, so I can inform possible buyers beforehand
US405 Get notification about the auctions I created Medium As a Seller, I want to receive notifications about the auctions I created, so that I can keep track of the bids

Table 6: Seller's user stories

2.6. Admin

Identifier Name Priority Description
US501 Restrict user High As an Admin, I want to restrict users, so that they are prohibited from participating in auctions or create new ones
US502 Unrestrict user High As an Admin, I want to unrestrict users, so that they readquire all of their rights that were restricted
US503 Ban user High As an Admin, I want to ban users who do not comply with the rules of the site, so they cannot access the site's functionalities
US504 Unban user High As an Admin, I want to unban previously banned users, so they can access the site's functionalities
US505 Cancel auction High As an Admin, I want to cancel an auction, so I can prevent fraudulent auctions
US506 Sign-out High As an Admin, I want to log out from the system, so that my session is terminated
US507 Check reported auctions Medium As an Admin, I want to see all the reported auctions, so I can take the most appropriate measures
US508 Check reported users Medium As an Admin, I want to have access to all the reported users, so I can take the most appropriate action

Table 7: Administrator's user stories

3. Supplementary Requirements

3.1. Business rules

Identifier Name Description
BR01 Self bidding The same member cannot bid on an auction they created
BR02 Selling date The selling date must be greater than the date the item was put to sale
BR03 Auction duration The auction must have a specified duration, within a limit, after which it will close and the item either is sold or not
BR04 Digital items All items sold in auctions must have a digital nature and must not require shipping for the buyer to acquire them
BR05 Credit system All monetary transactions are done recurring to a credit system, in which the users add funds to their credit account to participate in auctions. When they do so, the credit quantity of the bid in question is discounted from their account and returned if they don't win the auction
BR06 Delete account A member may not delete their account if they have any on-going auctions or bids
BR07 User information When a user account is deleted, all personal user information that might identify the user is erased from the database after a certain period of time, but not their bidding or auctions history
BR08 Minimal increments When bidding in an auction, a minimal increment must be done over the current bid
BR09 Auction time limit The auction duration must be within certain minimal and maximum limits
BR10 Auction overtime To prevent auction sniping, when a bid is done the duration of the auction is extended
BR11 Rating users A user can only rate another user after they have had an interaction
BR12 Reporting users A user can report every user he deems inappropriate
BR13 Reporting auctions A user can report every auction he deems inappropriate

3.2. Technical requirements

Identifier Name Description
TR01 Availability The system must be available 99 percent of the time in each 24-hour period
TR02 Accessibility The system must ensure that everyone can access the pages, regardless of whether they have any handicap or not, or the Web browser they use (except IE).
TR03 Ethics The system must respect the ethical principles in software development (for example, the password must be stored encrypted to ensure that only the owner knows it)
TR04 Database The system must use a PostgreSQL 13.2 database management
TR05 Framework limitation The system should only use complex frameworks after the prototype has been developed
TR06 Performance The system should have response times shorter than 2s to retain the user's attention
TR07 Robustness The system must be prepared to handle and continue operating when runtime errors occur
TR08 Portability The server-side system should work across multiple platforms (Windows, Linux, Mac OS, etc.)
TR09 Scalability The system must be prepared to deal with the growth in the number of users and their actions
TR10 Security The system shall protect information from unauthorized access through the use of an authentication and verification system
TR11 Utility The system must be useful, otherwise people wouldn't use it
TR12 Usability The system should be simple and easy to use
TR13 Web application The system should be implemented as a web application with dynamic pages using the most up to date technologies (HTML5, CSS3, JavaScript, and PHP)

From these technical requirements, the three most important would be the following:

  • Performance - Many devices are old and have problems running modern software. Since browsers also tend to use more and more resources, performance and response times must be prioritized without compromising the usability or the design of the platform.
  • Security - Website security is crucial to safeguard the users and their data, in a world where data leaks and malicious exploits can have devastating consequences. Greater security leads to increased trust from members and helps attract new users.
  • Usability - A simple and intuitive design helps users adapt to the platform faster, improves the user experience and boosts user retainability.

3.3. Restrictions

Identifier Name Description
C01 Deadline The system should be ready before the end of the semester

A3: User Interface Prototype

Trade-a-Bid is a web application based on HTML5, CSS3 and JavaScript. The user interface was implemented using the Bootstrap 5.0 framework.

This user interfaces prototype (or horizontal prototype) has the following goals:

  1. Help to identify and describe the user requirements, and raise new ones.
  2. Preview and empirically test the user interface of the product to be developed.
  3. Enable quick and multiple iterations on the design of the user interface.

This artefact includes three elements:

  1. Overview of the interface elements and features common to all pages;
  2. Overview of the information architecture from the viewpoint of the users (sitemap); and
  3. Identification and description of the main interactions with the system (at least two), organized as sequences of screens (wireflows).

The interface's descriptions are presented on the end of the document.

Invision Project

1. Interface and common features

Interface Desktop

  1. Logotype and name
  2. Navigation bar
  3. Page content
  4. Footer

Figure 1. Interface's guidelines.

In this figure some characteristics common to all pages are highlighted:

  • The web design implemented has a responsive flow which allows the web page layout to suit most screen sizes and resolutions, from a 15'' laptop down to a 4'' smartphone.
  • The common links and buttons that give access to the several website pages, mainly the ones placed in the navigation bar and footer, maintain their position to deliver a consistent user experience.
  • The most important sections are displayed in a darker color relative to the rest of the page to better convey their importance and assist with the visual flow of the page.
  • Various hover events were applied to buttons and cards which alter their scale or perform small transitions in order to make each page feel more interactive and fluid.

2. Sitemap

Sitemap

Figure 2. Sitemap.

3. Storyboards

The presented storyboards represent some of the main interactions with the system using a sequence of interfaces and explaining how navigation is done between them.

Wireflow

4. Interfaces

The following interfaces describe the main content of the web pages and their relative priority and help the project team previewing the features and behaviour of the final product's different screens, both their desktop (left) and mobile (right) versions.

UI01 Home

Home page Home page - phone

Figure 9: Home page

UI02 About

About page About page - phone

Figure 10: About page

UI03 FAQ

FAQ FAQ - phone

Figure 11: FAQ page

UI04 Sign-In

Sign-In page Sign-In - phone

Figure 12: Sign-In page

UI05 Sign-Up

Sign-Up page Sign-Up phone

Figure 13: Sign-Up page

UI06 Search Results

Search Results Auctions page Search Results Auctions - phone

Figure 14: Search Results page

Search Results Users page Search Results Users - phone

Figure 15: Search Results page

UI07 Auction

Auction page] Auction - phone

Figure 16: Auction page

UI08 Create Auction

Create Auction page Create Auction - phone

Figure 17: Create Auction page

UI09 Dashboard

Dashboard page Dashboard - phone

Figure 18: Dashboard page

UI10 Public Profile

Public Profile page Public Profile - phone

Figure 19: Public Profile page

UI11 Settings

Settings page Settings - phone

Figure 20: Settings page


Revision history

  • BR12 Users can now report anyone without having done any interaction

GROUP2112, 07/03/2021