Skip to content

Commit 0cfcb6f

Browse files
committed
Refactor project structure: migrate YAML data to JSON, update icon imports, and optimize components
1 parent a2c6348 commit 0cfcb6f

15 files changed

Lines changed: 214 additions & 178 deletions

.dockerignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
.git
2+
.gitignore
3+
node_modules
4+
.next
5+
out
6+
.vscode
7+
README.md

Dockerfile

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
FROM oven/bun:1 AS deps
2+
WORKDIR /app
3+
COPY package.json bun.lock ./
4+
RUN bun install --frozen-lockfile
5+
6+
FROM deps AS builder
7+
COPY . .
8+
RUN bun run build
9+
10+
FROM nginx:alpine AS runner
11+
WORKDIR /usr/share/nginx/html
12+
COPY --from=builder /app/out .
13+
EXPOSE 80
14+
CMD ["nginx", "-g", "daemon off;"]

bun.lock

Lines changed: 7 additions & 21 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

components/dev-icon/index.jsx

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
import React from 'react'
22
import PropTypes from 'prop-types'
33
import {
4-
LogoAndroid,
5-
LogoAngular,
6-
LogoApple,
7-
LogoJavascript,
8-
LogoNodejs,
9-
LogoPython,
10-
LogoReact,
11-
LogoVue,
12-
LogoGithub
13-
} from 'react-ionicons'
4+
IconBrandAndroid,
5+
IconBrandAngular,
6+
IconBrandApple,
7+
IconBrandJavascript,
8+
IconBrandNodejs,
9+
IconBrandPython,
10+
IconBrandReact,
11+
IconBrandVue,
12+
IconBrandGithub
13+
} from '@tabler/icons-react'
1414

1515
function DevIcon({
1616
name,
@@ -25,15 +25,15 @@ function DevIcon({
2525
}
2626

2727
const logos = {
28-
REACT: <LogoReact {...logoProps} />,
29-
VUE: <LogoVue {...logoProps} />,
30-
ANDROID: <LogoAndroid {...logoProps} />,
31-
JAVASCRIPT: <LogoJavascript {...logoProps} />,
32-
NODEJS: <LogoNodejs {...logoProps} />,
33-
ANGULAR: <LogoAngular {...logoProps} />,
34-
PYTHON: <LogoPython {...logoProps} />,
35-
APPLE: <LogoApple {...logoProps} />,
36-
GITHUB: <LogoGithub />
28+
REACT: <IconBrandReact {...logoProps} />,
29+
VUE: <IconBrandVue {...logoProps} />,
30+
ANDROID: <IconBrandAndroid {...logoProps} />,
31+
JAVASCRIPT: <IconBrandJavascript {...logoProps} />,
32+
NODEJS: <IconBrandNodejs {...logoProps} />,
33+
ANGULAR: <IconBrandAngular {...logoProps} />,
34+
PYTHON: <IconBrandPython {...logoProps} />,
35+
APPLE: <IconBrandApple {...logoProps} />,
36+
GITHUB: <IconBrandGithub {...logoProps} />
3737
}
3838

3939
try {

components/navbar/index.jsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { useState } from 'react'
1+
import { useState } from 'react'
22
import Link from 'next/link'
33
import { Profile } from '../../data'
44

@@ -43,6 +43,10 @@ function NavBar() {
4343
<Link href="/projects" className="navbar-item">
4444
Projects
4545
</Link>
46+
47+
<Link href={Profile.cv} className="navbar-item" target="_blank" rel="noopener noreferrer">
48+
CV
49+
</Link>
4650
</div>
4751
</div>
4852
</nav>

components/profile-box/index.jsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
import React from 'react'
21
import PropTypes from 'prop-types'
32
import Link from 'next/link'
4-
import { AtOutline, LocationOutline } from 'react-ionicons'
3+
import { IconAt, IconMapPin } from '@tabler/icons-react'
54

65
function ProfileBox({
76
name,
@@ -38,14 +37,14 @@ function ProfileBox({
3837
<span className="has-text-weight-bold">Contact</span>
3938
<ul>
4039
<li className="ProfileBox-listItem">
41-
<AtOutline width="22px" color="white" />
40+
<IconAt width="22px" color="white" />
4241
<Link href={`mailto:${email}`} target="_blank">
4342
{email}
4443
</Link>
4544
</li>
4645

4746
<li className="ProfileBox-listItem">
48-
<LocationOutline width="22px" color="white" />
47+
<IconMapPin width="22px" color="white" />
4948
<span>{country}</span>
5049
</li>
5150
</ul>

data/index.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import profile from './profile.yml'
2-
import projects from './projects.yml'
3-
import workExperience from './work-experience.yml'
1+
import profile from './profile.json'
2+
import projects from './projects.json'
3+
import workExperience from './work-experience.json'
44

55
/**
66
* @typedef DevProfile

data/profile.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"name": "Luis J. Centeno",
3+
"title": "Sr. Software Engineer",
4+
"photo": "/images/avatar.jpeg",
5+
"about": "Experienced full-stack web developer with 7+ years of expertise in building dynamic, user-friendly web applications. Skilled in backend frameworks like Django, Ruby on Rails, and Node.js, as well as frontend technologies such as React, Vue, and Angular./nProficient in CI/CD, testing, Git, and agile methodologies./nThrives in remote, collaborative environments and is passionate about continuous learning and delivering exceptional user experiences.",
6+
"short_desc": "Passionate full-stack web developer with many years of experience in web development",
7+
"skils": [
8+
"Certified AWS Cloud Practitioner",
9+
"AI Driven Development",
10+
"Full Stack Web Development",
11+
"CI/CD",
12+
"English (Fluent)"
13+
],
14+
"email": "luisjcenteno@live.com",
15+
"location": "Nicaragua",
16+
"cv": "https://drive.google.com/file/d/1l-GxNTBttE7hEadNLvAz85DRkBH2QuM6/view?usp=sharing"
17+
}

data/profile.yml

Lines changed: 0 additions & 21 deletions
This file was deleted.

data/projects.json

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
[
2+
{
3+
"name": "ADM2",
4+
"slug": "adm2",
5+
"description": "A Web App to manage your small store. Build with web technologies",
6+
"stack": [
7+
"vue"
8+
],
9+
"content": "https://raw.githubusercontent.com/LuisHCK/adm2/master/README.md",
10+
"cover": "https://raw.githubusercontent.com/LuisHCK/adm2/master/public/screenshots/30510e0b-5deb-4547-99c9-9b61aefb7587.jpeg",
11+
"links": [
12+
{
13+
"label": "View on GitHub",
14+
"url": "https://github.com/LuisHCK/adm2",
15+
"target": "_blank",
16+
"rel": "noreferrer"
17+
},
18+
{
19+
"label": "Project details",
20+
"url": "/projects/adm2"
21+
}
22+
]
23+
},
24+
{
25+
"name": "Marvelous App",
26+
"slug": "marvelous-app",
27+
"description": "A GatsbyJS test project that consumes Marvel's public API",
28+
"stack": [
29+
"react"
30+
],
31+
"content": "https://raw.githubusercontent.com/LuisHCK/marvelous-app-test/main/README.md",
32+
"cover": "https://i.ibb.co/jhTccxf/Iron-Man-2020-5-Marvelous-App.jpg",
33+
"links": [
34+
{
35+
"label": "View on GitHub",
36+
"url": "https://github.com/LuisHCK/marvelous-app-test",
37+
"target": "_blank",
38+
"rel": "noreferrer"
39+
},
40+
{
41+
"label": "Demo",
42+
"url": "https://marverlous-app-test.netlify.app/",
43+
"target": "_blank",
44+
"rel": "noreferrer"
45+
},
46+
{
47+
"label": "Project details",
48+
"url": "/projects/marvelous-app"
49+
}
50+
]
51+
},
52+
{
53+
"name": "TRIVIA!",
54+
"slug": "trivia",
55+
"description": "Real time Trivia app using Express + React + Socket.io + Yarn workspaces + MongoDB",
56+
"stack": [
57+
"react"
58+
],
59+
"content": "https://raw.githubusercontent.com/LuisHCK/trivia/master/README.md",
60+
"cover": "https://raw.githubusercontent.com/LuisHCK/trivia/master/packages/client/public/screenshots/cover.png",
61+
"links": [
62+
{
63+
"label": "View on GitHub",
64+
"url": "https://github.com/LuisHCK/trivia",
65+
"target": "_blank",
66+
"rel": "noreferrer"
67+
},
68+
{
69+
"label": "Project details",
70+
"url": "/projects/trivia"
71+
},
72+
{
73+
"label": "PlayStore",
74+
"url": "https://play.google.com/store/apps/details?id=app.netlify.apptrivia.twa",
75+
"target": "_blank",
76+
"rel": "noreferrer"
77+
}
78+
]
79+
},
80+
{
81+
"name": "SAMSON Manage",
82+
"description": "Complete solution for Project Mangement for construction companies",
83+
"stack": [
84+
"angular",
85+
"python"
86+
],
87+
"cover": "https://samson-manage.com/wp-content/uploads/2020/01/82626476_175735640465152_185521455948103680_n.png",
88+
"links": [
89+
{
90+
"label": "Demo",
91+
"url": "https://app.samson-manage.com",
92+
"target": "_blank",
93+
"rel": "noreferrer"
94+
}
95+
]
96+
}
97+
]

0 commit comments

Comments
 (0)