import { newLine } from ".."; import ScrollComponent from "../ScrollComponent"; import type { ProjectProps } from "./Project"; import Project from "./Project"; interface ProjectsProps { width: number; height: number; scrollPosition: number; } const Projects = ({ width, height, scrollPosition }: ProjectsProps) => { const projects: ProjectProps[] = [ { title: "Algoforge", description: `A platform for creating and sharing graphical algorithms.${newLine}` + `It was made for the algorithm course at IUT de Bayonne et du Pays Basque.${newLine}` + `It is made entirely in Vanilla JS. No Framework used.${newLine}` + `This app thrives for simplicity, efficiency and performance. ${newLine}` + `${newLine}` + `Built with love over the course of 3 years,${newLine}` + `Algoforge was originally meant to replace an aging software.${newLine}` + `It is now used by students and teachers alike.${newLine}`, technologies: ["js", "Bun", "Docker"], learnMoreLink: "https://github.com/Bing-Chill-inc/Algoforge-main", }, { title: "ssh Portfolio", description: `The portfolio you are currently browsing.${newLine}` + `Built with the Bun javascript runtime.${newLine}` + `This portfolio works by simulating an ssh server,${newLine}` + `on which your terminal connects as a pty.${newLine}` + `Then, the server receives inputs and writes outputs.${newLine}` + `This is a fun way to showcase my projects.${newLine}`, technologies: ["ts", "Bun", "ssh2"], learnMoreLink: "https://forge.feror.fr/feror/Portfolio", }, ]; return ScrollComponent({ width, height, scrollPosition, text: projects.map((project) => Project(project)).join(newLine), }); }; export default Projects;