Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fannys Portfolio #401

Open
wants to merge 28 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
512ed61
started with project portfolio
Fannyhenriques Nov 2, 2024
e5eb611
added components and styling
Fannyhenriques Nov 4, 2024
79918ae
added tagscomponent in tags, projects and articles, and added styling
Fannyhenriques Nov 4, 2024
7396213
added props in gridsection.jsx
Fannyhenriques Nov 11, 2024
a5f0d36
fixed grid-layout for articles and projects
Fannyhenriques Nov 11, 2024
7c7d959
added styling for buttons
Fannyhenriques Nov 11, 2024
c39676a
refined styling for buttons
Fannyhenriques Nov 11, 2024
1b2c37f
updated styling for tags inside the skills and overall styling for sk…
Fannyhenriques Nov 12, 2024
84f91db
added iconbutton.jsx with styling for the buttons in the letstalk-sec…
Fannyhenriques Nov 12, 2024
32e1c0d
added styling in gallary for the images
Fannyhenriques Nov 12, 2024
c0d1f18
added links to the buttons in project and articlesections
Fannyhenriques Nov 12, 2024
8f81618
added styling for responsiveness in articles and projects and grid
Fannyhenriques Nov 12, 2024
d1349b5
fiexed responsive design for header
Fannyhenriques Nov 13, 2024
09c7c28
finnished overall responsive styling
Fannyhenriques Nov 13, 2024
9dbd833
added padding
Fannyhenriques Nov 13, 2024
ca0dda4
changed name for icon and updated pathway
Fannyhenriques Nov 13, 2024
e59afe7
testcommit to se if icon works
Fannyhenriques Nov 13, 2024
85c2848
removed icon stackoverflow because of error in netlify
Fannyhenriques Nov 13, 2024
97894c8
added icon stackoverflow again
Fannyhenriques Nov 13, 2024
163494e
added important in default styling in articles section because it is …
Fannyhenriques Nov 13, 2024
8436666
push-test for deploying to netlify again
Fannyhenriques Nov 13, 2024
10d2466
added media queries for the default styling for the netlify-site
Fannyhenriques Nov 13, 2024
59e999c
fixed indentations
Fannyhenriques Nov 13, 2024
6d16f5c
changed white and black to primary and secondary color
Fannyhenriques Nov 13, 2024
925f84a
added readme
Fannyhenriques Nov 13, 2024
2fcae15
removed the second readme that is not being used
Fannyhenriques Nov 13, 2024
ae77565
added links to buttons
Fannyhenriques Nov 13, 2024
0ab13c1
spacing
Fannyhenriques Nov 15, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Binary file not shown.
50 changes: 0 additions & 50 deletions README.md

This file was deleted.

24 changes: 24 additions & 0 deletions my-portfolio/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
46 changes: 46 additions & 0 deletions my-portfolio/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
<h1 align="center">
<a href="">
<img src="/react-p.svg" alt="Project Banner Image">
</a>
</h1>

# Technigo - React Portfolio Project

This project is a portfolio built using React, following a design provided by a UX designer on Figma. The goal was to replicate the design as closely as possible while using reusable components for scalability and maintainability.

Overall Layout
I structured the project using reusable components, such as Typography, Buttons, and Grid. These components were then passed into various section components to construct the layout. To ensure the design matched the Figma prototype as closely as possible, I utilized media queries for adjusting spacing and layouts across different screen sizes.

# Challanges:

- Structure:
The structure of the app was one of the main challenges. Initially, I aimed to use as many reusable components as possible to keep the larger components clean and maintainable. However, as the project evolved, it became more challenging to keep the parent components dry. This led to the need for adding additional logic and styles directly into those parent components to achieve the desired layout.

- Spacing Issues:
I initially tried passing different sectionTypes as props into the Grid component to style all sections using display: grid. However, some sectionTypes were being overridden by styles in the Grid.css, leading to unexpected layout issues.
Using gap in display: grid didn’t work as expected either, causing layout inconsistencies.

- Solution:
I first addressed this by using inline styling within the Grid component. However, it became harder to add media queries while keeping the code clean. Instead I solved this by using the backgroundColor prop for the article and project sections to add padding, and I used Flexbox in the card components to manage spacing. The other sections were styled manually. However, with more time, I would refactor the Grid.jsx to use styled-components for better flexibility in spacing and more maintainable code.

- Image Sizing:
I had to adjust the width and height of the images to ensure they matched the Figma design, this was done by tweaking the CSS for image containers and testing across different screen sizes.

- Media Queries:
The media queries required several adjustments to ensure that the layout remained responsive and close to the Figma design.

If I had more time I would:

- Use styled.components for better code organization and flexibility.
- Simplify the structure to avoid unnecessary components.
- Replace px with rem for better scalability and accessibility.
- Clean up the code to remove redundancy.
- Improve media queries for a more user-friendly layout

# View it live:

https://fannys-portfolio.netlify.app/

## Instructions

[Check this projects instructions here](https://github.com/Technigo/project-portfolio/blob/main/instructions.md)
38 changes: 38 additions & 0 deletions my-portfolio/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import js from '@eslint/js'
import globals from 'globals'
import react from 'eslint-plugin-react'
import reactHooks from 'eslint-plugin-react-hooks'
import reactRefresh from 'eslint-plugin-react-refresh'

export default [
{ ignores: ['dist'] },
{
files: ['**/*.{js,jsx}'],
languageOptions: {
ecmaVersion: 2020,
globals: globals.browser,
parserOptions: {
ecmaVersion: 'latest',
ecmaFeatures: { jsx: true },
sourceType: 'module',
},
},
settings: { react: { version: '18.3' } },
plugins: {
react,
'react-hooks': reactHooks,
'react-refresh': reactRefresh,
},
rules: {
...js.configs.recommended.rules,
...react.configs.recommended.rules,
...react.configs['jsx-runtime'].rules,
...reactHooks.configs.recommended.rules,
'react/jsx-no-target-blank': 'off',
'react-refresh/only-export-components': [
'warn',
{ allowConstantExport: true },
],
},
},
]
21 changes: 21 additions & 0 deletions my-portfolio/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<!doctype html>
<html lang="en">

<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"
rel="stylesheet">
<title>Portfolio</title>
</head>

<body>
<div id="root"></div>
<script type="module" src="/src/main.jsx"></script>
</body>

</html>
Loading