PA - dmfrodrigues/feup-lbaw-proj GitHub Wiki
PA: Product and Presentation
A9: Product
This artifact includes:
- Instructions for installation and use
- Access credentials.
- The type of assistance supported by the web application (context-sensitive help, notifications, help pages, etc.)
- Input validation
- Accessibility and usability checklists
- HTML and CSS validation
- Description and brief justification of the revisions introduced to the initially defined requirements and architecture and identification of the development status of each of the requirements (user Stories) initially set in A2.
1. Installation
docker run -it -p 8000:80 -e DB_DATABASE=lbaw2174 -e DB_USERNAME=lbaw2174 -e DB_PASSWORD=BT578725 lbaw2174/lbaw2174
2. Usage
2.1. Administration Credentials
Administration URL: http://lbaw2174.lbaw-prod.fe.up.pt/moderator
Username | Password |
---|---|
[email protected] | 1234 |
2.2. User Credentials
Type | Username | Password |
---|---|---|
auction mod | [email protected] | 1234 |
buyer | [email protected] | 1234 |
banned user | [email protected] | 1234 |
global mod | [email protected] | 1234 |
seller | [email protected] | 1234 |
3. Application Help
Since users don't usually read long instructions or explanations, the best way to lead a user in the right direction is through hints, for example, in text boxes. In the creation of an auction, text boxes are labelled instead of being empty, which intuitively helps users fill in the blanks.
4. Input Validation
Inputs are validated using HTML and PHP validators as shown in examples below:
login email input (HTML validation)
<input type="email" name="email" class="form-control" id="floatingInput" placeholder="[email protected]" value="{{ old('email') }}" required autofocus>
Create auction form validator (Server validation)
$validator = Validator::make($request->all(),
[
'auctionName' => 'required|max:50',
'brand' => 'required|max:50',
'model' => 'required|max:50',
'year' => 'required|numeric',
'condition' => 'required|in:Mint,Clean,Average,Rough',
'horsepower' => 'required|numeric',
]);
if( $validator->fails() ) {
return redirect()->back()->withErrors($validator);
}
// date / time validator
$validator = Validator::make($request->all(), [
'startingdate' => 'required|date',
'endingdate' => 'required|date|after:startingdate',
]);
if( $validator->fails() ) { // Dates are the same or wrong; checking time
$validator = Validator::make($request->all(), [
'startingdate' => 'required|date',
'endingdate' => 'required|date|date_equals:startingdate',
'startingtime' => 'required|date_format:H:i:s',
'endingtime' => 'required|date_format:H:i:s|after_or_equal:startingtime',
]);
if( $validator->fails() ) {
return redirect()->back()->withErrors(['End Date must be later than Start Date']);
}
}
5. Check Accessibility and Usability
Accessibility results: 14/18 Usability results: 23/28
6. HTML & CSS Validation
There were some errors in the main pages' HTML and CSS validations. Results are in the PDF files included.
7. Revisions to the Project
The only changes made were related to UI/UX of the website.
8. Implementation Details
8.1. Libraries Used
We used the following libraries and frameworks:
- Bootstrap: an open source toolkit for developing with HTML, CSS, and JS.
- Laravel: a PHP Framework For Web Artisans.
- Font Awesome: icon set and toolkit.
8.2 User Stories
US Identifier | Name | Module | Priority | Team Members | State |
---|---|---|---|---|---|
US01 | See Home | --- | high | João | 100% |
US02 | See About | M05 | high | João | 100% |
US03 | See Contacts | M05 | high | João | 100% |
US04 | See ToS | M05 | high | João | 100% |
US05 | Public auction info | M02 | high | Rafael | 100% |
US06 | Search | M02 | high | João, Diogo, Rafael | 100% |
US11 | Sign-up | M01 | high | Leonor, João | 100% |
US12 | Sign-in | M01 | high | João, Leonor | 100% |
US21 | Profile | M01 | high | Diogo, Rafael | 100% |
US22 | Others' profiles | M01 | high | Rafael, Diogo | 100% |
US23 | Comment | M03 | high | Diogo, João | 100% |
US24 | Logout | M01 | high | João | 100% |
US25 | Favorite | M03 | high | Leonor | 100% |
US31 | Bid | M03 | high | Diogo, Rafael | 100% |
US41 | Create auction | M02 | high | Leonor | 100% |
US51 | Edit auction | M02 | high | João, Rafael | 100% |
US52 | Delete auction | M02 | high | Leonor | 100% |
US61 | Delete comment | M03 | high | Leonor, Diogo | 100% |
US62 | Ban user from auction | M04 | high | Rafael, Leonor | 100% |
US71 | Delete any comment | M04 | high | Leonor, Diogo | 100% |
US72 | Ban user from any auction | M04 | high | Leonor, Rafael | 100% |
US73 | Ban user from website | M04 | high | Diogo, João | 100% |
US81 | Create Account | M01 | high | João, Leonor | 100% |
US82 | Delete Account | M04 | high | Diogo, Leonor | 100% |
US83 | Change Account Type | M04 | high | Rafael, Leonor | 100% |
US26 | Become seller | M04 | medium | 0% | |
US29 | Reset password | M01 | medium | Diogo | 100% |
US63 | Deactivate auction | M04 | medium | 0% | |
US84 | Change Pages | M05 | medium | 0% |
A10: Presentation
This artefact includes the promotion, a presentation, and the demonstration of the product and a discussion of the developed features. The promotion alsi includes a short video of 2 minutes showcasing the main features of the product.
1. Product presentation
The purpose of the project was to develop a functional web application for an online auction house, namely a car auction house, named Tokyo Drift Auction House. The site allows for the creation of auctions of various types of cars, the interaction with other users through comments, and good search functionality, to ensure everyone can find the car of their dreams.
The site is based on HTML5, JavaScript, and CSS. The Bootstrap3 framework was used for the frontend and the PHP framework Laravel was used for the backend.
The platform has an intuitive design and a detailed navigation system by arranging the cars by brand, condition and other details. In order to provide a reliable service, each auction has a comment section, which allows users to not only review the cars after they were purchased but also to view other people's opinions during the auction. Besides, users have the ability to save favorite auctions in a wishlist and view the history of all previous purchases, of their own as well as of other users. For the more refined users, private auctions can be created, which are accessed by invite only.
2. Video presentation
Revision history
Changes made to the first submission:
- ...
GROUP2174, 10/06/2021
Diogo Miguel Ferreira Rodrigues, [email protected]
João António Cardoso Vieira e Basto de Sousa, [email protected]
Leonor Martins de Sousa, [email protected] (Editor)
Rafael Soares Ribeiro, [email protected]