# Project Overview
This project is a application that powers user interface of [my website](https://www.yunjaeoh.com).

## Stack overview
- Server side rendered React app which uses [NextJS](https://nextjs.org/)
- Written in [TypeScript](https://github.com/microsoft/TypeScript)
- Written in [TypeScript](https://github.com/microsoft/TypeScript)
- Uses [styled-component](https://github.com/styled-components) for styling 
- [material-ui](https://github.com/mui-org/material-ui) is used in combination with regular components
- [Husky](https://www.npmjs.com/package/husky) is used to ensure [eslint](https://github.com/eslint/eslint) and [commitlint](https://www.npmjs.com/package/@commitlint/cli) is run before each commit
- Uses [conventional commit](https://www.npmjs.com/package/@commitlint/config-conventional) for commit lint rule
- Uses [jest](https://jestjs.io/en/) and [enzyme](https://enzymejs.github.io/enzyme/) for test


## Run Project Locally
1. `git clone {this repo}`
2. `npm install or yarn`
3. `npm run dev (or npm run start if you want to create production optimized build`
4. `visit localhost:3000`


## Environment Variables

| Key                    | Value                                  | Note                                  |
| -----------------------|:---------------------------------------| :-------------------------------------|
| NEXT_PUBLIC_EXE_CTX    | String indicates execution enviornment | Required                              |
| NEXT_PUBLIC_MINIKUBE_IP| IP address of minikube cluster         | Required when running app in minikube |