Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main' into Darrin
Browse files Browse the repository at this point in the history
  • Loading branch information
Darrin-Lin committed Apr 30, 2024
2 parents eb7f391 + 82a2df5 commit 5924df3
Show file tree
Hide file tree
Showing 19 changed files with 384 additions and 494 deletions.
32 changes: 30 additions & 2 deletions my-app/public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content="首頁|2023師大資工營網站" />
<meta name="description" content="首頁|2024 臺師大資工營" />
<!--Google Font Link-->
<link
href="https://fonts.googleapis.com/css2?family=Noto+Serif+TC&family=Source+Code+Pro&display=swap"
Expand All @@ -30,7 +30,35 @@
}
</script>

<title>NTNU CSIE CAMP</title>
<!-- Clarity -->
<script type="text/javascript">
(function (c, l, a, r, i, t, y) {
c[a] =
c[a] ||
function () {
(c[a].q = c[a].q || []).push(arguments);
};
t = l.createElement(r);
t.async = 1;
t.src = "https://www.clarity.ms/tag/" + i;
y = l.getElementsByTagName(r)[0];
y.parentNode.insertBefore(t, y);
})(window, document, "clarity", "script", "lz8f5yror6");
</script>

<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-KDWRLY8GCD"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag("js", new Date());

gtag("config", "G-KDWRLY8GCD");
</script>

<title>2024 臺師大資工營 NTNU CSIE Camp</title>
</head>

<body>
Expand Down
6 changes: 6 additions & 0 deletions my-app/src/Nav.js
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,12 @@ const Nav = () => {
block: "start",
inline: "nearest",
});
window.setTimeout(function () {
window.scrollTo({
top: window.scrollY - 75,
behavior: "smooth",
});
}, 700);
}
}
function smoothScrollToTop(event) {
Expand Down
Binary file added my-app/src/image/bg_nobg.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added my-app/src/image/bg_nobg_long.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added my-app/src/image/google_icon/hotel.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions my-app/src/image/google_icon/hotel.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
19 changes: 18 additions & 1 deletion my-app/src/page/About.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,24 @@ const About = () => {
<div>
<h2>資訊安全</h2>
<p>
在當今數位時代,資訊安全已成為一門不可或缺的學問。營隊間將開設一門資訊安全課程,旨在培養學生對於網路安全的基本認知與實戰技能。在課程中,我們引入滲透測試的概念,透過模擬攻擊的方式,讓學生深入了解系統漏洞和弱點可能帶來的風險。隨著近期頻繁發生的網絡攻擊事件,本課程也聚焦於資訊安全技術與防禦策略,更細緻地探討了人類行為模式對安全防護的影響。並透過營期間的活動,學生將領悟安全防範不僅限於技術層面,更需洞察人性的弱點。
想知道什麼是資訊安全中名為滲透測試的東西嗎? 想知道駭客如何從多個看似不起眼的 Bug
串成一條攻擊鏈嗎?又或者是想盡辦法如何打下一台主機,在受害方加載惡意程式嗎?
我們會先介紹網路的概念,了解網路協定的程式漏洞,接著透過實戰的方式入侵一台受害者的電腦,在其中蘊含了資安最有名的競賽
CTF(Capture The
Flag)各種類型的結合,包括密碼學(Cryptography)、逆向工程(Reverse)、有漏洞的服務(Pwn)等,甚至還有利用惡意蠕蟲使病毒橫向移動!
當然最後也會教大家如何從中防禦,有興趣的話簡報最後的部分也會講到課後延伸學習的知識點喔~
在這堂課你會學到:
<ul class="class-list">
<li>網路概念與協定:了解 SMB 的應用及缺陷</li>
<li>
逆向工程 Reverse:利用反編譯或反組譯來解析處理 SMB 的驅動程式(C 語言 & 組合語言)
</li>
<li>
有漏洞的服務 Pwn:尋找 SMB 驅動程式中存在的漏洞、撰寫攻擊腳本
(此課程不會教大家如何撰寫攻擊腳本)
</li>
<li>蠕蟲病毒 Ransomware:了解被加密了哪些檔案</li>
</ul>
</p>
</div>

Expand Down
2 changes: 1 addition & 1 deletion my-app/src/page/FAQ.js
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ export const FAQ = () => {
</div>
<div class="response">
<p>
以最後點選「申請報名」的時間為準,也就是 5/23 00:00 開始不要亂玩「取消報名」按鈕哦!
以最後點選「申請報名」的時間為準,也就是 5/1 00:00 開始不要亂玩「取消報名」按鈕哦!
</p>
</div>
</div>
Expand Down
97 changes: 49 additions & 48 deletions my-app/src/page/Home.js
Original file line number Diff line number Diff line change
@@ -1,26 +1,48 @@
import React, { useState } from "react";
import camp_introduction_img from "../image/draw_icon/camp_introduction.png";
import registration_information_img from "../image/draw_icon/registration_information.png";
import faq_img from "../image/draw_icon/faq.png";
import traffic_information_img from "../image/draw_icon/traffic_information.png";
import review_img from "../image/draw_icon/review.png";
import React from "react";
// import camp_introduction_img from "../image/draw_icon/camp_introduction.png";
// import registration_information_img from "../image/draw_icon/registration_information.png";
// import faq_img from "../image/draw_icon/faq.png";
// import traffic_information_img from "../image/draw_icon/traffic_information.png";
// import review_img from "../image/draw_icon/review.png";
import banner from "../image/banner.png";
import About from "./About";
import Info from "./Info";
import FAQ from "./FAQ";
import Traffic from "./Traffic";
import Review from "./Review";

const menuItems = [
{
name: "營隊介紹",
eng_name: "about",
},
{
name: "報名資訊",
eng_name: "info",
},
{
name: "常見問題",
eng_name: "faq",
},
{
name: "交通資訊",
eng_name: "traffic",
},
{
name: "歷屆回顧",
eng_name: "review",
},
];
const Home = () => {

const [descriptions, setDescriptions] = useState({
image1: { visible: true, content: <About /> },
image2: { visible: true, content: <Info /> },
image3: { visible: true, content: <FAQ /> },
image4: { visible: true, content: <Traffic /> },
image5: { visible: true, content: <Review /> },
});
const pages = [<About />, <Info />, <FAQ />, <Traffic />, <Review />];
// const [descriptions, setDescriptions] = useState({
// image1: { visible: true, content: <About /> },
// image2: { visible: true, content: <Info /> },
// image3: { visible: true, content: <FAQ /> },
// image4: { visible: true, content: <Traffic /> },
// image5: { visible: true, content: <Review /> },
// });

/*
const toggleDescription = (imageId) => {
setDescriptions((prevState) => ({
...prevState,
Expand All @@ -30,9 +52,9 @@ const Home = () => {
},
}));
};
*/

return (

<div id="main" style={{ margin: "64px 0%" }}>
<header style={{ textAlign: "center" }} id="header">
<img src={banner} alt="banner" style={{ width: "100%" }} />
Expand All @@ -42,54 +64,33 @@ const Home = () => {
<div className="col-6 col-12-medium">
<section>
<ul className="big-image-list" style={{ listStyleType: "none" }}>
{[1, 2, 3, 4, 5].map((index) => (
{menuItems.map((item, index) => (
<li key={index}>
{index > 1 && <div style={{ height: "100%" }}></div>}
<div style={{ textAlign: index % 2 === 0 ? "right" : "left" }}>
<div
style={{ textAlign: index % 2 !== 0 ? "right" : "left" }}
id={item.eng_name}
>
<h2
style={{ textAlign: index % 2 === 0 ? "right" : "left" }}
style={{ textAlign: index % 2 !== 0 ? "right" : "left" }}
class="home_titles"
>
{index === 1 && <font id="about">營隊資訊</font>}
{index === 2 && <font id="info">報名資訊</font>}
{index === 3 && <font id="faq">FAQ</font>}
{index === 4 && <font id="traffic">交通資訊</font>}
{index === 5 && <font id="review">歷屆回顧</font>}
<span>{item.name}</span>
</h2>
<hr />
<div onClick={() => toggleDescription(`image${index}`)}>
<img
src={
index === 1
? camp_introduction_img
: index === 2
? registration_information_img
: index === 3
? faq_img
: index === 4
? traffic_information_img
: review_img
}
className={`image${index}`}
alt=""
style={{ width: "4em", height: "4em" }}
/>
</div>
<p
className={`text-below${index}`}
style={{ textAlign: index % 2 === 0 ? "right" : "left" }}
style={{ textAlign: index % 2 !== 0 ? "right" : "left" }}
></p>
</div>

<div
style={{
textAlign: index % 2 === 0 ? "right" : "left",
textAlign: index % 2 !== 0 ? "right" : "left",
width: "100%",
display: descriptions[`image${index}`].visible ? "block" : "none",
// display: descriptions[`image${index}`].visible ? "block" : "none",
wordWrap: "break-word",
}}
>
{descriptions[`image${index}`].content}
{pages[index]}
</div>
</li>
))}
Expand Down
43 changes: 31 additions & 12 deletions my-app/src/page/Info.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,12 @@ export const Info = () => {
function attend_click() {
window.location.replace("https://camp-app.csie.cool/login");
}

return (
<div class="attend_info_">
<div class="early_bird-notice">
<p>早鳥優惠進行中</p>
</div>
<section class="lesson">
<div>
<h2>日期</h2>
Expand All @@ -29,10 +33,24 @@ export const Info = () => {
class="imageinfo"
></img>
</div>
<div class="lesson">
<div>
<h2>住宿地點</h2>
<p>
<a href="https://guidehotel.com.tw/hotel-detail/1052">承攜行旅 臺北重慶館</a>
<br></br>103 臺北市大同區臺北市大同區重慶北路一段 62 號
</p>
</div>
<img
src={require("../image/google_icon/hotel.png")}
alt="hotel_icon"
class="imageinfo"
></img>
</div>
<div class="lesson">
<div>
<h2>報名時間</h2>
<p>第一階段:113 年 4 月 20 日 至 113 年 5 月 27</p>
<p>第一階段:113 年 4 月 20 日 至 113 年 5 月 20</p>
</div>
<img
src={require("../image/google_icon/clock.png")}
Expand All @@ -45,19 +63,24 @@ export const Info = () => {
<div>
<h2>報名費用</h2>
<p>
新臺幣 9500 元整<br></br>早鳥優惠:新臺幣 8900 元整(113 年 4 月 20 日 至 113 年 4 月 30
日)
新臺幣 9500 元整<br></br>
<div class="early_bird">
<span class="early_bird-label">進行中</span>
<span class="early_bird_text">
早鳥優惠:新臺幣 8900 元整(113 年 4 月 20 日 至 113 年 4 月 30 日)
</span>
</div>
</p>
</div>
<img src={require("../image/google_icon/paid.png")} alt="paid_icon" class="imageinfo"></img>
</div>
<div class="lesson">
<div>
<h2>詳細資訊</h2>
<p>
<p class="doc-link">
{" "}
<a href="https://docs.google.com/document/d/1-IfWEmdciveIbeI3UuuFrzIo26U1mj23lXVqvMRNDCk/edit?usp=sharing">
報名簡章
點此查看 <b>報名簡章</b>
</a>{" "}
</p>
</div>
Expand All @@ -68,13 +91,9 @@ export const Info = () => {
></img>
</div>

<button
type="button"
class="attend_button"
onClick={attend_click}
data-front="立即報名"
data-back='你們在 "code" 甚麼'
></button>
<button type="button" class="attend_button effect" onClick={attend_click}>
立即報名
</button>
</div>
);
};
Expand Down
24 changes: 16 additions & 8 deletions my-app/src/page/Review.js
Original file line number Diff line number Diff line change
Expand Up @@ -190,21 +190,29 @@ export const Review = () => {
<div className="pageReviewFlex">
{/* 歷屆 logo */}
<div id="page_review_year">
<div id="year_logo" onClick={() => change_year(2023)}>
<div id="year_logo">
<div id="year">2023</div>
<img src={require("../image/logo_review/2023_logo.png")} alt="review_2023_logo" />
<div class="img-border" onClick={() => change_year(2023)}>
<img src={require("../image/logo_review/2023_logo.png")} alt="review_2023_logo" />
</div>
</div>
<div id="year_logo" onClick={() => change_year(2022)}>
<div id="year_logo">
<div id="year">2022</div>
<img src={require("../image/logo_review/2022_logo.png")} alt="review_2022_logo" />
<div class="img-border" onClick={() => change_year(2022)}>
<img src={require("../image/logo_review/2022_logo.png")} alt="review_2022_logo" />
</div>
</div>
<div id="year_logo" onClick={() => change_year(2021)}>
<div id="year_logo">
<div id="year">2021</div>
<img src={require("../image/logo_review/2021_logo.png")} alt="review_2021_logo" />
<div class="img-border" onClick={() => change_year(2021)}>
<img src={require("../image/logo_review/2021_logo.png")} alt="review_2021_logo" />
</div>
</div>
<div id="year_logo" onClick={() => change_year(2020)}>
<div id="year_logo">
<div id="year">2020</div>
<img src={require("../image/logo_review/2020_logo.png")} alt="review_2020_logo" />
<div class="img-border" onClick={() => change_year(2020)}>
<img src={require("../image/logo_review/2020_logo.png")} alt="review_2020_logo" />
</div>
</div>
{/* <div id="year_logo" onClick={() => change_year(2019)}>
<div id="year">2019</div>
Expand Down
Loading

0 comments on commit 5924df3

Please sign in to comment.