# 10/7 壹籌延伸 - PUHub 網頁 :::info 時間:112/10/07 17:50 ~ 19:00 地點:線上會議 (Discord) 參與:StarLeisure、xiaojie4082、wei ![](https://hackmd.io/_uploads/Sy_aFoAx6.png) ::: ## 概要 此網站主要服務對象為靜宜大學之學生,並為學生提供許多課程相關資源,包含校內消息、課程查詢、評價等等;此外,日常生活方面也有提供相關的服務,像是公車時刻表、天氣預報。也可從本網站導向學校的各個網站、以及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 ![](https://hackmd.io/_uploads/H1sWHh0g6.png) - 下載後點選下一步 ![](https://hackmd.io/_uploads/Hked6NhCl6.png) - 選取需要使用的語言 ![](https://hackmd.io/_uploads/BJiXHhRx6.png) ### 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 證書 - 驗證域名 ![](https://hackmd.io/_uploads/SJE0dk1-p.png) - 下載證書至 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 ![](https://hackmd.io/_uploads/HyEM8JyWT.png) - 進入 MySQL 填充資料表 - 建立 puhub 資料表 ![](https://hackmd.io/_uploads/B14QvJy-T.png) - 使用 sql 匯入 ![](https://hackmd.io/_uploads/HJetwJJWa.png) - 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 ## 網頁提供服務 ### 最新消息 - 網站資訊與學校公告轉發 ![](https://hackmd.io/_uploads/r1NTjiRla.png) ### 匿名留言 - 匿名留言板、轉發至Discord ![](https://hackmd.io/_uploads/r1BhpsAgT.png) ### 天氣預報 - 提供一周內的天氣狀況 ![](https://hackmd.io/_uploads/r15a6o0x6.png) ### 公車時刻 - 提供進入本校的公車時刻表 ![](https://hackmd.io/_uploads/S1F1CiAgp.png) ### 選課評價 - 查詢課程評價 ![](https://hackmd.io/_uploads/B1UP0jAga.png) - 查看課程評分及考古題 ![](https://hackmd.io/_uploads/SJHdRo0gT.png) ### 實用連結 - 導向學校常用的網站 ![](https://hackmd.io/_uploads/BJLxCoRla.png) ### 建議回饋 - 透過匿名功能收取學生建議 ![](https://hackmd.io/_uploads/HJGb0o0l6.png) ### 帳號綁定 - 帳號資料設定 ![](https://hackmd.io/_uploads/ByAzRoRep.png) ### 加入社群 - 導向至 Discord 頁面 ![](https://hackmd.io/_uploads/B1oXCs0la.png) ## 網站需添加或調整功能 - [ ] 搜尋引擎無法搜尋 - [ ] 最新消息 > 分類器 - [ ] 回傳 log 至 discord - [ ] 轉移至 Linux 平台 - [ ] SEO優化 - [ ] 學餐資訊 - [ ] 近期活動 - [ ] 製作相關 api - [ ] 第三方綁定 (discord登入…) - [ ] 結合 GPT-3.5 - [ ] 管理員頁面 - [ ] 主選單重新製作 - [ ] 忘記密碼 - [ ] 氣象預報製作 - [ ] 返回規則調整 - [ ] 最新消息頁面添加超連結與摘要 - [ ] ... ###### tags: `討論共筆`