From 53983ba6c734419777abde692d74889e4528de03 Mon Sep 17 00:00:00 2001 From: yeeway Date: Thu, 11 Jan 2024 21:13:46 +0800 Subject: [PATCH 1/4] Modify favicon and title in index.html --- index.html | 4 ++-- public/bike.svg | 3 +++ public/vite.svg | 1 - 3 files changed, 5 insertions(+), 3 deletions(-) create mode 100644 public/bike.svg delete mode 100644 public/vite.svg diff --git a/index.html b/index.html index 8388c4b..fc1c8d9 100644 --- a/index.html +++ b/index.html @@ -2,9 +2,9 @@ - + - Vite + Vue + 成大單車節
diff --git a/public/bike.svg b/public/bike.svg new file mode 100644 index 0000000..7f3c360 --- /dev/null +++ b/public/bike.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/vite.svg b/public/vite.svg deleted file mode 100644 index e7b8dfb..0000000 --- a/public/vite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file From d9493adfa4b187c277f712e55187a227356a9791 Mon Sep 17 00:00:00 2001 From: yeeway Date: Thu, 11 Jan 2024 21:14:47 +0800 Subject: [PATCH 2/4] Add new views and set up router --- package-lock.json | 22 ++++++++++++++- package.json | 3 +- src/App.vue | 28 ++++++++----------- src/assets/vue.svg | 1 - src/components/HelloWorld.vue | 46 ------------------------------- src/dist/main.dev.js | 13 +++++++++ src/dist/router.dev.js | 52 +++++++++++++++++++++++++++++++++++ src/main.js | 9 +++--- src/router.js | 23 ++++++++++++++++ src/views/About.vue | 4 +++ src/views/Activities.vue | 4 +++ src/views/Forum.vue | 4 +++ src/views/Home.vue | 4 +++ src/views/Info.vue | 5 ++++ src/views/Partners.vue | 4 +++ src/views/Souvenir.vue | 4 +++ vite.config.js | 2 +- 17 files changed, 158 insertions(+), 70 deletions(-) delete mode 100644 src/assets/vue.svg delete mode 100644 src/components/HelloWorld.vue create mode 100644 src/dist/main.dev.js create mode 100644 src/dist/router.dev.js create mode 100644 src/router.js create mode 100644 src/views/About.vue create mode 100644 src/views/Activities.vue create mode 100644 src/views/Forum.vue create mode 100644 src/views/Home.vue create mode 100644 src/views/Info.vue create mode 100644 src/views/Partners.vue create mode 100644 src/views/Souvenir.vue diff --git a/package-lock.json b/package-lock.json index 8626b3a..ead0656 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,8 @@ "dependencies": { "autoprefixer": "^10.4.16", "postcss": "^8.4.33", - "vue": "^3.3.8" + "vue": "^3.3.8", + "vue-router": "^4.2.5" }, "devDependencies": { "@vitejs/plugin-vue": "^4.5.0", @@ -752,6 +753,11 @@ "@vue/shared": "3.4.7" } }, + "node_modules/@vue/devtools-api": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.1.tgz", + "integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==" + }, "node_modules/@vue/reactivity": { "version": "3.4.7", "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.7.tgz", @@ -2245,6 +2251,20 @@ } } }, + "node_modules/vue-router": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.5.tgz", + "integrity": "sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==", + "dependencies": { + "@vue/devtools-api": "^6.5.0" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", diff --git a/package.json b/package.json index a063528..59226d4 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,8 @@ "dependencies": { "autoprefixer": "^10.4.16", "postcss": "^8.4.33", - "vue": "^3.3.8" + "vue": "^3.3.8", + "vue-router": "^4.2.5" }, "devDependencies": { "@vitejs/plugin-vue": "^4.5.0", diff --git a/src/App.vue b/src/App.vue index 751beb4..5a69a37 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,19 +1,15 @@ - - - diff --git a/src/assets/vue.svg b/src/assets/vue.svg deleted file mode 100644 index 770e9d3..0000000 --- a/src/assets/vue.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/components/HelloWorld.vue b/src/components/HelloWorld.vue deleted file mode 100644 index dba5a62..0000000 --- a/src/components/HelloWorld.vue +++ /dev/null @@ -1,46 +0,0 @@ - - - - - diff --git a/src/dist/main.dev.js b/src/dist/main.dev.js new file mode 100644 index 0000000..294edae --- /dev/null +++ b/src/dist/main.dev.js @@ -0,0 +1,13 @@ +"use strict"; + +var _vue = require("vue"); + +require("./style.css"); + +var _App = _interopRequireDefault(require("./App.vue")); + +var _router = _interopRequireDefault(require("./router")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +(0, _vue.createApp)(_App["default"]).use(_router["default"]).mount('#app'); \ No newline at end of file diff --git a/src/dist/router.dev.js b/src/dist/router.dev.js new file mode 100644 index 0000000..de55f1d --- /dev/null +++ b/src/dist/router.dev.js @@ -0,0 +1,52 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _vueRouter = require("vue-router"); + +var _Home = _interopRequireDefault(require("./views/Home.vue")); + +var _About = _interopRequireDefault(require("./views/About.vue")); + +var _Info = _interopRequireDefault(require("./views/Info.vue")); + +var _Activities = _interopRequireDefault(require("./views/Activities.vue")); + +var _Forum = _interopRequireDefault(require("./views/Forum.vue")); + +var _Partners = _interopRequireDefault(require("./views/Partners.vue")); + +var _Souvenir = _interopRequireDefault(require("./views/Souvenir.vue")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +var router = (0, _vueRouter.createRouter)({ + history: (0, _vueRouter.createWebHistory)(), + routes: [{ + path: '/', + component: _Home["default"] + }, { + path: '/about', + component: _About["default"] + }, { + path: '/info', + component: _Info["default"] + }, { + path: '/activities', + component: _Activities["default"] + }, { + path: '/forum', + component: _Forum["default"] + }, { + path: '/partners', + component: _Partners["default"] + }, { + path: '/souvenir', + component: _Souvenir["default"] + }] +}); +var _default = router; +exports["default"] = _default; \ No newline at end of file diff --git a/src/main.js b/src/main.js index 2425c0f..311bd89 100644 --- a/src/main.js +++ b/src/main.js @@ -1,5 +1,6 @@ -import { createApp } from 'vue' -import './style.css' -import App from './App.vue' +import { createApp } from 'vue'; +import './style.css'; +import App from './App.vue'; +import router from './router'; -createApp(App).mount('#app') +createApp(App).use(router).mount('#app'); \ No newline at end of file diff --git a/src/router.js b/src/router.js new file mode 100644 index 0000000..03285ea --- /dev/null +++ b/src/router.js @@ -0,0 +1,23 @@ +import { createRouter, createWebHistory } from 'vue-router' +import Home from './views/Home.vue'; +import About from './views/About.vue'; +import Info from './views/Info.vue'; +import Activities from './views/Activities.vue'; +import Forum from './views/Forum.vue'; +import Partners from './views/Partners.vue'; +import Souvenir from './views/Souvenir.vue'; + +const router = createRouter({ + history: createWebHistory(), + routes: [ + { path: '/', component: Home }, + { path: '/about', component: About }, + { path: '/info', component: Info }, + { path: '/activities', component: Activities }, + { path: '/forum', component: Forum }, + { path: '/partners', component: Partners }, + { path: '/souvenir', component: Souvenir }, + ], +}); + +export default router; \ No newline at end of file diff --git a/src/views/About.vue b/src/views/About.vue new file mode 100644 index 0000000..04c9786 --- /dev/null +++ b/src/views/About.vue @@ -0,0 +1,4 @@ + + diff --git a/src/views/Activities.vue b/src/views/Activities.vue new file mode 100644 index 0000000..d2a9ac2 --- /dev/null +++ b/src/views/Activities.vue @@ -0,0 +1,4 @@ + + diff --git a/src/views/Forum.vue b/src/views/Forum.vue new file mode 100644 index 0000000..b95e4eb --- /dev/null +++ b/src/views/Forum.vue @@ -0,0 +1,4 @@ + + diff --git a/src/views/Home.vue b/src/views/Home.vue new file mode 100644 index 0000000..1d12712 --- /dev/null +++ b/src/views/Home.vue @@ -0,0 +1,4 @@ + + diff --git a/src/views/Info.vue b/src/views/Info.vue new file mode 100644 index 0000000..e6014fd --- /dev/null +++ b/src/views/Info.vue @@ -0,0 +1,5 @@ + + + diff --git a/src/views/Partners.vue b/src/views/Partners.vue new file mode 100644 index 0000000..74b99d4 --- /dev/null +++ b/src/views/Partners.vue @@ -0,0 +1,4 @@ + + diff --git a/src/views/Souvenir.vue b/src/views/Souvenir.vue new file mode 100644 index 0000000..0b51053 --- /dev/null +++ b/src/views/Souvenir.vue @@ -0,0 +1,4 @@ + + diff --git a/vite.config.js b/vite.config.js index 4b81c14..69322e9 100644 --- a/vite.config.js +++ b/vite.config.js @@ -4,5 +4,5 @@ import vue from '@vitejs/plugin-vue' // https://vitejs.dev/config/ export default defineConfig({ plugins: [vue()], - base: '/BikeFestival17th-Frontend/', + base: '/', }) \ No newline at end of file From 9b55925e26836f32c8a73a71b812b783e17a4ccd Mon Sep 17 00:00:00 2001 From: yeeway Date: Sat, 13 Jan 2024 00:12:03 +0800 Subject: [PATCH 3/4] Add department handbook and schedule data --- src/data/department_handbook.json | 348 ++++++++++++++++++++++++++++++ src/data/schedule.json | 38 ++++ 2 files changed, 386 insertions(+) create mode 100644 src/data/department_handbook.json create mode 100644 src/data/schedule.json diff --git a/src/data/department_handbook.json b/src/data/department_handbook.json new file mode 100644 index 0000000..53d2257 --- /dev/null +++ b/src/data/department_handbook.json @@ -0,0 +1,348 @@ +{ + "college_of_liberal_arts": { + "name": "文學院", + "photoURL": "", + "description": "文學院為成功大學之首院,其設立宗旨在因應時代潮流與社會脈動,配合國家長期發展,整合理論與實務,從事人文、語言及藝術方面之教學與研究;以培育通達人才,豐富生活內涵,擴展國際視野,認識多元文化,提升生命境界為目標。", + "dep_chinese_literature": { + "name": "中國文學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_foreign_literature": { + "name": "外國語文學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_taiwanese_literature": { + "name": "台灣文學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_history": { + "name": "歷史學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + } + }, + "college_science": { + "name": "理學院", + "photoURL": "", + "description": "", + "dep_mathematics": { + "name": "數學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_chemistry": { + "name": "化學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_physics": { + "name": "物理學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_earth_sciences": { + "name": "地球科學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_photonics": { + "name": "光電科學與工程學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + } + }, + "college_management": { + "name": "管理學院", + "photoURL": "", + "description": "", + "dep_accountancy": { + "name": "會計學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_statistics": { + "name": "統計學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_business_administration": { + "name": "企業管理學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_transportation_management": { + "name": "交通管理科學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_industrial_and_information_management": { + "name": "工業與資訊管理學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + } + }, + "college_engineering": { + "name": "工學院", + "photoURL": "", + "description": "", + "dep_mechanical_engineering": { + "name": "機械工程學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_chemical_engineering": { + "name": "化學工程學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_civil_engineering": { + "name": "土木工程學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_materials_engineering": { + "name": "材料科學與工程學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_hydraulic_and_ocean_engineering": { + "name": "水利及海洋工程學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_engineering_science": { + "name": "工程科學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_system_and_naval_mechatronic_engineering": { + "name": "系統及船舶機電工程學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_aeronautics_and_astronautics": { + "name": "航空太空工程學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_resources_engineering": { + "name": "資源工程學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_environmental_ngineering": { + "name": "環境工程學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_biomedical_engineering": { + "name": "生物醫學工程學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_geomatics": { + "name": "測量及空間資訊學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + } + }, + "college_ee_cs": { + "name": "電機資訊學院", + "photoURL": "", + "description": "", + "dep_electrical_engineering": { + "name": "電機工程學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_computer_cience": { + "name": "資訊工程學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + } + }, + "college_social": { + "name": "社會科學院", + "photoURL": "", + "description": "", + "dep_political_science": { + "name": "政治學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_economics": { + "name": "經濟學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_law": { + "name": "法律學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_psychology": { + "name": "心理學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + } + }, + "college_design": { + "name": "規劃與設計學院", + "photoURL": "", + "description": "", + "dep_architecture": { + "name": "建築學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_urban_planning": { + "name": "都市計劃學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_industrial_design": { + "name": "工業設計學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + } + }, + "college_bioscience": { + "name": "生物科學與科技學院", + "photoURL": "", + "description": "", + "dep_life_sciences": { + "name": "生命科學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_biotechnology_and_bioindustry_sciences": { + "name": "生物科技與產業科學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + } + }, + "college_medicine": { + "name": "醫學院", + "photoURL": "", + "description": "", + "dep_medicine": { + "name": "醫學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_nursing": { + "name": "護理學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_dentistry": { + "name": "牙醫學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_physical_therapy": { + "name": "物理治療學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_occupational_therapy": { + "name": "職能治療學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + }, + "dep_medical_laboratory_science": { + "name": "醫學檢驗暨生物技術學系", + "photoURL": "", + "description": "", + "pdfURL": "", + "related_schedule_id": [] + } + } +} diff --git a/src/data/schedule.json b/src/data/schedule.json new file mode 100644 index 0000000..d018f1e --- /dev/null +++ b/src/data/schedule.json @@ -0,0 +1,38 @@ +[ + { + "id": "", + "name": "活動名稱", + "project": "舞台活動", + "description": "一些活動介紹", + "date": ["03/02"], + "startTime": "09:00", + "endTime": "10:00", + "location": "光復校區 榕園", + "speaker": "", + "link": "" + }, + { + "id": "", + "name": "科系體驗坊-企鵝管理員", + "project": "科系博覽", + "description": "好冷好冷,住在冰屋的小企鵝要沒食物吃了,整天在家就是吃飯睡覺打咚咚,想說去買個彩券發家致富結果輸到脫褲,口袋空空的企鵝透過SWOT分析發現自己很適合管理,便應徵到位於北極的南極股份公司的管理員,透過成為企鵝管理員發大財!你也想了解發大財的秘訣嗎?那就快來參加企管的科系體驗坊吧!", + "date": ["03/02", "03/03"], + "startTime": "09:00", + "endTime": "10:20", + "location": "小西門砲台側", + "speaker": "", + "link": "" + }, + { + "id": "", + "name": "教授面試技巧演講-不分系", + "project": "升學指南", + "description": "", + "date": ["03/02"], + "startTime": "10:00", + "endTime": "11:00", + "location": "光復校區 國際會議廳第二演講室", + "speaker": "劉家幸 教授", + "link": "" + } +] From 989ba4a5de02bae039f1cb48b211f57cb8e641cd Mon Sep 17 00:00:00 2001 From: yeeway Date: Sat, 13 Jan 2024 00:12:42 +0800 Subject: [PATCH 4/4] Update page title and README.md --- README.md | 23 ++++++++++------------- index.html | 2 +- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index f36b064..e1a4b03 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,6 @@ # BikeFestival17th-Frontend ## 開發流程 -### branch -- `main`: 主要分支,用來部署 -- `xxx`: 各自開發分支,開發完成後合併到 `main` -> 例如:`jason` , `jimmy` , `jerry` ... ( 自己的代號 )
-> **請勿直接在 `main` 上開發** - ### dependencies - `npm` or `yarn` @@ -17,16 +11,19 @@ cd BikeFestival17th-Frontend yarn install yarn dev ``` -### 開 branch + +### branch +- `main`: 主要分支,用來部署 +- `xxx`: 各自開發分支,開發完成後合併到 `main` +> 例如:`jason` , `jimmy` , `jerry` ... ( 自己的代號 ),**請勿直接在 `main` 上開發** +- 開 branch ```bash git checkout -b # 這邊 就直接用自己的名字 ``` +> 目前有設好 Github Action,會自動部署 `main` 的內容到 `gh-pages` 分支 ## 合併流程 -看習慣使用 : -- pull request -- 在 local merge 完 push 回 origin +- 在自己的 branch 開發完 push 回 origin +- 開一個 Pull Request,如果只是一些小小的改動可以自己直接 merge 到 main。如果是較大的改動要給其他成員 code review 的話就在 discord 通知一聲,沒問題的話就再 merge。 + -> 看自己習慣使用哪種方式
-> 目前有設好 Github Action ~
-> 會自動部署 `main` 的內容到 `gh-pages` 分支 diff --git a/index.html b/index.html index fc1c8d9..f35923e 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ - 成大單車節 + 成大單車節 2024