This portfolio was built on a React + TypeScript tech stack. Here I showcase some of my personal programming projects, from apps designed for backup of playlists, to this very portfolio itself.
This web app was built in a manner that allows for addition of new content without the need of coding, the following steps result in the addition of a new project page:
A named (serving as an Id) JSON object should be created in the
src/assets/project_page_data.json file, under content. The object should
be structured as follows:
"project-name": {
"url": "github-url",
"title": "Project name",
"data-sections": [
{
"title": "Overview",
"text": "This project was created for ...",
"imageName": "sectionImage"
},
...
],
"tags": [
{
"name": "JavaScript",
"color": "yellow-500",
"bgColor": "yellow-950",
"iconName": "javascriptIcon"
},
...
]
}NOTE imageName/iconName should be the same as the exported image/icon
from the corrseponding scripts, color and bgColor must be valid Tailwind
colors.
A JSON object should be created in the src/assets/project_snippet_data.json
file, under content. The object should be structured as follows:
{
"title": "Project name",
"description": "Short description of the project",
"imageName": "snippetImage",
"projectId": "project-name"
}NOTE projectId should match the name of the JSON object created in the
project_page_data.json file.
Each section in data-sections should have a corresponding image, so to should
each project snippet. Each tag in tags should have a corresponding icon.
Images and icons should be added to the images.ts and icons.ts, following
these steps:
- Import the image/icon ex.
import hueSnippet from 'assets/images/project-images/hue-lamp-app/snippet.png';- Export te image/icon ex.
const images: ImagesType = {
...
hueSnippet,
...
};