Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Tony Narlock's CV

Live Version v1 branch (react cv, vue.js cv)

Version 2 underway!


Let's see what's the latest and greatest for both of these.

This time we're using typescript and wiring-in webpack from the ground up.


Package Source Website Status
React packages/react/ 🟡 In-progress
Vue packages/vue/ Unstarted
Angular packages/angular/ Unstarted
Common code packages/lib/ N/A 🟡 In-progress
Scripts packages/data/ N/A ✔️ Stable


$ yarn

# Optional: Sync GitHub contributions to data/scraped/
$ yarn github  # Assure GITHUB_API_TOKEN is set

# React
$ cd packages/react/
$ yarn start

# Vue
$ cd packages/vue/
$ yarn start

# Angular
$ cd packages/angular/
$ yarn global add @angular/cli
$ yarn start

# inside any of the 3, to build:
$ yarn build  # Build to dist/

Optional: Pull GitHub contributions

This isn't required as stub data preexists in packages/data/scraped.

Create a GitHub Personal Access Token and set it in env, ideally .bashrc / .zshrc / etc. via export GITHUB_API_TOKEN=INSERT_TOKEN_HERE. Check env | grep GITHUB_API to verify terminal has the variable set.

Edit your username in packages/scripts/github.ts and run yarn github in the project root.

Project specific tasks

react, vue, angular

Start dev server / live reload:

yarn start

Build to dist/:

yarn build

Lint project

yarn lint

Package updates (requires ncu):

yarn ncu

# Apply package updates to `package.json`
yarn ncu -u


Download latest github color mapping:

$ yarn workspace @tony/cv-data run github-colors


Run jest tests

yarn workspace @tony/cv-lib run jest

Global tasks

Install all packages:

$ yarn

Lint all packages:

yarn workspaces run lint


  • packages/angular/: Angular

  • packages/vue/: Vue.js version

  • packages/react/: React version

  • packages/lib/: Common code (reducers/filters code, initial data collections)

    lib/search.ts - Search manager for filtering / faceting state. Each application uses this to hold raw state (of all activities, places), current filters, and filters/items available with filters applied.

    This essentially replaces what a global storage, such as redux/vuex. So there's no need to have three systems. And this is custom tailored to the job being done. Which in a sense increases readability.

    It has write inherent write protection and safety as it's just an ordinary ES2015 class

  • packages/scripts/: GitHub Scraper

  • packages/data/: initial data

    • my_actors.json: Actors noun, person, place, thing, etc.
    • my_activities.json: Activities verb, action, event, happening in relation to an actor
    • scraped/: data pulled from remote API's (such as scripts/github.js)
      • gh_activities.json: Pull requests for users except yourself / your own repos. Same format as my_activities.json, combined.
      • gh_actors.json: GitHub Repos. Same schema as my_actors.json), combined.

Version 2 (Under development)

  • Written from scratch

    No vue-cli or create-react-app

    Better understanding, control of what's being used

    Spin-off core webpack starter projects. MIT licensed. Fork to add your own loaders / wire-in to your project:

  • Typescript

    • Typed webpack configuration (webpack.config.ts)


    • React: Typed components

    • Libraries / Common code: Typed Github commit fetcher

    • Libraries / Common code: Typed data structures

  • Lazy loaded, split chunks, smart initialization

    Utilize new splitting, dynamic import, React.lazy support in Webpack 4.x (

    Care taken to load essential stuff first and packages like moment (in itself split) last. Some experimentation is done here to find a balance of how to present the interface initially and can be tweaked overtime.

  • Smaller stuff

    Internal data props using underscores now are camelCase, e.g. repo_url -> repoUrl


@IonicaBizao/github-colors - For data/gh_colors.json (via yarn workspace @tony/cv-data run github-colors), license MIT

You can’t perform that action at this time.