-
Notifications
You must be signed in to change notification settings - Fork 0
The project Trade-a-Bid is an online auction system available over the Web for users to buy and sell digital products.
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.
This artifact contains the specification of the actors and their user stories, serving as agile documentation of project requirements.
For the Trade-a-Bid system, the actors are represented in Figure 1 and described in Table 1.
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
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
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
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
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
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
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
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 |
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.
Identifier | Name | Description |
---|---|---|
C01 | Deadline | The system should be ready before the end of the semester |
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:
- Help to identify and describe the user requirements, and raise new ones.
- Preview and empirically test the user interface of the product to be developed.
- Enable quick and multiple iterations on the design of the user interface.
This artefact includes three elements:
- Overview of the interface elements and features common to all pages;
- Overview of the information architecture from the viewpoint of the users (sitemap); and
- 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.
- Logotype and name
- Navigation bar
- Page content
- 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.
Figure 2. Sitemap.
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.
- UI01: Home
- UI02: About
- UI03: FAQ
- UI04: Sign-In
- UI05: Sign-Up
- UI06: Search Results
- UI07: Auctions
- UI08: Create Auction
- UI09: Dashboard
- UI10: Public Profile
- UI11: Settings
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.
Figure 9: Home page
Figure 10: About page
Figure 11: FAQ page
Figure 12: Sign-In page
Figure 13: Sign-Up page
Figure 14: Search Results page
Figure 15: Search Results page
Figure 16: Auction page
Figure 17: Create Auction page
Figure 18: Dashboard page
Figure 19: Public Profile page
Figure 20: Settings page
- BR12 Users can now report anyone without having done any interaction
GROUP2112, 07/03/2021
- Eduardo Correia, up201806433@fe.up.pt
- Ivo Saavedra, up201707093@fe.up.pt (Editor)
- Telmo Baptista, up201806554@fe.up.pt
- Tiago Silva, up201806516@fe.up.pt