├── README.md ├── linktree ├── .gitignore ├── eslint.config.js ├── index.css ├── index.html ├── package-lock.json ├── package.json ├── public │ └── favicon.svg ├── src │ ├── App.css │ ├── App.tsx │ ├── assets │ │ ├── cv │ │ │ └── cv-jessie-bentes-en-us.pdf │ │ └── imgs │ │ │ └── jessie.png │ ├── components │ │ ├── CoolBackground │ │ │ └── index.tsx │ │ ├── MainComp │ │ │ ├── index.tsx │ │ │ └── style.ts │ │ ├── MainImg │ │ │ ├── index.tsx │ │ │ └── style.ts │ │ ├── MainLinkButtons │ │ │ ├── index.tsx │ │ │ └── style.ts │ │ ├── MainPresentation │ │ │ ├── index.tsx │ │ │ └── style.ts │ │ └── PresentationButton │ │ │ ├── index.tsx │ │ │ └── style.ts │ ├── main.tsx │ ├── styles │ │ ├── Global.ts │ │ ├── _fonts │ │ │ └── Fira_Code │ │ │ │ ├── FiraCode-VariableFont_wght.ttf │ │ │ │ ├── OFL.txt │ │ │ │ └── static │ │ │ │ ├── FiraCode-Bold.ttf │ │ │ │ ├── FiraCode-Light.ttf │ │ │ │ ├── FiraCode-Medium.ttf │ │ │ │ ├── FiraCode-Regular.ttf │ │ │ │ └── FiraCode-SemiBold.ttf │ │ └── theme.ts │ └── vite-env.d.ts ├── tsconfig.app.json ├── tsconfig.json ├── tsconfig.node.json └── vite.config.ts └── portfolio ├── .eslintrc.cjs ├── .gitignore ├── .hintrc ├── _comps.todo ├── _portfolio.todo ├── _steps.todo ├── index.css ├── index.html ├── package-lock.json ├── package.json ├── src ├── App.tsx ├── assets │ ├── Calendar.svg │ ├── Card.svg │ ├── Discord.svg │ ├── Dots.svg │ ├── Dribble.svg │ ├── Dropdown.svg │ ├── Email.svg │ ├── Figma.svg │ ├── Figures.svg │ ├── Github.svg │ ├── Landmark.svg │ ├── Line.svg │ ├── Linkedin.svg │ ├── Medium.png │ ├── Medium.svg │ ├── PinkLine.svg │ ├── Play.svg │ ├── Quotes.svg │ ├── SquareLarge.svg │ ├── SquareSmall.svg │ ├── Telegram.svg │ ├── Twitter.svg │ ├── cv │ │ ├── cv-jessie-bentes-en-us.pdf │ │ └── cv-jessie-bentes-pt-br.pdf │ ├── data-images │ │ ├── bigger-projects │ │ │ ├── arnia-task-manager.png │ │ │ ├── frutamix-backend.png │ │ │ ├── frutamix-front.png │ │ │ ├── meta-vagas-back.png │ │ │ ├── meta-vagas-front.png │ │ │ ├── shopping-cart.png │ │ │ ├── shopping-store.png │ │ │ ├── wexer-back.png │ │ │ └── wexer-front.png │ │ ├── blog-posts │ │ │ ├── dev-teacher.png │ │ │ ├── fullstack-ux.png │ │ │ ├── soft-skills.png │ │ │ ├── solid.png │ │ │ └── time-travel.png │ │ ├── certificates │ │ │ ├── arnia-fullstack.png │ │ │ ├── design-ux.png │ │ │ ├── empathy.png │ │ │ ├── java-spring-boot-certificate.png │ │ │ ├── typescript.png │ │ │ └── wireframes.png │ │ ├── design-ux │ │ │ ├── competitive-audit-report.png │ │ │ ├── competitive-audit.png │ │ │ ├── lofi-prototype.png │ │ │ ├── persona.png │ │ │ ├── storyboard-closeup.png │ │ │ └── storyboard.png │ │ └── java-projects │ │ │ ├── hotelium.png │ │ │ ├── java-spring-boot.png │ │ │ └── my-food.png │ ├── favicon.svg │ ├── jessie-name-label.png │ ├── jessie1.png │ ├── jessie2.png │ └── logo.png ├── components │ ├── en-us │ │ ├── data │ │ │ ├── _aboutData.ts │ │ │ ├── _contactData.ts │ │ │ ├── _homeData.ts │ │ │ ├── _projectsData.ts │ │ │ ├── biggerProjects.ts │ │ │ ├── blogPosts.ts │ │ │ ├── certificates.ts │ │ │ ├── designUX.ts │ │ │ ├── javaProjects.ts │ │ │ ├── skills.ts │ │ │ └── smallerProjects.ts │ │ └── pages │ │ │ ├── AboutMe │ │ │ └── index.tsx │ │ │ ├── Contacts │ │ │ └── index.tsx │ │ │ ├── Home │ │ │ ├── AboutSection │ │ │ │ └── index.tsx │ │ │ ├── BlogPostsSection │ │ │ │ └── index.tsx │ │ │ ├── CertificatesSection │ │ │ │ └── index.tsx │ │ │ ├── ContactSection │ │ │ │ └── index.tsx │ │ │ ├── HeaderSection │ │ │ │ └── index.tsx │ │ │ ├── IntroSection │ │ │ │ └── index.tsx │ │ │ ├── MainSection │ │ │ │ └── index.tsx │ │ │ ├── ProjectsSection │ │ │ │ └── index.tsx │ │ │ ├── SkillsSection │ │ │ │ └── index.tsx │ │ │ └── index.tsx │ │ │ └── Projects │ │ │ └── index.tsx │ ├── pt-br │ │ ├── data │ │ │ ├── _aboutData.ts │ │ │ ├── _contactData.ts │ │ │ ├── _homeData.ts │ │ │ ├── _projectsData.ts │ │ │ ├── biggerProjects.ts │ │ │ ├── blogPosts.ts │ │ │ ├── certificates.ts │ │ │ ├── designUX.ts │ │ │ ├── javaProjects.ts │ │ │ ├── skills.ts │ │ │ └── smallerProjects.ts │ │ └── pages │ │ │ ├── AboutMe │ │ │ └── index.tsx │ │ │ ├── Contacts │ │ │ └── index.tsx │ │ │ ├── Home │ │ │ ├── AboutSection │ │ │ │ └── index.tsx │ │ │ ├── BlogPostsSection │ │ │ │ └── index.tsx │ │ │ ├── CertificatesSection │ │ │ │ └── index.tsx │ │ │ ├── ContactSection │ │ │ │ └── index.tsx │ │ │ ├── HeaderSection │ │ │ │ └── index.tsx │ │ │ ├── IntroSection │ │ │ │ └── index.tsx │ │ │ ├── MainSection │ │ │ │ └── index.tsx │ │ │ ├── ProjectsSection │ │ │ │ └── index.tsx │ │ │ ├── SkillsSection │ │ │ │ └── index.tsx │ │ │ └── index.tsx │ │ │ └── Projects │ │ │ └── index.tsx │ └── reusable │ │ ├── AllMediaComp.tsx │ │ ├── BigProjectCard.tsx │ │ ├── Decorations.tsx │ │ ├── DotsDecor.tsx │ │ ├── Footer.tsx │ │ ├── GeneralCard.tsx │ │ ├── HeaderHomePage.tsx │ │ ├── HeaderTitle.tsx │ │ ├── LanguagesDropdown.tsx │ │ ├── Logo.tsx │ │ ├── MainButton.tsx │ │ ├── MainImg.tsx │ │ ├── MessageMeCard.tsx │ │ ├── NavBar.tsx │ │ ├── PageContentAlign.tsx │ │ ├── PageContentAlignSecondary.tsx │ │ ├── Quote.tsx │ │ ├── SecondaryPageSection.tsx │ │ ├── SecondaryPageTitle.tsx │ │ ├── SectionHeader.tsx │ │ ├── SkillCard.tsx │ │ ├── SmallProjectCard.tsx │ │ ├── SquareDecor.tsx │ │ ├── TinySideBar.tsx │ │ └── scrollToTop.tsx ├── contexts │ └── LanguageProvider.tsx ├── main.tsx ├── styles │ ├── Global.ts │ ├── ReusableStyles.ts │ ├── _fonts │ │ └── Fira_Code │ │ │ ├── FiraCode-VariableFont_wght.ttf │ │ │ ├── OFL.txt │ │ │ └── static │ │ │ ├── FiraCode-Bold.ttf │ │ │ ├── FiraCode-Light.ttf │ │ │ ├── FiraCode-Medium.ttf │ │ │ ├── FiraCode-Regular.ttf │ │ │ └── FiraCode-SemiBold.ttf │ └── theme.ts └── vite-env.d.ts ├── tsconfig.json ├── tsconfig.node.json ├── vercel.json └── vite.config.ts /README.md: -------------------------------------------------------------------------------- 1 | # My Portfolio & Linktree 🎨🚀🌟 2 | 3 | ## 🔎 **Description** 4 | 5 | This repository contains two projects: my personal portfolio and a Linktree clone. The portfolio showcases my work as a fullstack developer, highlighting my previous jobs (within company privacy limits) and reflecting on my career journey. The Linktree clone provides a consolidated link management solution. 6 | 7 | ## 🔨 **Technologies Used** 8 | 9 | ### Portfolio 10 | 11 | - **React.js/TypeScript**: Frontend library and language 12 | - **Vite**: Build tool for faster development 13 | - **React Router DOM**: For routing and navigation 14 | - **Styled Components**: For styling the application 15 | - **Vercel**: For deployment 16 | 17 | ### Linktree 18 | 19 | - **React.js/TypeScript**: Frontend library and language 20 | - **Vite**: Build tool for faster development 21 | - **Styled Components**: For styling the application 22 | - **Vercel**: For deployment 23 | 24 | ## 📖 **Live Demos** 25 | 26 | - **[Portfolio](https://jessie-bentes.vercel.app/)**: Explore my work and projects. 27 | - **[Linktree](https://jessie-bentes-linktree.vercel.app/)**: Access all my important links in one place. 28 | 29 | _Note: The portfolio and résumés are available in both English and Portuguese._ 30 | 31 | ## 📋 **Task Planning** 32 | 33 | For task planning and tracking, I used the _ToDo+_ extension in VSCode. This tool helps keep track of pending tasks and project progress. 34 | 35 | [Link to the task file](./portfolio/_steps.todo) 36 | 37 | ## 📂 **Repository Structure** 38 | 39 | This repository contains the following directories: 40 | 41 | - `/portfolio`: Contains the code and assets for my personal portfolio. 42 | - `/linktree`: Contains the code and assets for the Linktree clone. 43 | 44 | ## 🙋‍♀️ **Author** 45 | 46 | [Jessie M. Bentes](https://github.com/LadyJessie19) 47 | 48 | ## 📝 **Contributions** 49 | 50 | If you would like to contribute to either project, please fork the repository and submit a pull request. 51 | 52 | ## 🗝️ **License** 53 | 54 | This project is licensed under the [MIT License](https://opensource.org/licenses/MIT). 55 | -------------------------------------------------------------------------------- /linktree/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /linktree/eslint.config.js: -------------------------------------------------------------------------------- 1 | import js from '@eslint/js' 2 | import globals from 'globals' 3 | import reactHooks from 'eslint-plugin-react-hooks' 4 | import reactRefresh from 'eslint-plugin-react-refresh' 5 | import tseslint from 'typescript-eslint' 6 | 7 | export default tseslint.config( 8 | { ignores: ['dist'] }, 9 | { 10 | extends: [js.configs.recommended, ...tseslint.configs.recommended], 11 | files: ['**/*.{ts,tsx}'], 12 | languageOptions: { 13 | ecmaVersion: 2020, 14 | globals: globals.browser, 15 | }, 16 | plugins: { 17 | 'react-hooks': reactHooks, 18 | 'react-refresh': reactRefresh, 19 | }, 20 | rules: { 21 | ...reactHooks.configs.recommended.rules, 22 | 'react-refresh/only-export-components': [ 23 | 'warn', 24 | { allowConstantExport: true }, 25 | ], 26 | }, 27 | }, 28 | ) 29 | -------------------------------------------------------------------------------- /linktree/index.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Fira Code'; 3 | src: url('./src/styles/_fonts/Fira_Code/FiraCode-VariableFont_wght.ttf') format('truetype'); 4 | } -------------------------------------------------------------------------------- /linktree/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Linktree | Jessie Bentes 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /linktree/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "linktree", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "tsc -b && vite build", 9 | "lint": "eslint .", 10 | "preview": "vite preview" 11 | }, 12 | "dependencies": { 13 | "linktree": "file:", 14 | "react": "^18.3.1", 15 | "react-animations": "^1.0.0", 16 | "react-dom": "^18.3.1", 17 | "styled-components": "^6.1.13" 18 | }, 19 | "devDependencies": { 20 | "@eslint/js": "^9.9.0", 21 | "@types/react": "^18.3.3", 22 | "@types/react-animations": "^1.0.3", 23 | "@types/react-dom": "^18.3.0", 24 | "@vitejs/plugin-react": "^4.3.1", 25 | "eslint": "^9.9.0", 26 | "eslint-plugin-react-hooks": "^5.1.0-rc.0", 27 | "eslint-plugin-react-refresh": "^0.4.9", 28 | "globals": "^15.9.0", 29 | "typescript": "^5.5.3", 30 | "typescript-eslint": "^8.0.1", 31 | "vite": "^5.4.1" 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /linktree/public/favicon.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 10 | 12 | 14 | 16 | 20 | 26 | 32 | 33 | 35 | 37 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /linktree/src/App.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Fira Code'; 3 | src: url('./src/styles/_fonts/Fira_Code/FiraCode-VariableFont_wght.ttf') format('truetype'); 4 | } 5 | 6 | :root { 7 | --Background-grey: #1E1E1E; 8 | --Cherry-pink: #FF88D1; 9 | --Candy-green: #98C379; 10 | --Hover-pink: #FF88D133; 11 | --Light-grey: #ABB2BF; 12 | --Original-pink: #C778DD; 13 | --Soft-blue: #62AEEF; 14 | --White-screen: #faf9f9; 15 | --Usual-black: #000; 16 | 17 | --Main-font: 'Fira Code'; 18 | } 19 | 20 | body { 21 | background-color: #000; 22 | font-family: var(--Main-font); 23 | overflow-x: hidden; 24 | } 25 | 26 | .background-body { 27 | display: flex; 28 | justify-content: center; 29 | align-items: center; 30 | background: var(--Usual-black); 31 | width: 100vw; 32 | } 33 | 34 | section { 35 | position: absolute; 36 | width: 100vw; 37 | display: flex; 38 | justify-content: center; 39 | align-items: center; 40 | gap: 2px; 41 | flex-wrap: wrap; 42 | overflow: hidden; 43 | } 44 | 45 | section::before { 46 | content: ''; 47 | position: absolute; 48 | width: 100%; 49 | height: 100%; 50 | background: linear-gradient(#000, #2b2a2a, #000); 51 | animation: animate 5s linear infinite; 52 | } 53 | 54 | @keyframes animate { 55 | 0% { 56 | transform: translateY(-100%); 57 | } 58 | 59 | 100% { 60 | transform: translateY(100%); 61 | } 62 | } 63 | 64 | section span { 65 | position: relative; 66 | display: block; 67 | width: calc(6.25vw - 2px); 68 | height: calc(6.25vw - 2px); 69 | background: var(--Background-grey); 70 | z-index: 2; 71 | } 72 | 73 | @media screen and (max-width: 600px) { 74 | section { 75 | max-height: 145vh; 76 | } 77 | } 78 | 79 | @media screen and (min-width: 601px) and (max-width: 768px) { 80 | section { 81 | height: 125vh; 82 | } 83 | } 84 | 85 | @media screen and (min-width: 769px) { 86 | section { 87 | max-height: 125vh; 88 | } 89 | } 90 | 91 | @media (max-width: 900px) { 92 | section span { 93 | width: calc(10vw - 2px); 94 | height: calc(10vw - 2px); 95 | } 96 | } 97 | 98 | @media (max-width: 600px) { 99 | section span { 100 | width: calc(20vw - 2px); 101 | height: calc(20vw - 2px); 102 | } 103 | } -------------------------------------------------------------------------------- /linktree/src/App.tsx: -------------------------------------------------------------------------------- 1 | import { ThemeProvider } from "styled-components"; 2 | import { theme } from "./styles/theme"; 3 | import GlobalStyle from "./styles/Global"; 4 | import MainComp from "./components/MainComp"; 5 | import CoolBackground from "./components/CoolBackground"; 6 | import "./App.css"; 7 | 8 | function App() { 9 | return ( 10 | <> 11 | 12 | 13 | 14 | 15 | 16 | 17 | ); 18 | } 19 | 20 | export default App; 21 | -------------------------------------------------------------------------------- /linktree/src/assets/cv/cv-jessie-bentes-en-us.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/linktree/src/assets/cv/cv-jessie-bentes-en-us.pdf -------------------------------------------------------------------------------- /linktree/src/assets/imgs/jessie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/linktree/src/assets/imgs/jessie.png -------------------------------------------------------------------------------- /linktree/src/components/CoolBackground/index.tsx: -------------------------------------------------------------------------------- 1 | import { useEffect, useState } from "react"; 2 | const CoolBackground = () => { 3 | const [spanCount, setSpanCount] = useState(0); 4 | 5 | useEffect(() => { 6 | const updateSpanCount = () => { 7 | const spanSize = 8 | window.innerWidth <= 600 ? 16 : window.innerWidth <= 900 ? 10 : 6.25; 9 | const viewportWidth = window.innerWidth; 10 | const viewportHeight = window.innerHeight; 11 | 12 | const spanWidth = viewportWidth * (spanSize / 100); 13 | const spanHeight = viewportHeight * (spanSize / 100); 14 | 15 | const spansPerRow = Math.ceil(viewportWidth / spanWidth); 16 | const rows = Math.ceil(viewportHeight / spanHeight); 17 | 18 | setSpanCount(spansPerRow * rows + 30); 19 | }; 20 | 21 | updateSpanCount(); 22 | window.addEventListener("resize", updateSpanCount); 23 | 24 | return () => window.removeEventListener("resize", updateSpanCount); 25 | }, []); 26 | console.log("spaceCount", spanCount); 27 | return ( 28 |
29 | {Array.from({ length: spanCount }, (_, i) => ( 30 | 31 | ))} 32 |
33 | ); 34 | }; 35 | 36 | export default CoolBackground; 37 | -------------------------------------------------------------------------------- /linktree/src/components/MainComp/index.tsx: -------------------------------------------------------------------------------- 1 | import MainImg from "../MainImg"; 2 | import MainLinkButtons from "../MainLinkButtons"; 3 | import MainPresentation from "../MainPresentation"; 4 | import { StyledMain } from "./style"; 5 | 6 | const MainComp = () => { 7 | return ( 8 | <> 9 | 10 | 11 | 12 | 13 | 14 | 15 | ); 16 | }; 17 | 18 | export default MainComp; 19 | -------------------------------------------------------------------------------- /linktree/src/components/MainComp/style.ts: -------------------------------------------------------------------------------- 1 | import styled from "styled-components"; 2 | 3 | const StyledMain = styled.main` 4 | z-index: 10; 5 | position: absolute; 6 | width: 100%; 7 | top: 0; 8 | display: flex; 9 | flex-direction: column; 10 | justify-content: center; 11 | align-items: center; 12 | padding: 2rem; 13 | gap: 3.5rem; 14 | text-align: center; 15 | `; 16 | 17 | export { StyledMain }; 18 | -------------------------------------------------------------------------------- /linktree/src/components/MainImg/index.tsx: -------------------------------------------------------------------------------- 1 | import Jessica from "../../assets/imgs/jessie.png"; 2 | import { StyledLabel, StyledMainImg } from "./style"; 3 | 4 | const MainImg = () => { 5 | return ( 6 | <> 7 | 8 | Jessica 9 | Jessica M. Bentes 10 | 11 | 12 | ); 13 | }; 14 | 15 | export default MainImg; 16 | -------------------------------------------------------------------------------- /linktree/src/components/MainImg/style.ts: -------------------------------------------------------------------------------- 1 | import styled, { keyframes } from "styled-components"; 2 | import { fadeIn, merge, slideInLeft } from "react-animations"; 3 | 4 | const slideLeftElements = merge(slideInLeft, fadeIn); 5 | const slideLeftAnimation = keyframes`${slideLeftElements}`; 6 | 7 | export const StyledMainImg = styled.div` 8 | width: 100%; 9 | height: 100%; 10 | display: flex; 11 | justify-content: center; 12 | align-items: center; 13 | position: relative; 14 | animation: 1s ${slideLeftAnimation}; 15 | `; 16 | 17 | export const StyledLabel = styled.div` 18 | position: absolute; 19 | background-color: #ff88d1; 20 | color: var(--#1E1E1E); 21 | padding: 10px; 22 | border-radius: 5px; 23 | font-size: 1.5rem; 24 | font-weight: bold; 25 | top: 170px; 26 | margin: 0 auto; 27 | z-index: 1; 28 | `; 29 | -------------------------------------------------------------------------------- /linktree/src/components/MainLinkButtons/index.tsx: -------------------------------------------------------------------------------- 1 | import { useState } from "react"; 2 | import { 3 | StyledMainLinkButtons, 4 | StyledLinkButton, 5 | StyledTooltip, 6 | } from "./style"; 7 | 8 | const MainLinkButtons = () => { 9 | const [isTooltipVisible, setTooltipVisible] = useState(false); 10 | 11 | return ( 12 | <> 13 | 14 | 18 | 19 | Connect with Me on LinkedIn 20 | 21 | 22 | 26 | 27 | Explore My Projects on GitHub 28 | 29 | 30 | 34 | 35 | Read My Posts on Medium 36 | 37 | 38 | 42 | 43 | Check Out My Instagram 44 | 45 | 46 | 50 | setTooltipVisible(true)} 53 | onMouseLeave={() => setTooltipVisible(false)}> 54 | Chat with Me on Discord 55 | 56 | 57 | My nickname is{" "} 58 | 59 | ladyjessie 60 | 61 | . 😉 62 | 63 | 64 | 65 | 66 | ); 67 | }; 68 | 69 | export default MainLinkButtons; 70 | -------------------------------------------------------------------------------- /linktree/src/components/MainLinkButtons/style.ts: -------------------------------------------------------------------------------- 1 | import { fadeIn } from "react-animations"; 2 | import styled, { keyframes } from "styled-components"; 3 | 4 | const fadeInAnimation = keyframes`${fadeIn}`; 5 | 6 | // @keyframes shake-animation { 7 | // 0% { transform:translate(0,0) } 8 | // 1.78571% { transform:translate(5px,0) } 9 | // 3.57143% { transform:translate(0,0) } 10 | // 5.35714% { transform:translate(5px,0) } 11 | // 7.14286% { transform:translate(0,0) } 12 | // 8.92857% { transform:translate(5px,0) } 13 | // 10.71429% { transform:translate(0,0) } 14 | // 100% { transform:translate(0,0) } 15 | // } 16 | 17 | interface TooltipProps { 18 | visible: boolean; 19 | } 20 | 21 | export const StyledMainLinkButtons = styled.div` 22 | display: flex; 23 | flex-direction: column; 24 | align-items: center; 25 | justify-content: center; 26 | width: 100%; 27 | height: 100%; 28 | gap: 20px; 29 | a { 30 | width: 70%; 31 | } 32 | `; 33 | 34 | export const StyledLinkButton = styled.button` 35 | background-color: ${({ theme }) => theme.colors.BackgroundGrey}; 36 | color: ${({ theme }) => theme.colors.WhiteScreen}; 37 | border: 2px solid ${({ theme }) => theme.colors.CherryPink}; 38 | padding: 7px 20px; 39 | width: 100%; 40 | font-size: 16px; 41 | font-family: "Fira Code"; 42 | cursor: pointer; 43 | animation: ${fadeInAnimation} 1s ease-in-out 1; 44 | 45 | &:hover { 46 | // font-weight: bold; 47 | } 48 | 49 | &.linkedin:hover { 50 | color: ${({ theme }) => theme.colors.WhiteScreen}; 51 | background-color: ${({ theme }) => theme.colors.Linkedin}; 52 | } 53 | 54 | &.github:hover { 55 | color: ${({ theme }) => theme.colors.WhiteScreen}; 56 | background-color: ${({ theme }) => theme.colors.Github}; 57 | } 58 | 59 | &.medium:hover { 60 | color: ${({ theme }) => theme.colors.WhiteScreen}; 61 | background-color: ${({ theme }) => theme.colors.Medium}; 62 | } 63 | 64 | &.instagram:hover { 65 | color: ${({ theme }) => theme.colors.WhiteScreen}; 66 | background-color: ${({ theme }) => theme.colors.Instagram}; 67 | } 68 | 69 | &.discord:hover { 70 | color: ${({ theme }) => theme.colors.WhiteScreen}; 71 | background-color: ${({ theme }) => theme.colors.Discord}; 72 | } 73 | `; 74 | 75 | export const StyledTooltip = styled.div` 76 | position: absolute; 77 | top: 95.5%; 78 | left: 50%; 79 | transform: translateX(-50%); 80 | background-color: ${({ theme }) => theme.colors.HoverPink}; 81 | color: ${({ theme }) => theme.colors.CherryPink}; 82 | padding: 8px; 83 | border-radius: 5px; 84 | margin-top: 8px; 85 | white-space: nowrap; 86 | box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1); 87 | opacity: ${({ visible }: any) => (visible ? 1 : 0)}; 88 | visibility: ${({ visible }: any) => (visible ? "visible" : "hidden")}; 89 | transition: opacity 0.3s ease, visibility 0.3s ease; 90 | `; 91 | -------------------------------------------------------------------------------- /linktree/src/components/MainPresentation/index.tsx: -------------------------------------------------------------------------------- 1 | import { ButtonsPresentation, StyledMainPresentation } from "./style"; 2 | import cv from "../../assets/cv/cv-jessie-bentes-en-us.pdf"; 3 | import { StyledMainButton } from "../PresentationButton/style"; 4 | 5 | const url = "https://jessie-bentes.vercel.app/"; 6 | 7 | const MainPresentation = () => { 8 | return ( 9 | <> 10 | 11 |

12 | Hi! I'm a Fullstack Developer & UX Designer 13 |

14 | 15 | 16 | Email Me 17 | 18 | 19 | 20 | View My CV 21 | 22 | 23 | 24 | View My Portfolio 25 | 26 | 27 |
28 | 29 | ); 30 | }; 31 | 32 | export default MainPresentation; 33 | -------------------------------------------------------------------------------- /linktree/src/components/MainPresentation/style.ts: -------------------------------------------------------------------------------- 1 | import styled from "styled-components"; 2 | 3 | export const StyledMainPresentation = styled.div` 4 | width: 100%; 5 | height: 100%; 6 | display: flex; 7 | flex-direction: column; 8 | gap: 1rem; 9 | margin-top: 1rem; 10 | color: ${({ theme }) => theme.colors.WhiteScreen}; 11 | h1 { 12 | font-size: 23px; 13 | text-align: center; 14 | } 15 | span { 16 | color: ${({ theme }) => theme.colors.CherryPink}; 17 | } 18 | p { 19 | max-width: 90%; 20 | } 21 | `; 22 | 23 | export const ButtonsPresentation = styled.div` 24 | display: flex; 25 | justify-content: center; 26 | align-items: center; 27 | gap: 1rem; 28 | flex-wrap: wrap; 29 | `; 30 | -------------------------------------------------------------------------------- /linktree/src/components/PresentationButton/index.tsx: -------------------------------------------------------------------------------- 1 | import { StyledMainButton } from "./style"; 2 | 3 | interface IProps { 4 | text: string; 5 | link?: string; 6 | hasDownload?: boolean; 7 | } 8 | 9 | const PresentationButton = ({ text, link, hasDownload }: IProps) => { 10 | return ( 11 | <> 12 | {hasDownload ? ( 13 | 14 | 15 | {text} 16 | 17 | 18 | ) : ( 19 | 20 | 21 | {text} 22 | 23 | 24 | )} 25 | 26 | ); 27 | }; 28 | 29 | export default PresentationButton; 30 | -------------------------------------------------------------------------------- /linktree/src/components/PresentationButton/style.ts: -------------------------------------------------------------------------------- 1 | import styled from "styled-components"; 2 | 3 | export const StyledMainButton = styled.button` 4 | background-color: ${({ theme }) => theme.colors.BackgroundGrey}; 5 | color: ${({ theme }) => theme.colors.WhiteScreen}; 6 | border: 2px solid ${({ theme }) => theme.colors.CherryPink}; 7 | padding: 7px 20px; 8 | font-size: 16px; 9 | font-family: "Fira Code"; 10 | cursor: pointer; 11 | 12 | &:hover { 13 | background-color: ${({ theme }) => theme.colors.HoverPink}; 14 | } 15 | `; 16 | -------------------------------------------------------------------------------- /linktree/src/main.tsx: -------------------------------------------------------------------------------- 1 | import { StrictMode } from "react"; 2 | import { createRoot } from "react-dom/client"; 3 | import App from "./App.tsx"; 4 | 5 | createRoot(document.getElementById("root")!).render( 6 | 7 | 8 | 9 | ); 10 | -------------------------------------------------------------------------------- /linktree/src/styles/Global.ts: -------------------------------------------------------------------------------- 1 | import { createGlobalStyle } from "styled-components"; 2 | 3 | const GlobalStyle = createGlobalStyle` 4 | :root { 5 | --Background-grey: #1E1E1E; 6 | --Cherry-pink: #FF88D1; 7 | --Candy-green: #98C379; 8 | --Hover-pink: #FF88D133; 9 | --Light-grey: #ABB2BF; 10 | --Original-pink: #C778DD; 11 | --Soft-blue: #62AEEF; 12 | --White-screen: #faf9f9; 13 | 14 | --Main-font: 'Fira Code'; 15 | } 16 | 17 | * { 18 | margin: 0; 19 | padding: 0; 20 | box-sizing: border-box; 21 | } 22 | 23 | .d-flex{ 24 | display: flex; 25 | } 26 | 27 | .g-1{ 28 | gap: 1rem; 29 | } 30 | 31 | ::-webkit-scrollbar { 32 | width: 18px; 33 | } 34 | 35 | ::-webkit-scrollbar-track { 36 | background: var(--Background-grey); 37 | } 38 | 39 | ::-webkit-scrollbar-thumb { 40 | background: ${({ theme }) => theme.colors.CherryPink}; 41 | border-radius: 6px; 42 | } 43 | 44 | ::-webkit-scrollbar-thumb:hover { 45 | background: #555; 46 | } 47 | `; 48 | 49 | export default GlobalStyle; 50 | -------------------------------------------------------------------------------- /linktree/src/styles/_fonts/Fira_Code/FiraCode-VariableFont_wght.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/linktree/src/styles/_fonts/Fira_Code/FiraCode-VariableFont_wght.ttf -------------------------------------------------------------------------------- /linktree/src/styles/_fonts/Fira_Code/OFL.txt: -------------------------------------------------------------------------------- 1 | Copyright 2014-2020 The Fira Code Project Authors (https://github.com/tonsky/FiraCode) 2 | 3 | This Font Software is licensed under the SIL Open Font License, Version 1.1. 4 | This license is copied below, and is also available with a FAQ at: 5 | https://openfontlicense.org 6 | 7 | 8 | ----------------------------------------------------------- 9 | SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 10 | ----------------------------------------------------------- 11 | 12 | PREAMBLE 13 | The goals of the Open Font License (OFL) are to stimulate worldwide 14 | development of collaborative font projects, to support the font creation 15 | efforts of academic and linguistic communities, and to provide a free and 16 | open framework in which fonts may be shared and improved in partnership 17 | with others. 18 | 19 | The OFL allows the licensed fonts to be used, studied, modified and 20 | redistributed freely as long as they are not sold by themselves. The 21 | fonts, including any derivative works, can be bundled, embedded, 22 | redistributed and/or sold with any software provided that any reserved 23 | names are not used by derivative works. The fonts and derivatives, 24 | however, cannot be released under any other type of license. The 25 | requirement for fonts to remain under this license does not apply 26 | to any document created using the fonts or their derivatives. 27 | 28 | DEFINITIONS 29 | "Font Software" refers to the set of files released by the Copyright 30 | Holder(s) under this license and clearly marked as such. This may 31 | include source files, build scripts and documentation. 32 | 33 | "Reserved Font Name" refers to any names specified as such after the 34 | copyright statement(s). 35 | 36 | "Original Version" refers to the collection of Font Software components as 37 | distributed by the Copyright Holder(s). 38 | 39 | "Modified Version" refers to any derivative made by adding to, deleting, 40 | or substituting -- in part or in whole -- any of the components of the 41 | Original Version, by changing formats or by porting the Font Software to a 42 | new environment. 43 | 44 | "Author" refers to any designer, engineer, programmer, technical 45 | writer or other person who contributed to the Font Software. 46 | 47 | PERMISSION & CONDITIONS 48 | Permission is hereby granted, free of charge, to any person obtaining 49 | a copy of the Font Software, to use, study, copy, merge, embed, modify, 50 | redistribute, and sell modified and unmodified copies of the Font 51 | Software, subject to the following conditions: 52 | 53 | 1) Neither the Font Software nor any of its individual components, 54 | in Original or Modified Versions, may be sold by itself. 55 | 56 | 2) Original or Modified Versions of the Font Software may be bundled, 57 | redistributed and/or sold with any software, provided that each copy 58 | contains the above copyright notice and this license. These can be 59 | included either as stand-alone text files, human-readable headers or 60 | in the appropriate machine-readable metadata fields within text or 61 | binary files as long as those fields can be easily viewed by the user. 62 | 63 | 3) No Modified Version of the Font Software may use the Reserved Font 64 | Name(s) unless explicit written permission is granted by the corresponding 65 | Copyright Holder. This restriction only applies to the primary font name as 66 | presented to the users. 67 | 68 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font 69 | Software shall not be used to promote, endorse or advertise any 70 | Modified Version, except to acknowledge the contribution(s) of the 71 | Copyright Holder(s) and the Author(s) or with their explicit written 72 | permission. 73 | 74 | 5) The Font Software, modified or unmodified, in part or in whole, 75 | must be distributed entirely under this license, and must not be 76 | distributed under any other license. The requirement for fonts to 77 | remain under this license does not apply to any document created 78 | using the Font Software. 79 | 80 | TERMINATION 81 | This license becomes null and void if any of the above conditions are 82 | not met. 83 | 84 | DISCLAIMER 85 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 86 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 87 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 88 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE 89 | COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 90 | INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 91 | DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 92 | FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM 93 | OTHER DEALINGS IN THE FONT SOFTWARE. 94 | -------------------------------------------------------------------------------- /linktree/src/styles/_fonts/Fira_Code/static/FiraCode-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/linktree/src/styles/_fonts/Fira_Code/static/FiraCode-Bold.ttf -------------------------------------------------------------------------------- /linktree/src/styles/_fonts/Fira_Code/static/FiraCode-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/linktree/src/styles/_fonts/Fira_Code/static/FiraCode-Light.ttf -------------------------------------------------------------------------------- /linktree/src/styles/_fonts/Fira_Code/static/FiraCode-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/linktree/src/styles/_fonts/Fira_Code/static/FiraCode-Medium.ttf -------------------------------------------------------------------------------- /linktree/src/styles/_fonts/Fira_Code/static/FiraCode-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/linktree/src/styles/_fonts/Fira_Code/static/FiraCode-Regular.ttf -------------------------------------------------------------------------------- /linktree/src/styles/_fonts/Fira_Code/static/FiraCode-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/linktree/src/styles/_fonts/Fira_Code/static/FiraCode-SemiBold.ttf -------------------------------------------------------------------------------- /linktree/src/styles/theme.ts: -------------------------------------------------------------------------------- 1 | export const theme = { 2 | colors: { 3 | BackgroundGrey: "#1E1E1E", 4 | CherryPink: "#FF88D1", 5 | CandyGreen: "#98C379", 6 | HoverPink: "#FF88D133", 7 | LightGrey: "#ABB2BF", 8 | OriginalPink: "#C778DD", 9 | SoftBlue: "#62AEEF", 10 | WhiteScreen: "#faf9f9", 11 | Linkedin: "#007EBB", 12 | Github: "#0f0d0e", 13 | Instagram: "#DA2F7F", 14 | Medium: "#000000", 15 | Discord: "#5865F2", 16 | }, 17 | fonts: { 18 | MainFont: "Fira Code", 19 | }, 20 | }; 21 | -------------------------------------------------------------------------------- /linktree/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /linktree/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "useDefineForClassFields": true, 5 | "lib": ["ES2020", "DOM", "DOM.Iterable"], 6 | "module": "ESNext", 7 | "skipLibCheck": true, 8 | 9 | /* Bundler mode */ 10 | "moduleResolution": "bundler", 11 | "allowImportingTsExtensions": true, 12 | "isolatedModules": true, 13 | "moduleDetection": "force", 14 | "noEmit": true, 15 | "jsx": "react-jsx", 16 | 17 | /* Linting */ 18 | "strict": true, 19 | "noUnusedLocals": true, 20 | "noUnusedParameters": true, 21 | "noFallthroughCasesInSwitch": true 22 | }, 23 | "include": ["src"] 24 | } 25 | -------------------------------------------------------------------------------- /linktree/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": [], 3 | "references": [ 4 | { "path": "./tsconfig.app.json" }, 5 | { "path": "./tsconfig.node.json" } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /linktree/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2022", 4 | "lib": ["ES2023"], 5 | "module": "ESNext", 6 | "skipLibCheck": true, 7 | 8 | /* Bundler mode */ 9 | "moduleResolution": "bundler", 10 | "allowImportingTsExtensions": true, 11 | "isolatedModules": true, 12 | "moduleDetection": "force", 13 | "noEmit": true, 14 | 15 | /* Linting */ 16 | "strict": true, 17 | "noUnusedLocals": true, 18 | "noUnusedParameters": true, 19 | "noFallthroughCasesInSwitch": true 20 | }, 21 | "include": ["vite.config.ts"] 22 | } 23 | -------------------------------------------------------------------------------- /linktree/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [react()], 7 | }) 8 | -------------------------------------------------------------------------------- /portfolio/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { browser: true, es2020: true }, 3 | extends: [ 4 | 'eslint:recommended', 5 | 'plugin:@typescript-eslint/recommended', 6 | 'plugin:react-hooks/recommended', 7 | ], 8 | parser: '@typescript-eslint/parser', 9 | parserOptions: { ecmaVersion: 'latest', sourceType: 'module' }, 10 | plugins: ['react-refresh'], 11 | rules: { 12 | 'react-refresh/only-export-components': 'warn', 13 | }, 14 | } 15 | -------------------------------------------------------------------------------- /portfolio/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /portfolio/.hintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "development" 4 | ], 5 | "hints": { 6 | "disown-opener": "off" 7 | } 8 | } -------------------------------------------------------------------------------- /portfolio/_comps.todo: -------------------------------------------------------------------------------- 1 | Home: 2 | Intro: 3 | ✔ Navbar; @done(24-01-24 18:47) 4 | ✔ Tiny side bar social media; @done(24-01-24 18:47) 5 | ✔ Introdution; @done(24-01-24 20:12) 6 | ✔ Cck Photo + status; @done(24-01-24 20:12) 7 | ✔ Powerful quote; @done(24-01-24 20:12) 8 | Projects: 9 | ✔ Attention! Show 3 projects. @done(24-01-24 20:12) 10 | ✔ project-card; @done(24-01-24 20:12) 11 | ✔ project info obj; @done(24-01-24 20:12) 12 | ✔ projects.map; @done(24-01-24 20:12) 13 | ✔ Projects Programming; @done(24-01-26 20:00) 14 | ✔ Projects UX; @done(24-01-26 20:00) 15 | Skills: 16 | ✔ Draws; @done(24-01-24 20:13) 17 | ✔ Skills cards; @done(24-01-24 20:13) 18 | ✔ Attention! The display is shorty; @done(24-01-24 20:13) 19 | Certificates: 20 | ✔ Atention! I'm adding two sections: Certificates and BlogPosts. @done(24-01-24 20:13) 21 | ✔ Is the very same of projects, both Home section and single page. @done(24-01-26 20:00) 22 | ✔ Attention! The display is shorty; @done(24-01-26 20:00) 23 | BlogPosts: 24 | ✔ Atention! I'm adding two sections: Certificates and BlogPosts. @done(24-01-24 20:13) 25 | ✔ Is the very same of projects, both Home section and single page. @done(24-01-26 20:00) 26 | ✔ Attention! The display is shorty; @done(24-01-26 20:00) 27 | About-me: 28 | ✔ About me text; @done(24-01-26 20:00) 29 | ✔ My Potho; @done(24-01-26 20:00) 30 | Contacts: 31 | ✔ Tiny text to contact; @done(24-01-26 20:00) 32 | ✔ Message me comp; @done(24-01-26 20:00) 33 | Footer: 34 | ✔ Logo; @done(24-01-24 20:14) 35 | ✔ Email; @done(24-01-24 20:14) 36 | ✔ Occupation; @done(24-01-24 20:14) 37 | ✔ Social Media Logos; @done(24-01-24 20:14) 38 | ✔ Copyrigths; @done(24-01-24 20:14) 39 | Works: 40 | ✔ Reuse home navbar comp; @done(24-01-26 20:00) 41 | ✔ Reuse home tinySideBar comp; @done(24-01-26 20:00) 42 | ✔ Create header-title comp; @done(24-01-26 20:00) 43 | ✔ Attention! Show all projects. @done(24-01-26 20:00) 44 | ✔ Reuse projects home comp; @done(24-01-26 20:00) 45 | ✔ smaller projects comp: @done(24-01-26 20:00) 46 | ✔ smaller project card; @done(24-01-26 20:00) 47 | ✔ Reuse Home comp Footer; @done(24-01-26 20:00) 48 | About-me: 49 | ✔ Reuse home navbar comp; @done(24-01-26 20:00) 50 | ✔ Reuse home tinySideBar comp; @done(24-01-26 20:00) 51 | ✔ Reuse header-title works comp; @done(24-01-26 20:00) 52 | ✔ Resuse About me home comp; @done(24-01-26 20:00) 53 | ✔ Resuse Skills home comp; @done(24-01-26 20:00) 54 | ✔ Attention! The display is lengthy; @done(24-01-26 20:01) 55 | ✔ My fun facts comp; @done(24-01-26 20:01) 56 | ✔ Resuse Home comp Footer; @done(24-01-26 20:01) 57 | Contacts: 58 | ✔ Reuse home navbar comp; @done(24-01-26 20:01) 59 | ✔ Reuse home tinySideBar comp; @done(24-01-26 20:01) 60 | ✔ Reuse header-title works comp; @done(24-01-26 20:01) 61 | ✔ Reuse contact-me home comp; @done(24-01-26 20:01) 62 | ✔ All media comp - Social Medias: @done(24-01-26 20:01) 63 | ✔ Email; @done(24-01-26 20:01) 64 | ✔ Discord; @done(24-01-26 20:01) 65 | ✔ Slack; @done(24-01-26 20:01) 66 | ✔ LinkedIn; @done(24-01-26 20:01) 67 | ✔ Medium; @done(24-01-26 20:01) 68 | ✔ Instagram; @done(24-01-26 20:01) 69 | ✔ Behance; @done(24-01-26 20:01) 70 | ✔ Github; @done(24-01-26 20:01) 71 | ✔ Twitter; @done(24-01-26 20:01) 72 | ✔ Reuse footer home comp; @done(24-01-26 20:01) 73 | 74 | Responsivity: 75 | Translation: 76 | -------------------------------------------------------------------------------- /portfolio/_portfolio.todo: -------------------------------------------------------------------------------- 1 | Projects: 2 | ✔ Arnia_Task_Manager @done(24-02-01 02:37) 3 | ✔ Fullstack_KanbanLite @done(24-02-01 02:37) 4 | ✔ Backend_KanbanLite @done(24-02-01 02:37) 5 | ✔ Frontend_KanbanLite @done(24-02-01 02:37) 6 | ✔ Hortifruti_Ecommerce @done(24-02-01 02:37) 7 | ✔ Shopping_E-commerce @done(24-02-01 02:37) 8 | ✔ PictureGram_Social_Media @done(24-02-01 02:37) 9 | ✔ ReHT_Table_Generator @done(24-02-01 02:37) 10 | ✔ String-Format-JS-CSharp @done(24-02-01 02:37) 11 | ✔ wexerBackend @done(24-02-01 02:37) 12 | ✔ wexerFrontend @done(24-02-01 02:37) 13 | 14 | Main Projects: 15 | Follow the numbers order 16 | 1.Arnia_Task_Manager: 17 | ✔ Markup Description: @done(24-02-01 02:37) 18 | ✔ This project is done? @done(24-02-01 02:37) 19 | Notes: 20 | ✔ My best full project @done(24-02-01 02:37) 21 | 22 | 2.ReHT_Table_Generator: 23 | ✔ Markup Description: @done(24-02-01 02:37) 24 | ✔ This project is done? @done(24-02-01 02:37) 25 | Notes: 26 | ✔ Organizar os arquivos @done(24-02-01 02:37) 27 | ✔ Atualizar o manual @done(24-02-01 02:37) 28 | 29 | 3.PictureGram_Social_Media: 30 | ✔ Markup Description: @done(24-02-01 02:37) 31 | ✔ This project is done? @done(24-02-01 02:37) 32 | ✔ This project hasn't started yet? @done(23-06-29 05:45) 33 | Notes: 34 | ✔ Preciso fazer projeto com Matheus Battisti @done(24-02-01 02:38) 35 | 36 | 4.wexerBackend: 37 | ✔ Markup Description: @done(24-02-01 02:38) 38 | ✔ This project is done? @done(24-02-01 02:38) 39 | Notes: 40 | ✔ Vou trabalhar nisso durante o mês de julho @done(24-02-01 02:38) 41 | The projects bellow can be done after 42 | wexerFrontend: 43 | ✔ Markup Description: @done(24-02-01 02:38) 44 | ✔ This project is done? @done(24-02-01 02:38) 45 | Notes: 46 | ✔ ...Não têm choro! @done(24-02-01 02:38) 47 | 48 | String-Format-JS-CSharp: 49 | ✔ Markup Description: @done(24-02-01 02:38) 50 | ✔ This project is done? @done(24-02-01 02:38) 51 | Notes: 52 | ✔ Precisa de bastantes ajustes @done(24-02-01 02:38) 53 | 54 | Fullstack_KanbanLite: 55 | ✔ Markup Description: @done(24-02-01 02:38) 56 | ✔ This project is done? @done(24-02-01 02:38) 57 | ✔ This project hasn't started yet? @done(23-06-29 05:45) 58 | Notes: 59 | ✔ Esse pode ser bem o último projeto a ser feito @done(24-02-01 02:38) 60 | ✔ @done(24-02-01 02:38) 61 | 62 | Academic Projects: 63 | Backend_KanbanLite: 64 | ✔ Markup Description: @done(24-02-01 02:38) 65 | ✔ This project is done? @done(24-02-01 02:38) 66 | Notes: 67 | ✔ Continuar o exercício do Victor @done(24-02-01 02:38) 68 | 69 | Frontend_KanbanLite: 70 | ✔ Markup Description: @done(24-02-01 02:38) 71 | ✔ This project is done? @done(24-02-01 02:38) 72 | Notes: 73 | ✔ Falta as funções de editar e deletar nos cards @done(24-02-01 02:38) 74 | ✔ Melhorar o layout @done(24-02-01 02:38) 75 | 76 | Hortifruti_Ecommerce: 77 | ✔ Markup Description: @done(24-02-01 02:38) 78 | ✔ This project is done? @done(24-02-01 02:38) 79 | Notes: 80 | ✔ Colocar uma ação no botão "fechar carrinho" @done(24-02-01 02:38) 81 | 82 | Shopping_E-commerce: 83 | ✔ Markup Description: @done(24-02-01 02:38) 84 | ✔ This project is done? @done(24-02-01 02:38) 85 | Notes: 86 | ✔ Arrumação, mas bem básica mesmo @done(24-02-01 02:38) 87 | ✔ remover o alert do finalizar compra @done(24-02-01 02:38) 88 | ✔ @done(24-02-01 02:38) -------------------------------------------------------------------------------- /portfolio/index.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Fira Code'; 3 | src: url('./src/styles/_fonts/Fira_Code/FiraCode-VariableFont_wght.ttf') format('truetype'); 4 | } -------------------------------------------------------------------------------- /portfolio/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Portfolio - Jessie M. Bentes 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /portfolio/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "portfolio", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "tsc && vite build", 9 | "lint": "eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0", 10 | "preview": "vite preview" 11 | }, 12 | "dependencies": { 13 | "portfolio": "file:", 14 | "react": "^18.2.0", 15 | "react-animations": "^1.0.0", 16 | "react-dom": "^18.2.0" 17 | }, 18 | "devDependencies": { 19 | "@types/react": "^18.2.20", 20 | "@types/react-animations": "^1.0.3", 21 | "@types/react-dom": "^18.0.11", 22 | "@typescript-eslint/eslint-plugin": "^5.59.0", 23 | "@typescript-eslint/parser": "^5.59.0", 24 | "@vitejs/plugin-react": "^4.0.0", 25 | "eslint": "^8.38.0", 26 | "eslint-plugin-react-hooks": "^4.6.0", 27 | "eslint-plugin-react-refresh": "^0.3.4", 28 | "react-router-dom": "^6.15.0", 29 | "styled-components": "^6.0.7", 30 | "typescript": "^5.1.6", 31 | "vite": "^4.3.9" 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /portfolio/src/App.tsx: -------------------------------------------------------------------------------- 1 | import GlobalStyle from "./styles/Global"; 2 | import { Route, Routes, useNavigate, useLocation } from "react-router-dom"; 3 | import { ThemeProvider } from "styled-components"; 4 | import { theme } from "./styles/theme"; 5 | 6 | import { LanguageProvider } from "./contexts/LanguageProvider"; 7 | 8 | import HomeEn from "./components/en-us/pages/Home"; 9 | import ContactsEn from "./components/en-us/pages/Contacts"; 10 | import AboutMeEn from "./components/en-us/pages/AboutMe"; 11 | import ProjectsEn from "./components/en-us/pages/Projects"; 12 | import HomePt from "./components/pt-br/pages/Home"; 13 | import AboutMePt from "./components/pt-br/pages/AboutMe"; 14 | import ContactsPt from "./components/pt-br/pages/Contacts"; 15 | import ProjectsPt from "./components/pt-br/pages/Projects"; 16 | import { useEffect } from "react"; 17 | import ScrollToTop from "./components/reusable/scrollToTop"; 18 | 19 | function App() { 20 | const navigate = useNavigate(); 21 | const { pathname } = useLocation(); 22 | 23 | useEffect(() => { 24 | window.scrollTo(0, 0); 25 | }, [pathname]); 26 | 27 | const chosenLanguage = localStorage.getItem("language") || "EN-US"; 28 | return ( 29 | <> 30 | 31 | 32 | 33 | 34 | 35 | : } 38 | /> 39 | } /> 40 | } /> 41 | } /> 42 | } /> 43 | } /> 44 | } /> 45 | } /> 46 | } /> 47 | 48 | 49 | 50 | 51 | ); 52 | } 53 | 54 | export default App; 55 | -------------------------------------------------------------------------------- /portfolio/src/assets/Calendar.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /portfolio/src/assets/Card.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /portfolio/src/assets/Discord.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /portfolio/src/assets/Dots.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /portfolio/src/assets/Dribble.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /portfolio/src/assets/Dropdown.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /portfolio/src/assets/Email.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /portfolio/src/assets/Figma.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /portfolio/src/assets/Figures.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /portfolio/src/assets/Github.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /portfolio/src/assets/Landmark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /portfolio/src/assets/Line.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /portfolio/src/assets/Linkedin.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /portfolio/src/assets/Medium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/Medium.png -------------------------------------------------------------------------------- /portfolio/src/assets/Medium.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /portfolio/src/assets/PinkLine.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /portfolio/src/assets/Play.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /portfolio/src/assets/Quotes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /portfolio/src/assets/SquareLarge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /portfolio/src/assets/SquareSmall.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /portfolio/src/assets/Telegram.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /portfolio/src/assets/Twitter.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /portfolio/src/assets/cv/cv-jessie-bentes-en-us.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/cv/cv-jessie-bentes-en-us.pdf -------------------------------------------------------------------------------- /portfolio/src/assets/cv/cv-jessie-bentes-pt-br.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/cv/cv-jessie-bentes-pt-br.pdf -------------------------------------------------------------------------------- /portfolio/src/assets/data-images/bigger-projects/arnia-task-manager.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/data-images/bigger-projects/arnia-task-manager.png -------------------------------------------------------------------------------- /portfolio/src/assets/data-images/bigger-projects/frutamix-backend.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/data-images/bigger-projects/frutamix-backend.png -------------------------------------------------------------------------------- /portfolio/src/assets/data-images/bigger-projects/frutamix-front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/data-images/bigger-projects/frutamix-front.png -------------------------------------------------------------------------------- /portfolio/src/assets/data-images/bigger-projects/meta-vagas-back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/data-images/bigger-projects/meta-vagas-back.png -------------------------------------------------------------------------------- /portfolio/src/assets/data-images/bigger-projects/meta-vagas-front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/data-images/bigger-projects/meta-vagas-front.png -------------------------------------------------------------------------------- /portfolio/src/assets/data-images/bigger-projects/shopping-cart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/data-images/bigger-projects/shopping-cart.png -------------------------------------------------------------------------------- /portfolio/src/assets/data-images/bigger-projects/shopping-store.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/data-images/bigger-projects/shopping-store.png -------------------------------------------------------------------------------- /portfolio/src/assets/data-images/bigger-projects/wexer-back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/data-images/bigger-projects/wexer-back.png -------------------------------------------------------------------------------- /portfolio/src/assets/data-images/bigger-projects/wexer-front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/data-images/bigger-projects/wexer-front.png -------------------------------------------------------------------------------- /portfolio/src/assets/data-images/blog-posts/dev-teacher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/data-images/blog-posts/dev-teacher.png -------------------------------------------------------------------------------- /portfolio/src/assets/data-images/blog-posts/fullstack-ux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/data-images/blog-posts/fullstack-ux.png -------------------------------------------------------------------------------- /portfolio/src/assets/data-images/blog-posts/soft-skills.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/data-images/blog-posts/soft-skills.png -------------------------------------------------------------------------------- /portfolio/src/assets/data-images/blog-posts/solid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/data-images/blog-posts/solid.png -------------------------------------------------------------------------------- /portfolio/src/assets/data-images/blog-posts/time-travel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/data-images/blog-posts/time-travel.png -------------------------------------------------------------------------------- /portfolio/src/assets/data-images/certificates/arnia-fullstack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/data-images/certificates/arnia-fullstack.png -------------------------------------------------------------------------------- /portfolio/src/assets/data-images/certificates/design-ux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/data-images/certificates/design-ux.png -------------------------------------------------------------------------------- /portfolio/src/assets/data-images/certificates/empathy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/data-images/certificates/empathy.png -------------------------------------------------------------------------------- /portfolio/src/assets/data-images/certificates/java-spring-boot-certificate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/data-images/certificates/java-spring-boot-certificate.png -------------------------------------------------------------------------------- /portfolio/src/assets/data-images/certificates/typescript.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/data-images/certificates/typescript.png -------------------------------------------------------------------------------- /portfolio/src/assets/data-images/certificates/wireframes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/data-images/certificates/wireframes.png -------------------------------------------------------------------------------- /portfolio/src/assets/data-images/design-ux/competitive-audit-report.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/data-images/design-ux/competitive-audit-report.png -------------------------------------------------------------------------------- /portfolio/src/assets/data-images/design-ux/competitive-audit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/data-images/design-ux/competitive-audit.png -------------------------------------------------------------------------------- /portfolio/src/assets/data-images/design-ux/lofi-prototype.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/data-images/design-ux/lofi-prototype.png -------------------------------------------------------------------------------- /portfolio/src/assets/data-images/design-ux/persona.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/data-images/design-ux/persona.png -------------------------------------------------------------------------------- /portfolio/src/assets/data-images/design-ux/storyboard-closeup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/data-images/design-ux/storyboard-closeup.png -------------------------------------------------------------------------------- /portfolio/src/assets/data-images/design-ux/storyboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/data-images/design-ux/storyboard.png -------------------------------------------------------------------------------- /portfolio/src/assets/data-images/java-projects/hotelium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/data-images/java-projects/hotelium.png -------------------------------------------------------------------------------- /portfolio/src/assets/data-images/java-projects/java-spring-boot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/data-images/java-projects/java-spring-boot.png -------------------------------------------------------------------------------- /portfolio/src/assets/data-images/java-projects/my-food.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/data-images/java-projects/my-food.png -------------------------------------------------------------------------------- /portfolio/src/assets/favicon.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 10 | 12 | 14 | 16 | 20 | 26 | 32 | 33 | 35 | 37 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /portfolio/src/assets/jessie-name-label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/jessie-name-label.png -------------------------------------------------------------------------------- /portfolio/src/assets/jessie1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/jessie1.png -------------------------------------------------------------------------------- /portfolio/src/assets/jessie2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/jessie2.png -------------------------------------------------------------------------------- /portfolio/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LadyJessie19/Portifolio/411a7a36bfe20dca51f161ff5936d6e1de1e8c97/portfolio/src/assets/logo.png -------------------------------------------------------------------------------- /portfolio/src/components/en-us/data/_aboutData.ts: -------------------------------------------------------------------------------- 1 | interface IAbout { 2 | pageTitle: string; 3 | pageDescription: string; 4 | pageSectionTitleOne: string; 5 | pageSectionTitleTwo: string; 6 | pageSectionTitleThree: string; 7 | pageSectionTitleFour: string; 8 | jessieBentesOne: string; 9 | jessieBentesTwo: string; 10 | jessieBentesThree: string; 11 | jessieBentesFour: string; 12 | funFacts: string[]; 13 | } 14 | 15 | const AboutMeData: IAbout = { 16 | pageTitle: "about-me", 17 | pageDescription: "Who am I?", 18 | pageSectionTitleOne: "jessie-bentes", 19 | pageSectionTitleTwo: "skills", 20 | pageSectionTitleThree: "certificates", 21 | pageSectionTitleFour: "my-fun-facts", 22 | jessieBentesOne: 23 | "Hey! I'm Jéssica Bentes, a dedicated fullstack developer residing in Campo Grande. My journey into tech began with diverse experiences, including graphic producer and writer, before I found my true passion in coding.", 24 | jessieBentesTwo: 25 | "In summary, I have worked on a patient management system using React.js, Node.js, MongoDB, and Mongoose. I participated in a job application platform for programming positions using Nest.js, TypeORM, and PostgreSQL, which was my first team experience. I developed a contact platform for doctors and hospitals using Spring Boot and AWS. I created a food ranking system using Spring Boot, MongoDB, Swagger, and Railway for deployment. I worked on a service management system for an event company using Spring Boot, MySQL, and AWS, utilizing development and staging environments, as well as Cognito for authentication.", 26 | jessieBentesThree: 27 | "Driven by a desire to contribute meaningfully to the field, I've dedicated myself to mastering various programming languages and frameworks. I'm deeply inspired by the potential of technology to create positive change and enhance lives.", 28 | jessieBentesFour: 29 | "Eager to met fellow developers, share insights, and continue my journey of growth and innovation in the dynamic world of software development!", 30 | funFacts: [ 31 | "My favorite food is pizza (with lots of pepper).", 32 | "I consider myself a developer/writer.", 33 | "I dream of visiting South Korea.", 34 | "One of my favorite hobbies is playing video games.", 35 | "I can say 'I love you' in 7 different languages.", 36 | "I'm passionate about music.", 37 | ], 38 | }; 39 | 40 | export default AboutMeData; 41 | -------------------------------------------------------------------------------- /portfolio/src/components/en-us/data/_contactData.ts: -------------------------------------------------------------------------------- 1 | type MediaType = { 2 | name: string; 3 | link: string; 4 | icon: string; 5 | }; 6 | 7 | interface IContact { 8 | pageTitle: string; 9 | pageDescription: string; 10 | pageSectionTitleOne: string; 11 | contactMeHeadline: string; 12 | contactMeOne: string; 13 | allMedias: Array; 14 | } 15 | 16 | const ContactMeData: IContact = { 17 | pageTitle: "contacts", 18 | pageDescription: "Do you wanna reach me?", 19 | pageSectionTitleOne: "all-media", 20 | contactMeHeadline: "I'm open to freelance gigs!", 21 | contactMeOne: 22 | "But hey, if you've got any other requests or just wanna chat, hit me up anytime.", 23 | allMedias: [ 24 | { 25 | name: "LinkedIn", 26 | link: "https://www.linkedin.com/in/jessiemoura/?locale=en_US", 27 | icon: "fa-brands fa-linkedin", 28 | }, 29 | { 30 | name: "GitHub", 31 | link: "https://github.com/LadyJessie19", 32 | icon: "fa-brands fa-github", 33 | }, 34 | { 35 | name: "Medium", 36 | link: "https://medium.com/@jessie_moura", 37 | icon: "fa-brands fa-medium", 38 | }, 39 | { 40 | name: "Figma", 41 | link: "https://www.figma.com/files/user/1164006161769032343?fuid=1164006161769032343", 42 | icon: "fa-brands fa-figma", 43 | }, 44 | { 45 | name: "Instagram", 46 | link: "https://www.instagram.com/lady_jessie19/", 47 | icon: "fa-brands fa-instagram", 48 | }, 49 | { 50 | name: "Email", 51 | link: "mailto:jessie.moura19@gmail.com", 52 | icon: "fa-regular fa-envelope", 53 | }, 54 | ], 55 | }; 56 | 57 | export default ContactMeData; 58 | -------------------------------------------------------------------------------- /portfolio/src/components/en-us/data/_homeData.ts: -------------------------------------------------------------------------------- 1 | interface IHome { 2 | introduction: string; 3 | pathContact: string; 4 | buttonMainHome: string; 5 | downloadCV: string; 6 | SectionTitleOne: string; 7 | pathProjects: string; 8 | pathSectionProjects: string; 9 | SectionTitleTwo: string; 10 | SectionTitleThree: string; 11 | SectionTitleFour: string; 12 | SectionTitleFive: string; 13 | aboutMeOne: string; 14 | aboutMeTwo: string; 15 | aboutMeThree: string; 16 | aboutMeFour: string; 17 | pathAbout: string; 18 | pathSectionAbout: string; 19 | buttonAboutText: string; 20 | SectionTitleSix: string; 21 | contactMeOne: string; 22 | contactMeTwo: string; 23 | } 24 | 25 | const HomeData: IHome = { 26 | introduction: 27 | "Proficient in both front-end and back-end development, she ensures smooth user experiences throughout the entire process, from conceptualization to deployment.", 28 | pathContact: "/us/contacts", 29 | buttonMainHome: "Contact Me", 30 | downloadCV: "Download CV", 31 | SectionTitleOne: "projects", 32 | pathProjects: "/us/projects", 33 | pathSectionProjects: "/us/projects/#blog-posts", 34 | SectionTitleTwo: "skills", 35 | SectionTitleThree: "certificates", 36 | SectionTitleFour: "blog-posts", 37 | SectionTitleFive: "about-me", 38 | pathAbout: "/us/about-me", 39 | pathSectionAbout: "/us/about-me/#certificates", 40 | buttonAboutText: "Read More", 41 | aboutMeOne: "Hi!👋 You may call me Jessie!", 42 | aboutMeTwo: 43 | "I'm a Fullstack developer originally from Rio de Janeiro, now based in Campo Grande, MS. I started in 2022 and mainly work with JavaScript, Java, and SQL. My focus is on web applications and user experience.", 44 | aboutMeThree: 45 | "Fluent in English, I practice clean code and have experience with GIT. Additionally, I work as a instructor at a programming school. I'm excited to continue growing and contributing in the field!", 46 | aboutMeFour: 47 | "I'm eager to keep learning and collaborating with the programming community. I hope to contribute my knowledge and skills as I continue my journey in this exciting field of technology.", 48 | SectionTitleSix: "contact", 49 | contactMeOne: "I'm open to freelance gigs!", 50 | contactMeTwo: 51 | "but hey, if you've got any other requests or just wanna chat, hit me up anytime.", 52 | }; 53 | 54 | export default HomeData; 55 | -------------------------------------------------------------------------------- /portfolio/src/components/en-us/data/_projectsData.ts: -------------------------------------------------------------------------------- 1 | interface IProjects { 2 | pageTitle: string; 3 | pageDescription: string; 4 | pageSectionTitleOne: string; 5 | pageSectionTitleTwo: string; 6 | pageSectionTitleThree: string; 7 | pageSectionTitleFour: string; 8 | pageSectionTitleFive: string; 9 | } 10 | 11 | const ProjectsData: IProjects = { 12 | pageTitle: "projects", 13 | pageDescription: "List of my projects", 14 | pageSectionTitleOne: "complete-apps", 15 | pageSectionTitleTwo: "smaller-apps", 16 | pageSectionTitleThree: "java-projects", 17 | pageSectionTitleFour: "design-ux-projects", 18 | pageSectionTitleFive: "blog-posts", 19 | }; 20 | 21 | export default ProjectsData; 22 | -------------------------------------------------------------------------------- /portfolio/src/components/en-us/data/biggerProjects.ts: -------------------------------------------------------------------------------- 1 | import WexerFrontend from "../../../assets/data-images/bigger-projects/wexer-front.png"; 2 | import WexerBackend from "../../../assets/data-images/bigger-projects/wexer-back.png"; 3 | import MetaVagasFront from "../../../assets/data-images/bigger-projects/meta-vagas-front.png"; 4 | import MetaVagasBack from "../../../assets/data-images/bigger-projects/meta-vagas-back.png"; 5 | import ArniaTaskManager from "../../../assets/data-images/bigger-projects/arnia-task-manager.png"; 6 | import ShoppingCart from "../../../assets/data-images/bigger-projects/shopping-cart.png"; 7 | import ShoppingStore from "../../../assets/data-images/bigger-projects/shopping-store.png"; 8 | import FrutamixFront from "../../../assets/data-images/bigger-projects/frutamix-front.png"; 9 | import FrutamixBack from "../../../assets/data-images/bigger-projects/frutamix-backend.png"; 10 | 11 | interface IProjects { 12 | img: any; 13 | tools: string; 14 | name: string; 15 | description: string; 16 | link: string; 17 | button: string; 18 | } 19 | 20 | const biggerProjects: Array = [ 21 | { 22 | img: FrutamixFront, 23 | tools: "React.js, Typescript, React Router Dom, Styled Components", 24 | name: "Frutamix - Frontend", 25 | description: 26 | "Frontend project developed using React.js and Typescript for an ice cream shop called Frutamix.", 27 | link: "https://github.com/LadyJessie19/frutamix-frontend", 28 | button: "GitHub Repository", 29 | }, 30 | { 31 | img: FrutamixBack, 32 | tools: "Nest.js, Typescript, Railway", 33 | name: "Frutamix - Backend", 34 | description: 35 | "Backend project developed using Nest.js and Typescript for the Frutamix app.", 36 | link: "https://github.com/LadyJessie19/frutamix-backend", 37 | button: "GitHub Repository", 38 | }, 39 | 40 | { 41 | img: WexerFrontend, 42 | tools: "React.js, Typescript", 43 | name: "Wexer Psi - Frontend", 44 | description: 45 | "Frontend project developed using React.js and Typescript for Wexer Psi.", 46 | link: "https://github.com/LadyJessie19/WexerFrontend", 47 | button: "GitHub Repository", 48 | }, 49 | 50 | { 51 | img: WexerBackend, 52 | tools: "Node.js, Clean Architecture, N-Tier, SOLID", 53 | name: "Wexer Psi - Backend", 54 | description: 55 | "Backend project built with Node.js, following Clean Architecture, N-Tier, and SOLID principles for Wexer Psi.", 56 | link: "https://github.com/LadyJessie19/WexerBackend", 57 | button: "GitHub Repository", 58 | }, 59 | 60 | { 61 | img: ArniaTaskManager, 62 | tools: "JavaScript, HTML, CSS, json-server, Vercel, Railway", 63 | name: "Arnia Task Manager", 64 | description: 65 | "My inaugural project at Arnia, initially designed for academic purposes, marking my introduction to web development.", 66 | button: "GitHub Repository", 67 | link: "https://github.com/LadyJessie19/ArniaTaskManager", 68 | }, 69 | { 70 | img: ShoppingCart, 71 | tools: "React.js, Typescript", 72 | name: "Hortifruti - E-Commerce", 73 | description: 74 | "A small-scale e-commerce project developed for a local grocery store in my neighborhood.", 75 | button: "GitHub Repository", 76 | link: "https://github.com/LadyJessie19/HortifruitEcommerce", 77 | }, 78 | { 79 | img: ShoppingStore, 80 | tools: "React.js, Typescript", 81 | name: "Shopping Cart - E-Commerce", 82 | description: 83 | "A small project aimed at delving into React Hooks and understanding their functionality.", 84 | button: "GitHub Repository", 85 | link: "https://github.com/LadyJessie19/ShoppingEcommerce", 86 | }, 87 | { 88 | img: MetaVagasBack, 89 | tools: "Nest.js, Typescript, Railway, PostgreSQL, Development Team", 90 | name: "MetaVagas - Backend", 91 | description: "Backend for the MetaVagas application.", 92 | link: "https://github.com/LadyJessie19/meta_vagas_backend", 93 | button: "GitHub Repository", 94 | }, 95 | 96 | { 97 | img: MetaVagasFront, 98 | tools: "React.js, Typescript, Vercel, Development Team", 99 | name: "MetaVagas - Frontend", 100 | description: 101 | "Frontend for MetaVagas, a website designed to search developer job vacancies.", 102 | link: "https://github.com/LadyJessie19/meta_vagas_frontend", 103 | button: "GitHub Repository", 104 | }, 105 | ]; 106 | 107 | export default biggerProjects; 108 | -------------------------------------------------------------------------------- /portfolio/src/components/en-us/data/blogPosts.ts: -------------------------------------------------------------------------------- 1 | import TimeTravel from "../../../assets/data-images/blog-posts/time-travel.png"; 2 | import SOLID from "../../../assets/data-images/blog-posts/solid.png"; 3 | import SoftSkills from "../../../assets/data-images/blog-posts/soft-skills.png"; 4 | import FullStackUX from "../../../assets/data-images/blog-posts/fullstack-ux.png"; 5 | import DevTeacher from "../../../assets/data-images/blog-posts/dev-teacher.png"; 6 | 7 | interface IBlogPost { 8 | img: any; 9 | title: string; 10 | description: string; 11 | link: string; 12 | button: string; 13 | } 14 | 15 | const blogPosts: Array = [ 16 | { 17 | img: DevTeacher, 18 | title: "Fullstack Developer and Instructor", 19 | description: 20 | "Article about my journey balancing coding as a fullstack developer and teaching as an instructor.", 21 | link: "https://medium.com/@jessie_moura/sobre-minha-experi%C3%AAncia-como-professora-sendo-uma-desenvolvedora-web-ca1c569e14ba", 22 | button: "Read here", 23 | }, 24 | 25 | { 26 | img: SOLID, 27 | title: "SOLID Principles", 28 | description: 29 | "Find out how to explain SOLID principles in a fun and accessible way using a LEGO block metaphor in this engaging article.", 30 | link: "https://medium.com/@jessie_moura/explorando-os-princ%C3%ADpios-solid-construindo-com-blocos-de-lego-2707b12ae48e", 31 | button: "Read here", 32 | }, 33 | 34 | { 35 | img: SoftSkills, 36 | title: "Soft Skills", 37 | description: 38 | "Explore how soft skills can make a difference in a programmer's career and why they are so important, even for beginners. Read on to find out more!", 39 | link: "https://medium.com/@jessie_moura/os-estagi%C3%A1rios-como-o-filme-mostra-a-import%C3%A2ncia-das-soft-skills-para-os-programadores-iniciantes-d939cbc483dd", 40 | button: "Read here", 41 | }, 42 | 43 | { 44 | img: FullStackUX, 45 | title: "UX Design and Web Development", 46 | description: 47 | "Discover how UX Design knowledge can be a significant advantage for fullstack developers and how it can drive their skills and projects forward.", 48 | link: "https://medium.com/@jessie_moura/a-vantagem-do-conhecimento-em-ux-para-desenvolvedores-fullstack-38196b871c75", 49 | button: "Read here", 50 | }, 51 | 52 | { 53 | img: TimeTravel, 54 | title: "Arnia English Homework | Time Travel", 55 | description: 56 | "Imagine conversing with your younger self and receiving surprising responses. Read on to discover how this journey through time can unveil unexpected insights.", 57 | link: "https://medium.com/@jessie_moura/arnia-english-homework-time-travel-1e6b62b9b64e", 58 | button: "Read here", 59 | }, 60 | ]; 61 | 62 | export default blogPosts; 63 | -------------------------------------------------------------------------------- /portfolio/src/components/en-us/data/certificates.ts: -------------------------------------------------------------------------------- 1 | import ArniaCertificate from "../../../assets/data-images/certificates/arnia-fullstack.png"; 2 | import JavaSpringBoot from "../../../assets/data-images/certificates/java-spring-boot-certificate.png"; 3 | import Typescript from "../../../assets/data-images/certificates/typescript.png"; 4 | import DesignUXOne from "../../../assets/data-images/certificates/design-ux.png"; 5 | import DesignUXTwo from "../../../assets/data-images/certificates/empathy.png"; 6 | import DesignUXThree from "../../../assets/data-images/certificates/wireframes.png"; 7 | 8 | interface ICertificates { 9 | img: any; 10 | title: string; 11 | description: string; 12 | link: string; 13 | button: string; 14 | } 15 | 16 | const certificates: Array = [ 17 | { 18 | img: ArniaCertificate, 19 | title: "Fullstack Developer Certification", 20 | description: "Earned the Fullstack Developer certificate from Arnia.", 21 | link: "https://www.linkedin.com/in/jessiemoura/details/certifications/1635555790018/single-media-viewer/?type=IMAGE&profileId=ACoAAD6E-xEBIvRRy_KaUTviLPge8Ak7-qFsObU", 22 | button: "View here", 23 | }, 24 | { 25 | img: DesignUXOne, 26 | title: "Design UX - Fundamentals Certification", 27 | description: 28 | "Achieved Google UX Certificate (1/7) covering UX design fundamentals.", 29 | link: "https://www.coursera.org/account/accomplishments/verify/6TCCGLQ65RLX", 30 | button: "View here", 31 | }, 32 | { 33 | img: JavaSpringBoot, 34 | title: "Java | Spring Boot Certification", 35 | description: "Completed Java studies with a focus on Spring Boot at Udemy.", 36 | link: "https://www.udemy.com/certificate/UC-ee3de95e-2a36-412b-860c-d94566b64a6d/", 37 | button: "View here", 38 | }, 39 | 40 | { 41 | img: DesignUXTwo, 42 | title: "Design UX - Empathy Certification", 43 | description: 44 | "Earned Google UX Certificate (2/7) focusing on empathy in UX design.", 45 | link: "https://www.coursera.org/account/accomplishments/verify/B3NGU29HH9KP", 46 | button: "View here", 47 | }, 48 | { 49 | img: DesignUXThree, 50 | title: "Design UX - Wireframes | Lo-Fi Prototypes Certification", 51 | description: 52 | "Completed Google UX Certificate (3/7) covering wireframes and lo-fi prototypes.", 53 | link: "https://www.coursera.org/account/accomplishments/verify/DPMZ5HJJE443", 54 | button: "View here", 55 | }, 56 | { 57 | img: Typescript, 58 | title: "Typescript Certification", 59 | description: 60 | "Completed Typescript and Object-Oriented Programming (OOP) studies at Udemy.", 61 | link: "https://www.udemy.com/certificate/UC-580be9ad-a4ee-4dfc-b047-f378d21dd3eb/", 62 | button: "View here", 63 | }, 64 | ]; 65 | 66 | export default certificates; 67 | -------------------------------------------------------------------------------- /portfolio/src/components/en-us/data/designUX.ts: -------------------------------------------------------------------------------- 1 | import LeNu from "../../../assets/data-images/design-ux/lofi-prototype.png"; 2 | import Personas from "../../../assets/data-images/design-ux/persona.png"; 3 | import CompetitiveAnalysis from "../../../assets/data-images/design-ux/competitive-audit.png"; 4 | import CompetitiveReport from "../../../assets/data-images/design-ux/competitive-audit-report.png"; 5 | import Storyboard from "../../../assets/data-images/design-ux/storyboard.png"; 6 | import StoryboardCloseUp from "../../../assets/data-images/design-ux/storyboard-closeup.png"; 7 | 8 | interface IDesignUX { 9 | img: string; 10 | tools: string; 11 | name: string; 12 | description: string; 13 | link: string; 14 | button: string; 15 | } 16 | 17 | const designUX: Array = [ 18 | { 19 | img: LeNu, 20 | tools: "Figma, UX Design", 21 | name: "LeNu App - Lo-Fi Prototype", 22 | description: 23 | "First Lo-Fi prototype created using Figma to showcase the LeNu app, a scheduled restaurant service order system.", 24 | link: "https://www.figma.com/proto/0PZ2SCNQ2IlAgJDNvAIhcg/LeNu-Wireframes?type=design&node-id=4-8&t=wfESQtGHRsrhD8RU-0&scaling=scale-down&page-id=0%3A1&starting-point-node-id=4%3A8", 25 | button: "View more", 26 | }, 27 | 28 | { 29 | img: Personas, 30 | tools: "Google Presentation, Customer Reviews", 31 | name: "Personas", 32 | description: 33 | "Creation of user personas to reflect the target audience and their needs for the app.", 34 | link: "https://docs.google.com/presentation/d/1-rBktYJ4MduAXL_ygiJ1ELd8IGhDXepawtZjgFr9CfQ/edit?usp=sharing", 35 | button: "View more", 36 | }, 37 | 38 | { 39 | img: CompetitiveAnalysis, 40 | tools: "Google Sheets, Competitive Research", 41 | name: "Competitive Audit", 42 | description: 43 | "Research conducted to gather data on similar businesses, their goals, and methods to inform the development of the LeNu app.", 44 | link: "https://docs.google.com/spreadsheets/d/1W685l2nbxf6sNDKDS53l5UfKNHvB-X-eVtp56fYxoYA/edit?usp=sharing", 45 | button: "View more", 46 | }, 47 | 48 | { 49 | img: CompetitiveReport, 50 | tools: "Google Docs, Competitive Audit", 51 | name: "Competitive Audit Report", 52 | description: 53 | "Report summarizing the data collected during the competitive audit process.", 54 | link: "https://docs.google.com/document/d/1GFBEzkTFD1z6sqJicBRJx8SZCdAB0b87K3t006ufJ8c/edit?usp=sharing", 55 | button: "View more", 56 | }, 57 | 58 | { 59 | img: Storyboard, 60 | tools: "Google Presentation, Notebook Drawing", 61 | name: "Storyboard", 62 | description: 63 | "Presentation outlining the user's path through the app to visualize the user experience.", 64 | link: "https://docs.google.com/presentation/d/1q36yqejV4-ZYarPLhpnZAJ55rmB65fzfZE6EWQDJ68w/edit?usp=sharing&resourcekey=0-uITU2Uj63UrEhIK6u1xzPw", 65 | button: "View more", 66 | }, 67 | 68 | { 69 | img: StoryboardCloseUp, 70 | tools: "Google Presentation, Notebook Drawing", 71 | name: "Storyboard - Close Up", 72 | description: 73 | "Detailed presentation focusing on specific user paths within the app for a closer examination of the user experience.", 74 | link: "https://docs.google.com/presentation/d/1avCgZYN9fdXuQQ5YUvkGUAqntb0bj3EWfWkuy182lxs/edit?usp=sharing&resourcekey=0-aQAnYTPMgmVEJx-WyJRJIA", 75 | button: "View more", 76 | }, 77 | ]; 78 | 79 | export default designUX; 80 | -------------------------------------------------------------------------------- /portfolio/src/components/en-us/data/javaProjects.ts: -------------------------------------------------------------------------------- 1 | import JavaStudies from "../../../assets/data-images/java-projects/java-spring-boot.png"; 2 | import Hotelium from "../../../assets/data-images/java-projects/hotelium.png"; 3 | import MyFood from "../../../assets/data-images/java-projects/my-food.png"; 4 | 5 | interface IJavaProjects { 6 | img: string; 7 | tools: string; 8 | name: string; 9 | description: string; 10 | link: string; 11 | button: string; 12 | } 13 | 14 | const javaProjects: Array = [ 15 | { 16 | img: JavaStudies, 17 | tools: "Java, Spring Boot", 18 | name: "Java Studies Repository", 19 | description: 20 | "Repository containing my Markdown files for studying Java and Spring Boot.", 21 | link: "https://github.com/LadyJessie19/Java_Studies", 22 | button: "Repository", 23 | }, 24 | { 25 | img: Hotelium, 26 | tools: "Java, Spring Boot", 27 | name: "Hotelium - Booking Reservation", 28 | description: 29 | "Final project completed during my Java Mentorship program, focusing on hotel booking reservations.", 30 | link: "https://github.com/LadyJessie19/Hotelium", 31 | button: "Repository", 32 | }, 33 | { 34 | img: MyFood, 35 | tools: "Java, Spring Boot", 36 | name: "Ranking Search - MyFood", 37 | description: 38 | "Application that aggregates the most searched foods, showcasing a ranking system.", 39 | link: "https://github.com/LadyJessie19/MyFood", 40 | button: "Repository", 41 | }, 42 | ]; 43 | 44 | export default javaProjects; 45 | -------------------------------------------------------------------------------- /portfolio/src/components/en-us/data/skills.ts: -------------------------------------------------------------------------------- 1 | interface ISkills { 2 | category: string; 3 | tools: string; 4 | } 5 | 6 | const skills: Array = [ 7 | { category: "Languages", tools: "JavaScript Typescript Java SQL C Python" }, 8 | { category: "Libraries", tools: "React.js Bootstrap jQuery" }, 9 | { category: "Frameworks", tools: "Spring Boot Nest.js Express.js Node.js" }, 10 | { 11 | category: "Tools", 12 | tools: "Git Jira Trello VSCode Postman Insomnia Figma", 13 | }, 14 | { category: "Database", tools: "MongoDB PostgreSQL MySQL" }, 15 | { category: "Testing", tools: "Jest" }, 16 | ]; 17 | 18 | export default skills; 19 | -------------------------------------------------------------------------------- /portfolio/src/components/en-us/data/smallerProjects.ts: -------------------------------------------------------------------------------- 1 | interface ISmallerProjects { 2 | tools: string; 3 | title: string; 4 | description: string; 5 | button: string; 6 | link: string; 7 | } 8 | 9 | const smallerProjects: Array = [ 10 | { 11 | tools: "JavaScript, HTML", 12 | title: "I-Common Manual", 13 | description: 14 | "Documentation created for a small software project during my first internship. Although I didn't participate in its development, I authored the manual.", 15 | button: "GitHub Repository", 16 | link: "https://github.com/LadyJessie19/I-Common_Documentation", 17 | }, 18 | { 19 | tools: "JavaScript, HTML, DOM", 20 | title: "ReHT - Responsive Table Generator", 21 | description: 22 | "A small program capable of generating responsive tables on-screen based on user-selected rows and columns.", 23 | button: "GitHub Repository", 24 | link: "https://github.com/LadyJessie19/ReHT_Table_Generator", 25 | }, 26 | { 27 | tools: "JavaScript, HTML, C#", 28 | title: "String Format JS/C#", 29 | description: "A string formatter in JavaScript that implements C# logic.", 30 | button: "GitHub Repository", 31 | link: "https://github.com/LadyJessie19/String-Format-JS-CSharp", 32 | }, 33 | { 34 | tools: 35 | "React.js, Typescript, React Hooks, React Router Dom, Styled Components", 36 | title: "Arnia Monitorship - React.js", 37 | description: 38 | "React.js tutoring for students at Arnia, a programming school.", 39 | button: "GitHub Repository", 40 | link: "https://github.com/LadyJessie19/MonitorshipReactJS", 41 | }, 42 | { 43 | tools: "Node.js, Typescript, MongoDB, SOLID, TDD, Jest, Vitest", 44 | title: "Arnia Monitorship - Node.js", 45 | description: 46 | "Node.js tutoring for students at Arnia, a programming school.", 47 | button: "GitHub Repository", 48 | link: "https://github.com/LadyJessie19/MonitorshipNodeJS", 49 | }, 50 | { 51 | tools: "Java, OOP", 52 | title: "Classes - Java", 53 | description: 54 | "Classes to introduce Java to JavaScript students, focusing on compiled languages and object-oriented programming.", 55 | button: "GitHub Repository", 56 | link: "https://github.com/LadyJessie19/JavaArnia", 57 | }, 58 | { 59 | tools: 60 | "React.js, Typescript, Components, Props, State, React Hooks, React Router Dom, Styled Components", 61 | title: "Classes - React.js", 62 | description: 63 | "Classes on the React.js library for beginners in advanced frontend development.", 64 | button: "GitHub Repository", 65 | link: "https://github.com/LadyJessie19/ReactArnia", 66 | }, 67 | ]; 68 | 69 | export default smallerProjects; 70 | -------------------------------------------------------------------------------- /portfolio/src/components/en-us/pages/AboutMe/index.tsx: -------------------------------------------------------------------------------- 1 | import GlobalStyle from "../../../../styles/Global"; 2 | import TinySideBar from "../../../reusable/TinySideBar"; 3 | import HeaderSection from "../Home/HeaderSection"; 4 | import { 5 | StyledContainerSecondaryPage, 6 | StyledHeaderHomePage, 7 | StyledItemsContainer, 8 | StyledListItem, 9 | } from "../../../../styles/ReusableStyles"; 10 | 11 | import SecondaryPageTitle from "../../../reusable/SecondaryPageTitle"; 12 | import SecondaryPageSection from "../../../reusable/SecondaryPageSection"; 13 | import Footer from "../../../reusable/Footer"; 14 | import SkillCard from "../../../reusable/SkillCard"; 15 | import GeneralCard from "../../../reusable/GeneralCard"; 16 | 17 | import skills from "../../data/skills"; 18 | import certificates from "../../data/certificates"; 19 | 20 | import aboutInfo from "../../data/_aboutData"; 21 | import Decorations from "../../../reusable/Decorations"; 22 | import PageContentAlignSecondary from "../../../reusable/PageContentAlignSecondary"; 23 | 24 | const AboutMeEn = () => { 25 | return ( 26 | <> 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 40 | 41 | 42 |
43 |

{aboutInfo.jessieBentesOne}

44 |

{aboutInfo.jessieBentesTwo}

45 |

{aboutInfo.jessieBentesThree}

46 |

{aboutInfo.jessieBentesFour}

47 |
48 |
49 | 50 | 51 | 52 | {skills.map((item, index) => ( 53 | 58 | ))} 59 | 60 | 61 | 62 | 65 | 66 | {certificates.map((item, index) => ( 67 | 75 | ))} 76 | 77 | 78 | 79 | 80 | 81 | {aboutInfo.funFacts.map((item, index) => ( 82 | {item} 83 | ))} 84 | 85 | 86 | 87 |