add ByteCamp and tutorial section with YouTube integration
This commit is contained in:
parent
72cb78c3ff
commit
0c476a6484
5 changed files with 41 additions and 10 deletions
10
package-lock.json
generated
10
package-lock.json
generated
|
|
@ -19,6 +19,7 @@
|
||||||
"monaco-editor": "^0.52.2",
|
"monaco-editor": "^0.52.2",
|
||||||
"react": "^19.0.0",
|
"react": "^19.0.0",
|
||||||
"react-dom": "^19.0.0",
|
"react-dom": "^19.0.0",
|
||||||
|
"react-icons": "^5.5.0",
|
||||||
"react-router-dom": "^6.27.0",
|
"react-router-dom": "^6.27.0",
|
||||||
"sass": "^1.86.3"
|
"sass": "^1.86.3"
|
||||||
},
|
},
|
||||||
|
|
@ -3240,6 +3241,15 @@
|
||||||
"react": "^19.1.0"
|
"react": "^19.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/react-icons": {
|
||||||
|
"version": "5.5.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.5.0.tgz",
|
||||||
|
"integrity": "sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw==",
|
||||||
|
"license": "MIT",
|
||||||
|
"peerDependencies": {
|
||||||
|
"react": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/react-refresh": {
|
"node_modules/react-refresh": {
|
||||||
"version": "0.14.2",
|
"version": "0.14.2",
|
||||||
"resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz",
|
"resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz",
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@
|
||||||
"monaco-editor": "^0.52.2",
|
"monaco-editor": "^0.52.2",
|
||||||
"react": "^19.0.0",
|
"react": "^19.0.0",
|
||||||
"react-dom": "^19.0.0",
|
"react-dom": "^19.0.0",
|
||||||
|
"react-icons": "^5.5.0",
|
||||||
"react-router-dom": "^6.27.0",
|
"react-router-dom": "^6.27.0",
|
||||||
"sass": "^1.86.3"
|
"sass": "^1.86.3"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
BIN
public/images/bytecamp.png
Normal file
BIN
public/images/bytecamp.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 MiB |
|
|
@ -3,6 +3,9 @@ import "../scss/styles.scss";
|
||||||
import "../scss/components/_navbar.scss";
|
import "../scss/components/_navbar.scss";
|
||||||
import { Link, useNavigate } from "react-router-dom";
|
import { Link, useNavigate } from "react-router-dom";
|
||||||
|
|
||||||
|
// Using URL reference for ByteCamp logo
|
||||||
|
const bytecampLogo = "/images/bytecamp.png";
|
||||||
|
|
||||||
const Navbar = () => {
|
const Navbar = () => {
|
||||||
const [glitchEffect, setGlitchEffect] = useState(false);
|
const [glitchEffect, setGlitchEffect] = useState(false);
|
||||||
const [activeLink, setActiveLink] = useState("/");
|
const [activeLink, setActiveLink] = useState("/");
|
||||||
|
|
@ -86,8 +89,13 @@ const Navbar = () => {
|
||||||
>
|
>
|
||||||
<div className="navbar__logo">
|
<div className="navbar__logo">
|
||||||
<div className="navbar__logo-scanner"></div>
|
<div className="navbar__logo-scanner"></div>
|
||||||
|
<img
|
||||||
|
src={bytecampLogo}
|
||||||
|
alt="ByteCamp Logo"
|
||||||
|
style={{ height: "40px", marginRight: "10px" }}
|
||||||
|
/>
|
||||||
<span className="navbar__logo-text">
|
<span className="navbar__logo-text">
|
||||||
Byte<span className="navbar__logo-text">Camp</span>
|
BYTE<span className="navbar__logo-text">CAMP</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,11 @@
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import "../scss/components/_services.scss";
|
import "../scss/components/_services.scss";
|
||||||
import ServiceCard from "../components/ServicesCard.jsx";
|
import ServiceCard from "../components/ServicesCard.jsx";
|
||||||
import battlesnakeLogo from "../../public/images/battlesnake.png";
|
import { FaYoutube } from "react-icons/fa";
|
||||||
|
|
||||||
|
// Using URL references for public assets instead of direct imports
|
||||||
|
const battlesnakeLogo = "/images/battlesnake.png";
|
||||||
|
const bytecampLogo = "/images/bytecamp.png";
|
||||||
|
|
||||||
function Services() {
|
function Services() {
|
||||||
return (
|
return (
|
||||||
|
|
@ -26,16 +30,24 @@ function Services() {
|
||||||
link="https://docs.battlesnake.com/"
|
link="https://docs.battlesnake.com/"
|
||||||
/>
|
/>
|
||||||
<ServiceCard
|
<ServiceCard
|
||||||
icon="🏆"
|
icon={<FaYoutube style={{ color: "#FF0000", fontSize: "5rem" }} />}
|
||||||
title="Leaderboard"
|
title="Tutorial"
|
||||||
desc="Choose your tech stack, deploy your Battlesnake, and see how your code ranks against other developers."
|
desc="Learn how to create your first Battlesnake with an easy-to-follow video guide to get you started quickly."
|
||||||
cta="Check the leaderboard"
|
cta="Watch tutorial"
|
||||||
|
link="https://www.youtube.com/watch?v=IA7CeGRfuNE"
|
||||||
/>
|
/>
|
||||||
<ServiceCard
|
<ServiceCard
|
||||||
icon="💡"
|
icon={
|
||||||
title="Try new languages and technologies in a high-stakes environment."
|
<img
|
||||||
desc="Battlesnake is a great outlet to learn something new and mess around with that platform, language, or library you've been meaning to try"
|
src={bytecampLogo}
|
||||||
cta="Learn more"
|
alt="ByteCamp Logo"
|
||||||
|
style={{ width: "100px", height: "100px" }}
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
title="Are you ready to start?"
|
||||||
|
desc="Join ByteCamp coding bootcamp and start learning Battlesnake today!"
|
||||||
|
cta="Register here"
|
||||||
|
link="https://www.bytecamp.ca/#r"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue