###### tags: `Reports`
# Report 4
[toc]
## 系統安裝說明(當有你們的程式code時該如何安裝的說明)
1. 安裝需要的套件
```
pip install python==3.9.6
pip install django==3.2.5
pip install mysqlclient==2.1.0
pip install PyMySQL==1.0.2
pip install cryptography
```
2. 設置local 端的MySQL資料庫
開啟MySQL Command Line Client,執行以下
```
Create user 'DataBaseProject'@'localhost' identified by 'mypassword';
Grant all privileges on *.* to 'DataBaseProject'@'localhost' with grant option;
Create database DataBaseProject;
Use DataBaseProject;
```
匯入 projectDDL.sql (由於管理員功能未完成,所以table bid_final 並沒有在此DDL中)
3. 進入DataBaseProject folder(manage.py 的位置)
依序執行以下指令,如果是mac系統,py 由 python 或 python3 代替
MAC 系統
```
python manage.py makemigrations
python manage.py migrate
```
```
python3 manage.py makemigrations
python3 manage.py migrate
```
Windows 系統
```
py manage.py makemigrations
py manage.py migrate
```
4. 執行runserver
MAC 系統(python 或 python3)
```
python manage.py runserver
```
```
python3 manage.py runserver
```
Windows 系統
```
py manage.py runserver
```
5. 到Starting development server at 的網址(後面要加上/auctions)

Starting development server at 的網址通常是 http://127.0.0.1:8000
而實際網址為 http://127.0.0.1:8000/auctions/ (後面要加上/auctions)
## 介面使用說明
project demo 影片:https://youtu.be/YdF5HyMHKKg
1. Login Page

此頁面為登入頁面,輸入Username與Password來登入,如果有錯誤,會顯示錯誤訊息,如果需要創建新帳號,請點選Register按鍵
3. Register Page

此頁面為創建帳號頁面,輸入Username與Password來創建,如果Username已經有重複,會顯示錯誤訊息,成功創建後,系統會直接進入到Home Page
3. Home Page

此頁面為主頁面,顯示所有目前還正在競標的商品
* 左方顯示的是category,點選任一個,主頁面會顯示標註此category的商品
* 右上角SORT BY TIME是根據競標的開始時間做sort,Latest表示從晚到早,Earliest表示從早到晚,default是Latest
* Example: 如果要找出Category標註為Clothing且是最早的競標開始時間,點選Clothing再點選Earliest,順序不影響
4. Create Page

此頁面為創建新商品頁面
* 如果Title空白或是超過20個字、Start Price小於0等,會顯示錯誤訊息
* Date 為起始時間,注意如果使用者系統設置為Dark mode,可能無法看到日期,必須調回Light mode
* Category為選擇類別
* Image採用URL的方式
* Description為商品說明
填完後點選最下面Create按鍵,以創建新商品
5. Product Page

於Home Page點選任一商品的View按鍵,就可以進到此商品的競標頁面,但如果此商品為你創建的,就不會顯示競標區塊,
* 競標:於Place Bid 區塊填寫欲競標的標價,如果價錢沒有超過目前的價錢,會顯示錯誤訊息
* 觀看名單:商品頁面會根據使用者有沒有將此商品納入觀看名單,來顯示按鍵,會有Add to Watchlist與Remove from Watchlist兩種按鍵,點選按鍵會做相對應的功能
* 推薦商品:More Products為隨機推薦商品,每次的推薦均是隨機,點選黑色購物籃標誌可以到競標頁面
* 留言:下方提供使用者留言,點選Post按鍵就可以留言
6. Watchlist Page

此頁面為WatchList頁面,default 顯示的商品為使用者加入觀看名單的商品
* 左方顯示的是category,點選任一個,會顯示標註此category的商品
* 右上角第一個SORT BY TIME是根據競標的開始時間做sort,Latest表示從晚到早,Earliest表示從早到晚,default是Latest
* 右上角第二個SORT BY STATE是根據競標的狀態做sort,OnGoing表示正在競標,End表示已經結束競標
* 右上角第三個SORT BY LISTING是根據商品的列表做sort,WatchList表示觀看名單,Winning List表示得標商品、Creation List表示創建的商品
7. Logout
點選navigation bar上的Logout,系統會做登出的動作
## 系統內容功能詳細敘述
### 使用者:
主要功能:
* 瀏覽商品
提供使用者瀏覽目前正在進行的競標
* 瀏覽使用者商品
提供使用者瀏覽自己上架的競標,與得標的商品
* 上架商品
提供使用者上架欲拍賣的商品,使用者需填寫商品名稱、商品類別、商品照片、競標開始與結束時間與起標價格等資訊
* 依據商品的類別搜尋
於瀏覽商品頁面能根據不同商品類別搜尋,類別包含
>`Antiques, Art, Books, CDs DVDs Games, Clothing, Collectibles, Computers,
Dining, Electronics, Food & Gourmet Items, For Your Pet, Golf & Sports Gear,
Handbags, Health & Fitness, Home, Jewelry, Lawn & Garden, Memorabilia, Other,
Services, Spa & Beauty, Tickets-Entertainment, Tickets-Sports, Toys, Travel,
Unique Experiences, Wine`
* 於商品頁面競標
在各個商品頁面,設置可以競標的區塊,讓使用者進行競標
附加功能:
* 於商品頁面留言
在商品的頁面下留下你的言論,記錄了問題內容,使用者id及時間。
* 將商品加入或刪除於觀看名單
每個使用者會有自己的觀看名單,而在商品頁會有個按鈕讓使用者可以將此商品加入自己的觀看名單,方便使用者下次查詢
* 瀏覽觀看名單的商品
提供使用者瀏覽自己加入觀看名單的競標,包含正在進行與結束的競標
## 系統功能評估(完成度, 可擴展改進部份)
* 完成度
本組預定的管理員功能與通知功能未完成,自評完成度約80%
* 擴展改進
1. 顧客和出售者私訊
1. 出價通知
2. 留言階層(針對特定留言回覆)
## 實際工作分配及工作份量比重
許哲安
* 前端設計
* 瀏覽商品
* 上架商品
* 依據商品的類別搜尋
* 瀏覽觀看名單的商品
* 於商品頁面競標
* 於商品頁面留言
* 將商品加入或刪除於觀看名單
* 登入、登出、註冊使用者(功能)
許欣平
* 登入、登出、註冊使用者
* 管理使用者頁面
* 瀏覽使用者ID與帳號的頁面
* 管理員手動增加或刪除使用者功能
* 使用Nginx將網站發布上線(未完成)
林俊誠
* 商品頁面(未完成)
* 架設網站
## 個人心得
個人心得的部分將個別繳交到moodle