diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 6d0191b..2d0ad1f 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,6 +1,5 @@ { "name": "Node.js & TypeScript", "image": "mcr.microsoft.com/devcontainers/typescript-node:1-22-bookworm", - "postCreateCommand": "sudo apt update && curl -1sLf 'https://dl.cloudsmith.io/public/evilmartians/lefthook/setup.deb.sh' | sudo -E bash && sudo apt install lefthook && npm install -g pnpm && lefthook install", - "postStartCommand": "pnpm install" + "postCreateCommand": "sudo apt update && curl -1sLf 'https://dl.cloudsmith.io/public/evilmartians/lefthook/setup.deb.sh' | sudo -E bash && sudo apt install lefthook && npm install -g pnpm && lefthook install && pnpm install" } diff --git a/.prettierignore b/.prettierignore index cdac716..d5b5ede 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,3 +1,5 @@ -node_modules# Ignore artifacts: +node_modules build coverage +.pnpm-store +public \ No newline at end of file diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index b26b550..0000000 --- a/Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -FROM node:18-alpine - -WORKDIR /website/ - -COPY public/ /website/public -COPY src/ /website/src -COPY package.json / /website/ - -RUN npm install - -CMD ["npm", "start"] \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml deleted file mode 100644 index 85b2522..0000000 --- a/docker-compose.yaml +++ /dev/null @@ -1,10 +0,0 @@ -version: '3' - -services: - website: - build: - context: . - dockerfile: Dockerfile - image: website:latest - ports: - - '3000:3000' diff --git a/lefthook.yml b/lefthook.yml index 4a239b7..80afb9b 100644 --- a/lefthook.yml +++ b/lefthook.yml @@ -1,8 +1,8 @@ pre-commit: commands: prettier: - run: npx prettier . --write + run: npx prettier . --write --ignore-path .prettierignore stage_fixed: true lint: - run: npx eslint . --fix + run: npx eslint . --fix --ignore-pattern "build/**" --ignore-pattern "node_modules/**" --ignore-pattern "coverage/**" --ignore-pattern ".pnpm-store/**" --ignore-pattern "public/**" stage_fixed: true diff --git a/src/assets/image/AgroPickerBluBg.png b/src/assets/image/AgroPickerBluBg.png deleted file mode 100644 index bb3f4b4..0000000 Binary files a/src/assets/image/AgroPickerBluBg.png and /dev/null differ diff --git a/src/assets/image/Agroarm2DModel-old.png b/src/assets/image/Agroarm2DModel-old.png deleted file mode 100644 index 93998fd..0000000 Binary files a/src/assets/image/Agroarm2DModel-old.png and /dev/null differ diff --git a/src/assets/image/Agroarm2DModel-old2.png b/src/assets/image/Agroarm2DModel-old2.png deleted file mode 100644 index 671ba27..0000000 Binary files a/src/assets/image/Agroarm2DModel-old2.png and /dev/null differ diff --git a/src/assets/image/Agroarm2DModel.png b/src/assets/image/Agroarm2DModel.png deleted file mode 100644 index 4640eb2..0000000 Binary files a/src/assets/image/Agroarm2DModel.png and /dev/null differ diff --git a/src/assets/image/FarmPath.jpeg b/src/assets/image/FarmPath.jpeg deleted file mode 100644 index d1dc1d3..0000000 Binary files a/src/assets/image/FarmPath.jpeg and /dev/null differ diff --git a/src/assets/image/FarmPath22.svg b/src/assets/image/FarmPath22.svg deleted file mode 100644 index 29bc9b3..0000000 --- a/src/assets/image/FarmPath22.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/assets/image/index.js b/src/assets/image/index.js index 1856dfe..f8f2157 100644 --- a/src/assets/image/index.js +++ b/src/assets/image/index.js @@ -1,9 +1,7 @@ import AgroponicsFarm from './AgroponicsRiver.jpeg' import AgrobotMoving from './Agrobot-Moving.png' -import FarmPath from './FarmPath.jpeg' import AgrobotModel2D from './AgrobotModel2D.jpg' import AgroponicModel2D from './AgroponicModel2D.png' -import AgroArm2DModel from './Agroarm2DModel.png' import apsc from './apsc.png' import AGROBOT_ICON from './AGROBOT_ICON.png' import chbe from './chbe.png' @@ -19,7 +17,6 @@ import verdi from './verdi.png' import agrobot from './UBC_AGROBOTS.png' import HomeFarm from './homeFarm.png' import LOGO from './UBC_AGROBOTS.png' - import BP1Team from './BP1Team.webp' export { @@ -27,8 +24,6 @@ export { AgrobotModel2D, AgrobotMoving, AgroponicsFarm, - AgroArm2DModel, - FarmPath, AgroponicModel2D, apsc, chbe, diff --git a/src/assets/index.js b/src/assets/index.js index 9e9f3e9..e3b3ba5 100644 --- a/src/assets/index.js +++ b/src/assets/index.js @@ -1,9 +1,7 @@ import { AgroponicModel2D, - AgroArm2DModel, AgrobotMoving, AgroponicsFarm, - FarmPath, AgrobotModel2D, AGROBOT_ICON, apsc, @@ -28,8 +26,6 @@ export { AgrobotMoving, AgroponicsFarm, AgrobotModel2D, - FarmPath, - AgroArm2DModel, AGROBOT_ICON, apsc, chbe, diff --git a/src/components/home/HomeProjects.js b/src/components/home/HomeProjects.js index 894b11e..d84f212 100644 --- a/src/components/home/HomeProjects.js +++ b/src/components/home/HomeProjects.js @@ -1,12 +1,8 @@ import React from 'react' import { useSpring, animated } from 'react-spring' import { useState, useEffect, useRef } from 'react' -import { - AgrobotModelView, - AgroponicModelView, - AgroPickerModelView, -} from '../models' -import { AgrobotModel2D, AgroArm2DModel, AgroponicModel2D } from '../../assets' +import { AgrobotModelView, AgroponicModelView } from '../models' +import { AgrobotModel2D, AgroponicModel2D } from '../../assets' import { useMediaQuery } from 'react-responsive' import { Link } from 'react-router-dom' @@ -32,17 +28,6 @@ const AgroponicMod = ( /> ) -const AgropickerMod = ( - -) - const projects = [ { ProjectName: 'AgroBot', @@ -60,14 +45,6 @@ const projects = [ background: { background: '#cdff70' }, href: '/agroponics', }, - { - ProjectName: 'AgroPicker', - Text: 'An autonomous robotic arm capable of detecting fruits, assessing their ripeness, and harvesting them efficiently. The robotic arm will be attached to a mobile robot intended for on-field navigation. This system aims to improve the efficiency and accuracy of fruit harvesting, reduce labor costs, and minimize fruit damage. ', - ModelComponent: AgropickerMod, - MobileImg: AgroArm2DModel, - background: { background: '#cdff70' }, - href: '#', - }, ] function Project({ diff --git a/src/components/models/AgroPickerModelView.js b/src/components/models/AgroPickerModelView.js deleted file mode 100644 index 29db27f..0000000 --- a/src/components/models/AgroPickerModelView.js +++ /dev/null @@ -1,52 +0,0 @@ -import { useState, useRef } from 'react' -import { Canvas } from '@react-three/fiber' -import * as THREE from 'three' -import { Preload, View } from '@react-three/drei' -import ModelViewer from './utils/ModelView' -import AgroPickerModel from './meshAndMaterials/AgropickerModel' - -const AgroPickerModelView = ({ - id, - gsapType, - scale, - cameraPosition, - groupPosition, - vectorPosition, -}) => { - const cameraRef = useRef() - const modelRef = useRef(new THREE.Group()) - const [rotation, setRotation] = useState(2.43) - - return ( -
- } - cameraPosition={cameraPosition} - groupPosition={groupPosition} - vectorPosition={vectorPosition} - /> - - - - -
- ) -} - -export default AgroPickerModelView diff --git a/src/components/models/index.js b/src/components/models/index.js index 3c94376..c7fe8be 100644 --- a/src/components/models/index.js +++ b/src/components/models/index.js @@ -1,5 +1,4 @@ import AgrobotModelView from './AgrobotModelView' -import AgroPickerModelView from './AgroPickerModelView' import AgroponicModelView from './AgroponicModelView' -export { AgrobotModelView, AgroPickerModelView, AgroponicModelView } +export { AgrobotModelView, AgroponicModelView } diff --git a/src/components/models/meshAndMaterials/AgropickerModel.js b/src/components/models/meshAndMaterials/AgropickerModel.js deleted file mode 100644 index f783f19..0000000 --- a/src/components/models/meshAndMaterials/AgropickerModel.js +++ /dev/null @@ -1,29 +0,0 @@ -import React, { useRef } from 'react' -import { useGLTF } from '@react-three/drei' -import path from '../../../assets/models/agroarm-transformed.glb' -import { useFrame } from '@react-three/fiber' - -const AgroPickerModel = (props) => { - const { nodes, materials } = useGLTF(path) - const ref = useRef() - - useFrame(() => { - ref.current.rotation.y += 0.0005 - ref.current.rotation.x += 0.0 - }) - - return ( - - - - ) -} - -useGLTF.preload(path) - -export default AgroPickerModel diff --git a/src/components/projects/agrobots/subteams/Extermination.js b/src/components/projects/agrobots/subteams/Extermination.js deleted file mode 100644 index 34be479..0000000 --- a/src/components/projects/agrobots/subteams/Extermination.js +++ /dev/null @@ -1,24 +0,0 @@ -import SubteamSection from '../../utils/SubteamSection' -import TextChild from '../../utils/TextChild' -import ImageChild from '../../utils/ImageChild' -const Extermination = () => { - return ( -
- - } - leftChild={} - /> -
- ) -} - -export default Extermination diff --git a/src/components/projects/agrobots/subteams/Mechatronics.js b/src/components/projects/agrobots/subteams/Mechatronics.js new file mode 100644 index 0000000..39bf1da --- /dev/null +++ b/src/components/projects/agrobots/subteams/Mechatronics.js @@ -0,0 +1,24 @@ +import SubteamSection from '../../utils/SubteamSection' +import TextChild from '../../utils/TextChild' +import ImageChild from '../../utils/ImageChild' +const Mechatronics = () => { + return ( +
+ + } + leftChild={} + /> +
+ ) +} + +export default Mechatronics diff --git a/src/components/recruitment/SubteamOverlay.js b/src/components/recruitment/SubteamOverlay.js index 2e246cb..9da32cc 100644 --- a/src/components/recruitment/SubteamOverlay.js +++ b/src/components/recruitment/SubteamOverlay.js @@ -158,15 +158,15 @@ function SubteamOverlay({ setOverlayId, overlayId }) { ], } break - case 'extermination': + case 'mechatronics': content = { - title: 'Extermination', + title: 'Mechatronics', description: - 'The Extermination sub-team designs, builds, and programs precision weed elimination systems that focus on eco-friendly weed management and crop protection. Our active projects include a system for the targeted deployment of herbicide and a laser weeding system based on a 2 axis gantry to burn weeds with a high powered laser. Our project is very self contained and all encompassing, thus requiring members from various engineering disciplines.', + 'The Mechatronics sub-team designs, builds, and programs the AgroBot’s additional robotic capabilities to allow it to fulfill various functions. Our active projects include a system for the targeted deployment of herbicide and a laser weeding system based on a 2 axis gantry to burn weeds with a high powered laser. Our projects are very self contained and all encompassing, thus requiring members from various engineering disciplines.', responsibilities: [ - 'Designing mechanical, electrical, and software elements of the extermination system', + 'Designing mechanical, electrical, and software elements of the mechatronic systems', 'Prototyping and Iterating on designs', - 'Integrating Extermination Systems with Agrobot’s other subteams, notably the Applied AI, Mechanical, and Electrical subteams', + 'Integrating Mechatronics Systems with Agrobot’s other subteams, notably the Applied AI, Mechanical, and Electrical subteams', ], technologies: [ 'SolidWorks, Altium, Kicad', @@ -176,7 +176,7 @@ function SubteamOverlay({ setOverlayId, overlayId }) { what_you_will_learn: [ { bold: 'Mechanical Design: ', - text: 'Master the design of precision extermination systems using SolidWorks', + text: 'Master the design of precision electromechanical systems using SolidWorks', }, { bold: 'Electrical Design: ', @@ -192,7 +192,7 @@ function SubteamOverlay({ setOverlayId, overlayId }) { }, { bold: 'Integration & Control: ', - text: 'Integrate data from crop detection models and implement control algorithms for accurate extermination methods', + text: 'Integrate data from crop detection models and implement control algorithms for precise motion', }, { bold: 'Mitigate Environmental Impact: ', @@ -203,7 +203,7 @@ function SubteamOverlay({ setOverlayId, overlayId }) { text: 'Gain experience with tools such as Arduino and Altium or Kicad for firmware/electrical development and SolidWorks for mechanical design', }, ], - note: 'Members are not required to be fluent in all technologies and fields described. Having a strong focus in one aspect of the system is useful and sought after. Members are also welcome to dabble in all aspects of the system (MECH,ELEC, & Software). ', + note: 'Members are not required to be fluent in all technologies and fields described. Having a strong focus in one aspect of the system is useful and sought after. Members are also welcome to dabble in all aspects of the system (MECH,ELEC, & Software)', } break case 'navigation_embedded_systems': @@ -340,9 +340,9 @@ function SubteamOverlay({ setOverlayId, overlayId }) { content = { title: 'Agricultural Research', description: - 'The Agricultural Research sub-team provides critical agricultural knowledge and conducts research to support the development of AgroBot, AgroPonics, and AgroPicker, ensuring our projects are informed by the latest advancements in the field.', + 'The Agricultural Research sub-team provides critical agricultural knowledge and conducts research to support the development of AgroBot and AgroPonics, ensuring our projects are informed by the latest advancements in the field.', responsibilities: [ - 'Conducting agricultural research to support the development of AgroBot, AgroPonics, and AgroPicker.', + 'Conducting agricultural research to support the development of AgroBot and AgroPonics.', 'Providing domain-specific knowledge and expertise to guide project designs and improvements.', 'Reaching out to industry professionals and experts for insights and information on agricultural practices.', 'Collaborating with other sub-teams to ensure agricultural accuracy and relevance in all projects.', diff --git a/src/pages/Recruitment.js b/src/pages/Recruitment.js index f011cad..020e4fd 100644 --- a/src/pages/Recruitment.js +++ b/src/pages/Recruitment.js @@ -83,13 +83,13 @@ function Recruitment() { 'The System Architecture sub-team integrates various components and optimizes deployment infrastructure for production, focusing on robust design and efficient communication between systems.', } - const extermination = { - overlayId: 'extermination', + const mechatronics = { + overlayId: 'mechatronics', bg: '#1F5200', - emoji: '🌱', - title: 'Extermination', + emoji: '🦾', + title: 'Mechatronics', description: - 'The Extermination sub-team tackles multidisciplinary design challenges to create precision extermination mechanisms. They focus on minimizing environmental impact while safeguarding crops from damage. The team designs mechatronic systems, implementing control algorithms based on real-time sensor data to ensure effective weed elimination. Extermination’s efforts are crucial in enabling AgroBot’s weed management capabilities, improving crop yields, and reducing labor and chemical usage.', + 'The Mechatronics sub-team tackles multidisciplinary design challenges to create precision robotic capabilities. The team designs mechatronic systems, implementing control algorithms based on real-time sensor data to provide a multitude of capabilities for the Agrobot.', } const navigation_embedded_systems = { @@ -143,7 +143,7 @@ function Recruitment() { emoji: '📝', title: 'Agricultural Research', description: - 'The Agricultural Research sub-team provides critical agricultural knowledge and conducts research to support the development of AgroBot, AgroPonics, and AgroPicker, ensuring our projects are informed by the latest advancements in the field.', + 'The Agricultural Research sub-team provides critical agricultural knowledge and conducts research to support the development of AgroBot, and Agroponics, ensuring our projects are informed by the latest advancements in the field.', } const finance = { @@ -181,7 +181,7 @@ function Recruitment() { chassis_powertrain, electrical, system_architecture, - extermination, + mechatronics, navigation_embedded_systems, ], },