diff --git a/api-server/fixtures/payloads/certifications.json5 b/api-server/fixtures/payloads/certifications.json5 deleted file mode 100644 index 3681ea86..00000000 --- a/api-server/fixtures/payloads/certifications.json5 +++ /dev/null @@ -1,77 +0,0 @@ -{ - "filename": "credential.json5", - "list": [ - { - title: 'The Official Business Skills Test in Bookkeeping, 3rd Grade', - issuer: "Tokyo Chamber of Commerce & Industry", - date: '2011/06', - credential: '', - }, - { - title: 'Fundamental Information Technology Engineer Examination', - issuer: "Ministry of Economy, Trade and Industry", - date: '2014/09', - credential: '', - }, - { - title: 'Information Storage and Management Version 2.0', - issuer: "Dell Technologies (formerly EMC)", - date: '2015/06', - credential: 'https://www.credly.com/badges/6b8180eb-04ab-4bb4-8a33-472e33403234/public_url', - }, - { - title: 'Systems Administrator, Avamar Version 7.0', - issuer: "Dell Technologies (formerly EMC)", - date: '2015/08', - credential: 'https://www.credly.com/badges/b32dd1dc-6002-48ff-ad97-792cd189a292/public_url', - }, - { - title: 'VCP-DCV: VMware Certified Professional 5 Data Center Virtualization', - issuer: "VMware", - date: '2015/12', - credential: '', - }, - { - title: 'VMware vSphere 6.5 Foundations', - issuer: "VMware", - date: '2019/07', - credential: 'https://www.credly.com/badges/68ce5780-7ddf-487b-a042-2b3a37999b65/public_url', - }, - { - title: 'VCP-DCV: VMware Certified Professional Data Center Virtualization 2019', - issuer: "VMware", - date: '2019/07', - credential: 'https://www.credly.com/badges/5b429e75-f7c9-4bca-8e8c-67ab645ba6e2/public_url', - }, - { - title: 'CKAD: Certified Kubernetes Application Developer', - issuer: "The Linux Foundation", - date: '2020/01', - credential: 'https://www.credly.com/badges/9ea992fc-e9dd-4822-bbab-1fdf0e94ab9d/public_url', - }, - { - title: 'CKA: Certified Kubernetes Administrator', - issuer: "The Linux Foundation", - date: '2020/09', - credential: 'https://www.credly.com/badges/84c2328e-6799-41a9-8a81-8f83aec72702/public_url', - }, - { - title: 'LPI Linux Essentials', - issuer: "Linux Professional Institute", - date: '2021/02', - credential: 'https://cs.lpi.org/caf/Xamman/certification/verify/LPI000469422/f3ztprurwk', - }, - { - title: 'LPI LPIC-1 v5.0', - issuer: "Linux Professional Institute", - date: '2021/02', - credential: 'https://cs.lpi.org/caf/Xamman/certification/verify/LPI000469422/f3ztprurwk', - }, - { - title: 'VCP-AM VMware Certified Professional Application Modernization 2021', - issuer: "VMware", - date: '2021/11', - credential: 'https://www.credly.com/badges/79085261-e153-4a43-be3e-9b252bbea404/public_url', - }, - ] -} diff --git a/api-server/fixtures/payloads/projects.json5 b/api-server/fixtures/payloads/projects.json5 deleted file mode 100644 index 1e2eb34d..00000000 --- a/api-server/fixtures/payloads/projects.json5 +++ /dev/null @@ -1,115 +0,0 @@ -{ - "filename": "projects.json5", - "list": [ - { - // This is some comment with multiple lines with breaks - // Note that we can use both single-quotes and double-quotes - title: 'Server OS Installation for Public Cloud Corp', - - // Project descriptions - descriptions: [ - "Joining after as new graduates to EMC, engaged to build system of auto-deployment of 100+ OS Installation(ESXi).", - "Optimized Server operations (ESXi auto-Installation and configuration) with open-sourced software and scripting auto installation programs.", - "Using with PXE-Booting technology, Linux Kickstarting installtion, and custom PowerCLI scripts, reduced the TCO of OS deployment and configurations.", - "As the result of the automation, decreased lead-time and cost of server implementation from 30h to 5h total.", - "After the project had been closed, the project team accomplishment had awarded as 2015 President Award in EMC Japan.", - ], - // Related skills used in the project - skills: [ - "ESXi", - "PowerShell", - "PowerCLI" - ], - - // Project Period - start: '2015/09', - end: '2016/04', - }, - { - title: "Auto deployment for Software Defined Storeges", - descriptions: [ - "To reduce time/cost of installation and configuration of EMC ScaleIO for 400+ Linux/ESXi servers, used OSS, Ansible, and customized for the requirements.", - "Since Ansible-ScaleIO project in EMC{Code} had been already launched in world-wide, ", - "to folk it in local Japan customer, handled communications with the global EMC GitHub committer to enhance it.", - "After the project had been closed, our team accomplishment had awarded as President Award in EMC Japan.", - ], - skills: [ - "ScaleIO (EMC Software Storage)", - "Ansible", - "GitHub", - ], - start: '2016/12', - end: '2017/04' - }, - { - title: "Visualization Project with OSS Solutions", - descriptions: [ - "To visualize utilizations of customer's network infrastructure, developed container-based application with OSS solutions for ETL.", - "Using with Docker, ElasticSearch, Grafana, InfluxDB, and scratched Python scripts for calculation, visualized network metrics, such as throughput, rate-in and rate-out of 100+ network switches.", - "In development phase with colleagues, used internal GitLab and experienced agile development with team members.", - ], - skills: [ - "Docker", - "ElasticSearch", - "Grafana", - "InfluxDB", - "Python", - "CloudStack", - "GitLab", - ], - start: '2017/08', - end: '2018/03' - }, - { - title: "Agile development of Web-Application for Storage Infrastrature", - descriptions: [ - "For reducing human-errors or operational failures, created web-application with Python Django, for internal use of delivery specialists.", - "Developed application, whose input is just an Excel format they've been using, of fully-automated to generate commands to implementation.", - "For the environments of running application, deployed Pivotal Cloud Foundry(PKS and PCF) on ESXi clusters in local lab, realized to be DevOps solutions with auto-deployment with using GitLab CI", - ], - skills: [ - "Python", - "Django", - "PostgreSQL", - "PCF (Pivotal Cloud Foundry)", - "PKS (Pivotal Container Service)", - "GitLab CI", - ], - start: '2018/01', - end: '2018/09' - }, - { - title: "Residency Project with Software Defined Storages", - descriptions: [ - "Experienced operational support with EMC's Software Defined Storage products, such as ViPR-Controller, ScaleIO, mainly enhanced in-housed production of storage operations as role of infrastructure management including backup, and networking.", - "Through 2+ years of this residency project, proceed re-design of customer's infrastructure in customer site, and improved efficiency of customer's infrastructure provisioning using EMC products", - ], - skills: [ - "ViPR-Controller (EMC Software Storage)", - "EMC Hardware Storages (VNX/VPLEX/Unity)", - "Cisco SAN Switches (MDS Series)", - ], - start: '2016/05', - end: '2019/05' - }, - { - title: "RESTful Web-Application development for Storage Infrastrature", - descriptions: [ - "Forked project from residency service, developed web-application for automation of storage operation, which has RESTful API with Django RESTful Framework(DRF).", - "The project started by the trigger of EOS of DellEMC ViPR-Controller and needed to develop alternative functionalities for the product, ViPR-Controller.", - "Starting hearing the storage operation with the product from the customer, took the lead of planning schedule, designing and developing of application, deployment, and maintenance of them.", - "The application mainly made from Python and Django, and having integration of Ansible, Git, and NoSQL(MongoDB) at the backend.", - "After the project had been settled, won personally \"2019 APJ Game Changer Award\".", - ], - skills: [ - "Python", - "Django", - "MongoDB", - "Git", - "Ansible", - ], - start: '2018/04', - end: '2019/05' - } - ] -} diff --git a/api-server/routes/cv.js b/api-server/routes/cv.js index a3277104..82deaecc 100644 --- a/api-server/routes/cv.js +++ b/api-server/routes/cv.js @@ -1,7 +1,13 @@ const express = require('express'); const router = express.Router(); +const axios = require('axios'); -require('json5/lib/register'); +const rapidApiUrl = 'https://linkedin-api8.p.rapidapi.com/'; +const linkedInUsername = 'hiroyuki-wakabayashi-61b661157'; +const url = rapidApiUrl + '?username=' + linkedInUsername; + +axios.defaults.headers.common['x-rapidapi-host'] = 'linkedin-api8.p.rapidapi.com'; +axios.defaults.headers.common['x-rapidapi-key'] = process.env.RAPID_API_KEY; router.get('/', (req, res, next) => { @@ -15,16 +21,24 @@ router.get('/', (req, res, next) => { }); }); -router.get('/certifications', function(req, res, next) { +router.get('/certifications', async (req, res, next) => { // #swagger.tags = ['CV'] // #swagger.summary = '/api/v1/cv/certifications' // #swagger.description = 'returns list of certifications with static contents' - const certifications = require(__dirname + "/../fixtures/payloads/certifications.json5"); + const certificates = await axios.get(url) + .then(response => { + return response.data.certifications + }) + .catch(error => { + console.log(error); + }) - res.header('Content-Type', 'application/json; charset=utf-8'); + res.header({ + 'Content-Type': 'application/json; charset=utf-8', + }); res.json({ "path": req.originalUrl, - "content": certifications.list.reverse() + "content": certificates }); }); @@ -41,16 +55,22 @@ router.get('/educations', function(req, res, next) { }); }); -router.get('/projects', function(req, res, next) { +router.get('/projects', async (req, res, next) => { // #swagger.tags = ['CV'] // #swagger.summary = 'returns list of projects with static contents' // #swagger.description = '/api/v1/cv/projects' - const projects = require(__dirname + "/../fixtures/payloads/projects.json5"); + const projects = await axios.get(url) + .then(response => { + return response.data.projects + }) + .catch(error => { + console.log(error); + }) res.header('Content-Type', 'application/json; charset=utf-8'); res.json({ "path": req.originalUrl, - "content": projects.list.reverse() + "content": projects }); }); @@ -65,7 +85,6 @@ router.get('/publications', function(req, res, next) { // TODO: make dynamically change with http/https elm.link = 'http://' + req.headers.host + '/api/v1/cv/publications/' + elm.filename }); - console.log(publications.list); res.header('Content-Type', 'application/json; charset=utf-8'); res.json({ diff --git a/web-frontend/src/pages/Cv.vue b/web-frontend/src/pages/Cv.vue index 5137f27e..aa2e7da2 100644 --- a/web-frontend/src/pages/Cv.vue +++ b/web-frontend/src/pages/Cv.vue @@ -43,33 +43,35 @@ axios.get('/api/v1/cv/certifications')

Selected Accomplishments

+

+ All of the project data has been fetched from LinkedIn profiles. +

-

{{ p.title }}
-
  • - {{ d }} -
  • +
    {{ p.description }}

    -
    Period: {{ p.start }} - {{ p.end }}
    +
    Period: {{ p.start.year }}/{{ p.start.month }} - {{ p.end.year }}/{{ p.end.month }}
    - Skills: {{ p.skills }} + +

    Certifications

    +

    + Certified badges are all stored in Credly Public Profile +

  • -
    - {{ c.date }}: {{ c.title }} -
    -
    - {{ c.date }}: {{ c.title }} +
    + {{ c.start.year }}/{{ c.start.month }}: {{ c.name }}