# 10/7 壹籌延伸 - PUHub 網頁
:::info
時間:112/10/07 17:50 ~ 19:00
地點:線上會議 (Discord)
參與:StarLeisure、xiaojie4082、wei

:::
## 概要
此網站主要服務對象為靜宜大學之學生,並為學生提供許多課程相關資源,包含校內消息、課程查詢、評價等等;此外,日常生活方面也有提供相關的服務,像是公車時刻表、天氣預報。也可從本網站導向學校的各個網站、以及Discord社群。
## 技術
- 前端
- [**MDBootstrap.com**](https://mdbootstrap.com/)
- JavaScript
- 後端
- PHP
- MySQL
## 架設網頁伺服器
### XAMPP 安裝
- XAMPP (8.1.17 / PHP 8.1.17)
- https://www.apachefriends.org/zh_tw/download.html

- 下載後點選下一步

- 選取需要使用的語言

### XAMPP 設定
- 修改 host 檔案 `C:\Windows\System32\drivers\etc\hosts`
- 新增 ```127.0.0.1 puhub.org```
- 修改 vhost 檔案 `C:\xampp\apache\conf\extra\httpd-vhosts.conf`
- 新增
```
<VirtualHost *:443>
DocumentRoot "C:/xampp/htdocs/puhub"
ServerName puhub.org
ServerAlias www.puhub.org
SSLEngine on
SSLCertificateFile "隱藏路徑\ssl\certificate.crt"
SSLCertificateKeyFile "隱藏路徑\ssl\private.key"
SSLCACertificateFile "隱藏路徑\ssl\ca_bundle.crt"
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/puhub"
ServerName puhub.org
ServerAlias www.puhub.org
</VirtualHost>
```
- ZeroSSL 證書
- 驗證域名

- 下載證書至 vhost 指定路徑
### Clone 網站原始碼
- git clone 至 `C:\xampp\htdocs`
- ~~https://github.com/xiaojie4082/puhubv1~~
- 2023/6 ~ 8
- laravel/backpack
- https://github.com/xiaojie4082/puhubv2
- 2023/8 ~ 至今
### 開啟伺服器
- Apache 與 MySQL

- 進入 MySQL 填充資料表
- 建立 puhub 資料表

- 使用 sql 匯入

- sql 檔案
```SQL!
-- phpMyAdmin SQL Dump
-- version 5.2.1
-- https://www.phpmyadmin.net/
--
-- 主機: 127.0.0.1
-- 產生時間: 2023-10-07 15:59:17
-- 伺服器版本: 10.4.28-MariaDB
-- PHP 版本: 8.1.17
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- 資料庫: `puhub`
--
-- --------------------------------------------------------
--
-- 資料表結構 `comments`
--
CREATE TABLE `comments` (
`username` varchar(50) NOT NULL,
`webs` text NOT NULL,
`discords` text NOT NULL,
`likes` text NOT NULL,
`improve` text NOT NULL,
`suggestion` text NOT NULL,
`other` text DEFAULT NULL,
`token` varchar(100) NOT NULL,
`id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
-- --------------------------------------------------------
--
-- 資料表結構 `course`
--
CREATE TABLE `course` (
`id` bigint(20) UNSIGNED NOT NULL,
`course` text NOT NULL,
`teacher` text NOT NULL,
`referral` int(11) NOT NULL,
`reward` int(11) NOT NULL,
`homeworkandtest` int(11) NOT NULL,
`share` text NOT NULL,
`source` text DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
-- --------------------------------------------------------
--
-- 資料表結構 `course_upload`
--
CREATE TABLE `course_upload` (
`id` varchar(32) NOT NULL,
`course` text NOT NULL,
`teacher` text NOT NULL,
`path` text NOT NULL,
`name` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
-- --------------------------------------------------------
--
-- 資料表結構 `login_history`
--
CREATE TABLE `login_history` (
`user` varchar(50) NOT NULL,
`ip` text NOT NULL,
`time` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
-- --------------------------------------------------------
--
-- 資料表結構 `logout_history`
--
CREATE TABLE `logout_history` (
`user` varchar(50) NOT NULL,
`ip` text NOT NULL,
`time` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
-- --------------------------------------------------------
--
-- 資料表結構 `message`
--
CREATE TABLE `message` (
`time` int(11) NOT NULL,
`message` text NOT NULL,
`ip` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
-- --------------------------------------------------------
--
-- 資料表結構 `news`
--
CREATE TABLE `news` (
`title` text NOT NULL,
`text` text NOT NULL,
`time` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
-- --------------------------------------------------------
--
-- 資料表結構 `state`
--
CREATE TABLE `state` (
`state` varchar(20) NOT NULL,
`text` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
--
-- 傾印資料表的資料 `state`
--
INSERT INTO `state` (`state`, `text`) VALUES
('success', '網站所有功能皆正常運行中...');
-- --------------------------------------------------------
--
-- 資料表結構 `user`
--
CREATE TABLE `user` (
`Username` varchar(50) NOT NULL,
`Password` varchar(100) NOT NULL,
`Email` text NOT NULL,
`Discord` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
--
-- 已傾印資料表的索引
--
--
-- 資料表索引 `comments`
--
ALTER TABLE `comments`
ADD PRIMARY KEY (`id`);
--
-- 資料表索引 `course`
--
ALTER TABLE `course`
ADD PRIMARY KEY (`id`);
--
-- 資料表索引 `course_upload`
--
ALTER TABLE `course_upload`
ADD PRIMARY KEY (`id`);
--
-- 資料表索引 `message`
--
ALTER TABLE `message`
ADD PRIMARY KEY (`time`);
--
-- 資料表索引 `news`
--
ALTER TABLE `news`
ADD PRIMARY KEY (`time`);
--
-- 資料表索引 `state`
--
ALTER TABLE `state`
ADD PRIMARY KEY (`state`);
--
-- 資料表索引 `user`
--
ALTER TABLE `user`
ADD PRIMARY KEY (`Username`);
--
-- 在傾印的資料表使用自動遞增(AUTO_INCREMENT)
--
--
-- 使用資料表自動遞增(AUTO_INCREMENT) `comments`
--
ALTER TABLE `comments`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=20;
--
-- 使用資料表自動遞增(AUTO_INCREMENT) `course`
--
ALTER TABLE `course`
MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=56;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
```
- 開啟網頁
- localhost
- 127.0.0.1
- puhub.org
## 網頁提供服務
### 最新消息
- 網站資訊與學校公告轉發

### 匿名留言
- 匿名留言板、轉發至Discord

### 天氣預報
- 提供一周內的天氣狀況

### 公車時刻
- 提供進入本校的公車時刻表

### 選課評價
- 查詢課程評價

- 查看課程評分及考古題

### 實用連結
- 導向學校常用的網站

### 建議回饋
- 透過匿名功能收取學生建議

### 帳號綁定
- 帳號資料設定

### 加入社群
- 導向至 Discord 頁面

## 網站需添加或調整功能
- [ ] 搜尋引擎無法搜尋
- [ ] 最新消息 > 分類器
- [ ] 回傳 log 至 discord
- [ ] 轉移至 Linux 平台
- [ ] SEO優化
- [ ] 學餐資訊
- [ ] 近期活動
- [ ] 製作相關 api
- [ ] 第三方綁定 (discord登入…)
- [ ] 結合 GPT-3.5
- [ ] 管理員頁面
- [ ] 主選單重新製作
- [ ] 忘記密碼
- [ ] 氣象預報製作
- [ ] 返回規則調整
- [ ] 最新消息頁面添加超連結與摘要
- [ ] ...
###### tags: `討論共筆`