# PA: Product and Presentation
**Vision** Our online store will provide a bridge between consumers and their local commerce via an accessible platform for both ends.
## A9: Product
The product developed is an online farmer shop entitled MyGarden. In it, the clients can find all kinds of products related to gardening. When the user has finished choosing his products, he can access his shopping cart and proceed with the purchase by adding a credit card and his address, the purchase has the option to be periodic, and can be cancelled or changed later in the user's profile. Additionally, any client can save their favorite products, for easy search and purchase. The suppliers are local farmers that want to expand their business and user bases.
Our platform has a responsive/adaptive design to enable the usage on diferrent devices. Through our website the user will be able to browse products and suppliers or search for them through a search bar and filters, with the option to register to be able to make purchases. Upon registering, the user can create an account as a client or a supplier: as a client, the user can search and buy products, have a shopping cart and a favorites list. As a supplier the user can add products, change them or delete existing ones. He can also create bundles and discount coupons. Supplier accounts need administrators approval for the account creation.
Nowadays the existence of an online front for the traditional shops is of most importance in providing their sustainability and modernization. Themathics like organic and local products are in demand, and MyGarden makes it easy to order them. Our product is vital for local businesses to grow and expand. With our platform, traditional shops will have the technological capabilities to survive against major supermarkets.
### 1. Installation
> Link to the release with the final version of the source code in the group's git repository.
https://git.fe.up.pt/lbaw/lbaw2021/lbaw2131/-/tree/master
> Full Docker command to test the group's Docker Hub image using the DBM database.
```bash
# Get the required modules from computer
composer install
# Build the image if you haven't done so
docker build -t lbaw2131/lbaw2131 .
# After the image is built, run the container with
docker run -it -p 8000:80 -e DB_DATABASE="lbaw2131" -e DB_USERNAME="lbaw2131" -e DB_PASSWORD="YM436030" lbaw2131/lbaw2131
# You can then proceed to http://localhost:8000 to see the application
```
### 2. Usage
URL to the product: http://lbaw2131.lbaw-prod.fe.up.pt
#### 2.1. Administration Credentials
Administration URL: http://lbaw2131.lbaw-prod.fe.up.pt/dashboard
| Username | Password |
| ---------------- | -------- |
| admin1@admin.com | 1234 |
#### 2.2. User Credentials
| Type | Username | Password |
| ------------- | ---------------------------- | -------- |
| client | bshovelbottom0@storify.com | 1234 |
| supplier | jsimoncello22@soundcloud.com | 1234 |
### 3. Application Help
- Credit Card, specifically in the CVV field
- Tooltips on serveral inputs
- FAQ on About Us
### 4. Input Validation
Server Side:

HTML:

### 5. Check Accessibility and Usability
> Provide the results of accessibility and usability tests (as PDF files included in the submitted ZIP file on Moodle), using respectively the following checklists:
> https://ux.sapo.pt/checklists/acessibilidade/
> https://ux.sapo.pt/checklists/usabilidade/
### 6. HTML & CSS Validation
> Provide the results (as PDF files included in the submitted ZIP file on Moodle) of the validation of the HTML and CSS code using the following tools:
> HTML: https://validator.w3.org/nu/
> CSS: https://jigsaw.w3.org/css-validator/
### 7. Revisions to the Project
> Revisions made to the project since the requirements specification stage:
The following user stories have been added:
- US107 | See supplier info
- US415 | See account information
- US416 | See favorite list
- US417 | See Periodic buys
- US506 | See account information
- US507 | See all products
- US508 | See products overview
### 8. Implementation Details
#### 8.1. Libraries Used
> Include reference to all the libraries and frameworks used in the product.
> Include library name and reference, description of the use, and link to example where it's used in the product.
#### 8.2 User Stories
> This subsection should include all high and medium priority user stories, sorted by order of implementation. Implementation should be sequential according to the order identified below.
>
> If there are new user stories, also include them in this table.
> The owner of the user story should have the name in **bold**.
> This table should be updated when a user story is completed and another one started.
| US Identifier | Name | Priority | Team members | State |
| ------------- | ------------------------------------------ | --------- | ------------------ | ----- |
| US101 | See home | Mandatory | **Luís Silva** | 100% |
| US102 | See product info | Mandatory | **Ricardo**, José | 100% |
| US1-- | See supplier info | Mandatory | **José Macedo** | 100% |
| US104 | Browse products | Mandatory | **José Macedo** | 100% |
| US105 | Browse suppliers | Mandatory | **José Macedo** | 100% |
| US106 | See about | Mandatory | **Ricardo Nunes** | 100% |
| US201 | Sign-in | Mandatory | **André Gomes** | 100% |
| US202 | Sign-up as a customer | Mandatory | **André Gomes** | 100% |
| US203 | Sign-up as a supplier | Mandatory | **André Gomes** | 100% |
| US205 | Checkout Visitor | Optional | **Ricardo Nunes** | 100% |
| US305 | Log out | Mandatory | **André Gomes** | 100% |
| US401 | Checkout | Mandatory | **Ricardo Nunes** | 100% |
| US402 | Buy products | Mandatory | **Ricardo Nunes** | 100% |
| US403 | Add product to cart | Mandatory | **Ricardo Nunes** | 100% |
| US404 | Remove product from cart | Mandatory | **Ricardo Nunes** | 100% |
| US406 | History | Important | **André Gomes** | 100% |
| US407 | Favorite list add | Important | **Luís Silva** | 100% |
| US408 | Favorite list delete | Important | **Luís Silva** | 100% |
| US409 | Delete account | Mandatory | **André Gomes** | 100% |
| US410 | Write review | Important | **Ricardo Nunes** | 100% |
| US411 | Cancel order | Mandatory | **Ricardo Nunes** | 100% |
| US412 | Periodic buys | Optional | **Ricardo Nunes** | 100% |
| US501 | Add product | Mandatory | **José**,Luís | 100% |
| US503 | Create discount coupons | Mandatory | **Ricardo Nunes** | 100% |
| US504 | Supplier delete account (but keep product) | Mandatory | **Luís Silva** | 100% |
| US505 | Supplier edit account | Important | **José Macedo** | 100% |
| US5-- | Supplier see account information | Mandatory | **José Macedo** | 100% |
| US5-- | Supplier see all products | Mandatory | **José Macedo** | 100% |
| US5-- | Supplier see products overview | Mandatory | **José Macedo** | 100% |
| US601 | Edit product | Important | **José**, **Luís** | 100% |
| US602 | Update discount coupons | Important | **Ricardo Nunes** | 100% |
| US701 | Edit review | Optional | **Ricardo Nunes** | 100% |
| US702 | Delete review | Optional | **Ricardo Nunes** | 100% |
| US801 | Accept supplier | Mandatory | **Luís Silva** | 100% |
| US802 | Admin remove product (put innactive) | Mandatory | **Luís Silva** | 100% |
| US805 | Admin remove review | Important | **Luís Silva** | 100% |
| US806 | Remove customers/suppliers | Important | **Luís Silva** | 100% |
| US603 | Supplier delete product | Mandatory | **Ricardo Nunes** | 100% |
| US4-- | Favorite list see | Important | **André Gomes** | 100% |
| US4-- | Client see account information | Mandatory | **André Gomes** | 100% |
| US??? | Password Recovery | Mandatory | **André Gomes** | 100% |
| US405 | Edit account information | Mandatory | **André Gomes** | 90% |
| US502 | Create bundles | Mandatory | **José Macedo** | 85% |
| US103 | Search and filter | Mandatory | **José Macedo** | 85% |