Skip to content

Commit 5f1fe21

Browse files
authored
Merge pull request #35 from cuchi/wip
Add career timeline
2 parents d8aa9b5 + b0fa25e commit 5f1fe21

23 files changed

Lines changed: 6980 additions & 1807 deletions

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,6 @@
11
node_modules
22
.nuxt
3+
4+
yarn-error.log
5+
.nuxt-storybook
6+
storybook-static

api/career.js

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
2+
export default async function(req, res) {
3+
const career = {
4+
events: [
5+
{
6+
id: "02107002-33e1-4187-a71d-b74a6179882f",
7+
level: 1,
8+
where: "UDESC",
9+
title: "Computer Science (incomplete)",
10+
type: "Bachelor Degree",
11+
logoUrl: "/career-logos/udesc.png",
12+
period: { begin: "2012-02", end: "2015-12-30" },
13+
},
14+
{
15+
id: "e30c66c1-d594-48fb-a6fa-d9e6219e1b8d",
16+
level: 1,
17+
where: "UDESC",
18+
title: "Systems Analysis",
19+
type: "Technology Degree",
20+
logoUrl: "/career-logos/udesc.png",
21+
period: { begin: "2016-01-10", end: "2018" },
22+
},
23+
{
24+
id: "ffa66fc8-3164-4a7c-83a0-afedf6b832d6",
25+
level: 1,
26+
where: "SENAI",
27+
title: "Web Development",
28+
type: "Technical Degree",
29+
logoUrl: "/career-logos/senai.png",
30+
period: { begin: "2010-02", end: "2011-12" },
31+
},
32+
{
33+
id: "104298ca-c805-45ff-a13d-4d1063f24f2d",
34+
where: "UDESC",
35+
title: "Technical Support",
36+
type: "Scholarship job",
37+
logoUrl: "/career-logos/udesc.png",
38+
period: { begin: "2012-07", end: "2013-07" },
39+
},
40+
{
41+
id: "680a1bd1-19ea-466e-9e69-8499269f9a35",
42+
title: "Software Developer",
43+
where: "ContaAzul",
44+
type: "Full-time job",
45+
activities: [
46+
`Worked on a web service for accounting routines & integration using
47+
Java EE 7, Hibernate, JBoss & PostgreSQL.`
48+
],
49+
logoUrl: "/career-logos/contaazul.jpeg",
50+
period: { begin: "2015-10", end: "2016-03-15" },
51+
},
52+
{
53+
id: "48a2723a-2c67-4794-8503-15de57349f41",
54+
title: "Software Developer (R&D)",
55+
where: "NG Informática",
56+
type: "Full-time job",
57+
activities: [
58+
`Worked on the development of a Android application for asset
59+
maintenance execution & management.`,
60+
`Worked on an experimental web application for notifications & alerts
61+
written in Node.Js & MongoDB.`,
62+
`Worked as a back-end tech lead for a SaaS web application using
63+
Node.Js, TypeScript, GraphQL & PostgreSQL.`,
64+
`Worked on the research of new tools and methods to improve the DevOps
65+
cycle of the organization SaaS products.`,
66+
],
67+
logoUrl: "/career-logos/ng-informatica.jpeg",
68+
period: { begin: "2016-05-06", end: "2020-03" },
69+
},
70+
{
71+
id: "3b06277a-edf2-4c4a-979d-359480c15f9b",
72+
where: "Magrathea Labs",
73+
title: "Software Developer",
74+
type: "Full-time job",
75+
activities: [
76+
`Worked on a data intensive web application that collects and displays
77+
reports for animal production corporations. The main technologies used
78+
were Python, Django, PostgreSQL, Redis, ElasticSearch and Angular.`,
79+
`Worked as a tech lead of a forked subset of the project above. This
80+
new project had international stakeholders who shared regular
81+
follow-ups with our development team.`,
82+
`Provided technical mentorship to employees on the projects we had in
83+
common.`,
84+
`Worked on a internal project of the company that employees used to
85+
make appointments to managed by the HR. The stack of this project was
86+
Node.Js, TypeScript, React and PostgreSQL.`
87+
],
88+
logoUrl: "/career-logos/magrathea.jpeg",
89+
period: { begin: "2020-03-10" },
90+
},
91+
{
92+
id: "a3d62c73-8fb7-41f2-9fa4-51e481ac2bf5",
93+
level: 2,
94+
title: "Programming Contest Staff",
95+
where: "UDESC",
96+
type: "Volunteership",
97+
logoUrl: "/career-logos/udesc.png",
98+
period: { begin: "2014-02", end: "2015-12" },
99+
},
100+
{
101+
id: "9dcaa7cb-67f3-4533-846a-8d08b4c89e88",
102+
level: 2,
103+
type: "Volunteership",
104+
where: "COLMEIA (UDESC)",
105+
title: "Volunteer",
106+
logoUrl: "/career-logos/udesc.png",
107+
period: { begin: "2012-07", end: "2013-12" },
108+
}
109+
],
110+
currentDate: new Date(),
111+
};
112+
113+
res
114+
.writeHead(200, { "Content-Type": "application/json" })
115+
.end(JSON.stringify(career));
116+
}

api/helpers/post-loader.js

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,19 @@
11
import coreFs from 'fs'
22
import path from 'path'
33
import { format } from 'date-fns'
4+
import markdownIt from 'markdown-it'
5+
import hljs from 'highlight.js'
6+
7+
const markdown = markdownIt({
8+
highlight: function (str, lang) {
9+
if (lang && hljs.getLanguage(lang)) {
10+
try {
11+
return hljs.highlight(lang, str).value
12+
} catch { }
13+
return ''
14+
}
15+
}
16+
})
417

518
const fs = coreFs.promises
619

@@ -52,7 +65,7 @@ class PostLoader {
5265
return {
5366
...parsedMeta,
5467
...this.prettyDates(parsedMeta),
55-
contents: contents.trim()
68+
contents: markdown.render(contents.trim())
5669
}
5770
}
5871

components/PostsSection.stories.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import PostsSectionComponent from './PostsSection'
2+
3+
export default {
4+
title: "Posts Section",
5+
component: PostsSectionComponent,
6+
argTypes: {
7+
posts: {
8+
defaultValue: [{
9+
name: "this-is-an-article-name",
10+
title: "Some cool article",
11+
createdAtPretty: "Some time ago",
12+
}]
13+
}
14+
}
15+
}
16+
17+
export const PostsSection = (arg, { argTypes }) => ({
18+
components: { PostsSectionComponent },
19+
props: Object.keys(argTypes),
20+
template: '<PostsSectionComponent :posts="posts" />'
21+
})

components/Timeline.stories.js

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
import { format } from 'date-fns'
2+
import TimelineComponent from "./Timeline";
3+
4+
export default {
5+
title: "Timeline",
6+
component: TimelineComponent,
7+
argTypes: {
8+
currentDate: {
9+
defaultValue: format(new Date(), "yyyy-MM-dd"),
10+
},
11+
events: {
12+
defaultValue: [
13+
{
14+
id: "02107002-33e1-4187-a71d-b74a6179882f",
15+
level: 1,
16+
where: "UDESC",
17+
title: "Computer Science (incomplete)",
18+
type: "Bachelor Degree",
19+
logoUrl: "/career-logos/udesc.png",
20+
period: { begin: "2012-02", end: "2015-12-30" },
21+
},
22+
{
23+
id: "e30c66c1-d594-48fb-a6fa-d9e6219e1b8d",
24+
level: 1,
25+
where: "UDESC",
26+
title: "Systems Analysis",
27+
type: "Technology Degree",
28+
logoUrl: "/career-logos/udesc.png",
29+
period: { begin: "2016-01-10", end: "2018" },
30+
},
31+
{
32+
id: "ffa66fc8-3164-4a7c-83a0-afedf6b832d6",
33+
level: 1,
34+
where: "SENAI",
35+
title: "Web Development",
36+
type: "Technical Degree",
37+
logoUrl: "/career-logos/senai.png",
38+
period: { begin: "2010-02", end: "2011-12" },
39+
},
40+
{
41+
id: "104298ca-c805-45ff-a13d-4d1063f24f2d",
42+
where: "UDESC",
43+
title: "Technical Support",
44+
type: "Scholarship job",
45+
logoUrl: "/career-logos/udesc.png",
46+
period: { begin: "2012-07", end: "2013-07" },
47+
},
48+
{
49+
id: "680a1bd1-19ea-466e-9e69-8499269f9a35",
50+
title: "Software Developer",
51+
where: "ContaAzul",
52+
type: "Full-time job",
53+
activities: [
54+
`Worked on a web service for accounting routines & integration using
55+
Java EE 7, Hibernate, JBoss & PostgreSQL.`,
56+
],
57+
logoUrl: "/career-logos/contaazul.jpeg",
58+
period: { begin: "2015-10", end: "2016-03-15" },
59+
},
60+
{
61+
id: "48a2723a-2c67-4794-8503-15de57349f41",
62+
title: "R&D Software Developer",
63+
where: "NG Informática",
64+
type: "Full-time job",
65+
activities: [
66+
`Worked on the development of a Android application for asset
67+
maintenance execution & management.`,
68+
`Worked on an experimental web application for notifications & alerts
69+
written in Node.Js & MongoDB.`,
70+
`Worked as a back-end tech lead for a SaaS web application using
71+
Node.Js, TypeScript, GraphQL & PostgreSQL.`,
72+
`Worked on the research of new tools and methods to improve the DevOps
73+
cycle of the organization SaaS products.`,
74+
],
75+
logoUrl: "/career-logos/ng-informatica.jpeg",
76+
period: { begin: "2016-05-06", end: "2020-03" },
77+
},
78+
{
79+
id: "3b06277a-edf2-4c4a-979d-359480c15f9b",
80+
where: "Magrathea Labs",
81+
title: "Software Developer",
82+
type: "Full-time job",
83+
activities: [],
84+
logoUrl: "/career-logos/magrathea.jpeg",
85+
period: { begin: "2020-03-10" },
86+
},
87+
{
88+
id: "a3d62c73-8fb7-41f2-9fa4-51e481ac2bf5",
89+
level: 2,
90+
title: "Programming Contest Staff",
91+
where: "UDESC",
92+
type: "Volunteership",
93+
logoUrl: "/career-logos/udesc.png",
94+
period: { begin: "2014-02", end: "2015-12" },
95+
},
96+
{
97+
id: "9dcaa7cb-67f3-4533-846a-8d08b4c89e88",
98+
level: 2,
99+
type: "Volunteership",
100+
where: "COLMEIA (UDESC)",
101+
title: "Volunteer",
102+
logoUrl: "/career-logos/udesc.png",
103+
period: { begin: "2012-07", end: "2013-12" },
104+
},
105+
],
106+
},
107+
},
108+
};
109+
110+
export const Timeline = (_, { argTypes }) => ({
111+
components: { TimelineComponent },
112+
props: Object.keys(argTypes),
113+
template: '<TimelineComponent :current-date="currentDate" :events="events" :year-size-in-px="yearSizeInPx" />',
114+
});

0 commit comments

Comments
 (0)