-
Notifications
You must be signed in to change notification settings - Fork 0
The project consists in developing a global marketplace which specializes in the sale of gaming related digital products using redemption keys.
By the end of this artefact, we present a functional product of our platform
Keyshare is an online shop with two greater sections:
- The user side - Where we can sell and buy games, with the help of a shopping cart. After buying there is a possbility to review/report the seller. We can browse and search for the products we want.
- The admin side - Where we can edit/add/delete all the information that the user deal with it. Games, user banning, FAQ edition, report reply
The project was developed using docker technology. In order to run our docker image you must run the following command:
docker run -it -p 8000:80 -e DB_DATABASE="lbaw2043" -e DB_USERNAME="lbaw2043" -e DB_PASSWORD="AS810664" lbaw2043/lbaw2043
URL to the product: http://lbaw2043.lbaw-prod.fe.up.pt
Administration URL: http://lbaw2043.lbaw-prod.fe.up.pt/admin
Username | Password |
---|---|
ssn | SergioNunes123 |
Type | Username | Password |
---|---|---|
basic account | ssn | SergioNunes123 |
banned user | trustlessuser123 | 123456789 |
Password | |
---|---|
sb-qy3q31718490@personal.example.com | mobilenumber |
The source code can be found on the group repository in gitlab on the following link:
https://git.fe.up.pt/lbaw/lbaw1920/lbaw2043
Keyshare was developed keeping simplicity and acessibility topics in mind, for that reason, there was no reason to implement help menus pretty elaborated. Nevertheless, we implement a FAQ simple menu acessible via footer in every user page.
In this menu we can access the main information the user needs to know about Keyshare. Furthermore, with those topics in mind, we take advantage of the placeholder feature of HTML5 to ensure our user don't get lost in our website.
The majority of the user side pages that include input have been validated. Those with sensitive information are always being checked in both sides user side and server side.
The validation user side is being made using Javascript Regex. One exemple, between many, it's the user side where we define
/^(?=.[a-z])(?=.[A-Z])(?=.\d)(?=.[@$!%?&])[A-Za-z\d@$!%?&]{8,}$/
Regex for password change.
Server side validation is made using laravel request validator, sometimes when needed, per example with passwords, we define Regex to enforce laravel standard constraints.
One example of using of this validations are used to enforce the request of offer adding as following.
On admin side all requets are validated using Laravel validator, no user side validation is made.
In addition we use Laravel Policies to ensure login and not banning restrictions in the access to some elements. Admin checking is also made admin side
- Result of the Accessibility form were: 15/18
- Result of the Usability form were: 25/28
All HTML pages from the user side have been validated. They present some errors and many warnings. Some changes have been made, but there details that would change with bootstrap features, like modals that are incompatible with the W3C standards. The files of validation are uploaded in a PDF joining all elements
The CSS validation was done to the files that contain major information, since other are files used to constantes or some lines that are specific to an hotfix like Paypal layout or progress bar. The results return a great number of error, but all of the same time, W3C validator can't recognize constant CSS 3 values. This constants refer to color tones used in the platform, ignoring this limitation, any CSS file have errors. The results can be found in the folder dedicated to CSS validation.
From the previous iterations util the final product the following change have been made and for the following reasons:
- Image table name on SQL was changed to Picture - Avoid conflits with the library image of laravel intervention.
- Was added the password_resets table to the SQL script - Required table by the password reset mechanism.
- By the time of the A3 around 90% of the HTML code was according with the bootstrap generic examples, based in < div > tags. We decrease this percentage to 15%.
- Password recovery features were added to the initial project.
- A new trigger to remove offers canceled by the owner from the clients cart was created - Help the consistence of data.
- A new feature of displaying a gif spinning while images are loading have been added to the project.
The libraries used in the project were the following:
- Bootstrap - A graphical design library for fast mobile first development
- Intervention Image - Laravel library to create, resize and convert images - This library it's used in places we deal with image uploading
- Fonts Awesome - HTML icons library
- Paypal Sandbox(braintree) - Library used to proceed with Paypal Payments
- Socialite - Google Login library
US Identifier | Name | Priority | Team members | State |
---|---|---|---|---|
US01 | Search Product | High | Martim Silva e Luís Ramos | 100% |
US02 | Search Filters | High | Martim Silva e Luís Ramos | 100% |
US03 | View Product | High | José Guerra e Rúben Almeida | 100% |
US04 | View Shopping Cart | High | José Guerra e Rúben Almeida | 100% |
US05 | Browse | High | Martim Silva e Luís Ramos | 100% |
US06 | Sort Search Results | Medium | Martim Silva e Luís Ramos | 100% |
US07 | View Seller Reviews | Medium | Martim Silva | 100% |
US08 | View Shopping Cart | High | José Guerra e Rúben Almeida | 100% |
US09 | Manage Shooping Cart Items | Medium | Rúben Almeida e José Guerra | 100% |
US10 | View Seller Profile | Medium | José Guerra, Martim Silva, Luís Ramos | 100% |
US11 | Save Shooping Cart Items | Low | Rúben Almeida | 100% |
US12 | FAQ | Low | Martim Silva | 100% |
US13 | View Discounts | Low | José Guerra | 100% |
US14 | Sign Up | High | Luís Ramos | 100% |
US15 | Login | High | Luís Ramos | 100% |
US16 | Reset Password | Medium | Rúben Almeida | 100% |
US17 | Sign Up Using External API | Low | Martim Silva | 0% |
US18 | Login Using External API | Low | Martim Silva | 100% |
US19 | Logout | High | Luís Ramos | 100% |
US20 | Account Deletion | High | José Guerra | 100% |
US21 | Edit Profile | High | José Guerra, Martim Silva, Rúben Almeida | 100% |
US22 | Purchases History | Medium | José Guerra, Martim Silva | 100% |
US23 | Sales History | Medium | José Guerra | 100% |
US24 | Shopping Cart Preservation | Medium | Rúben Almeida | 100% |
US25 | Sell Product | High | Luís Ramos | 100% |
US26 | Active Offers | Medium | José Guerra | 100% |
US27 | Update Offer | Medium | Luís Ramos | 100% |
US28 | Exclude Offer | Medium | Luís Ramos | 100% |
US29 | Checkout Cart | Medium | José Guerra | 100% |
US30 | Reply to Reports | Low | 0% | |
US31 | Batch Sell | Low | Luís Ramos | 100% |
US32 | Product Discount | Low | José Guerra | 100% |
US33 | Transactions using Paypal | Low | José Guerra | 100% |
US34 | Transaction Feedback | High | Martim Silva, Ruben Almeida | 100% |
US35 | Report Transaction Problem | Medium | Martim Silva | 100% |
US36 | Unban appeal | Low | Luis Ramos | 100% |
US37 | Add Products | High | Rúben Almeida, | 100% |
US38 | Admin Login | High | Rúben Almeida | 100% |
US39 | Admin Sign Out | High | Rúben Almeida | 100% |
US40 | Product Search | Medium | Rúben Almeida, Luís Ramos | 100% |
US41 | User Search | Medium | Luís Ramos | 100% |
US42 | User Ban | Medium | Luís Ramos | 100% |
US43 | Product Edit | Medium | Rúben Almeida | 100% |
US44 | Product Delete | Medium | Rúben Almeida | 100% |
US45 | Access to Users' Reports | Medium | Luís Ramos | 100% |
US46 | Review Delete | Medium | Luís Ramos | 100% |
US47 | Manage Game Categories | Low | Rúben Almeida | 100% |
US48 | Manage Gaming Platforms | Low | Rúben Almeida | 100% |
US49 | Manage Game Genres | Low | Rúben Almeida | 100% |
US50 | Manage FAQ | Low | Luís Ramos | 100% |
US51 | Check Transactions | Low | Luís Ramos | 100% |
US52 | Remove User Ban | Low | Luís Ramos | 100% |
US53 | Manage ban lift appeals | Low | Luís Ramos | 100% |
Changes made to the first submission:
GROUP2043, 03/06/2020
- Luís Ramos, up201706253@fe.up.pt
- José Guerra, up201706421@fe.up.pt
- Martim Silva, up201705205@fe.up.pt
- Ruben Almeida, up201704618@fe.up.pt