mirror of https://github.com/mitchell/mjfs-us.git
Add more projects and fixup existing ones
This commit is contained in:
parent
ee0b48af25
commit
e0a2e3df9d
|
@ -25,7 +25,12 @@ export default defineConfig({
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: "Personal Projects",
|
text: "Personal Projects",
|
||||||
items: [{ text: "mjfs.us", link: "/mjfs-us" }],
|
items: [
|
||||||
|
{ text: "mjfs.us", link: "/mjfs-us" },
|
||||||
|
{ text: "mjfs.us (Old)", link: "/mjfs-us-react" },
|
||||||
|
{ text: "lambdarouter", link: "/lambdarouter" },
|
||||||
|
{ text: "selfpass", link: "/selfpass" },
|
||||||
|
],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ const { text, copy, isSupported } = useClipboard();
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div v-if="isSupported" class="button-container">
|
<div v-if="isSupported" class="container">
|
||||||
<VPButton
|
<VPButton
|
||||||
theme="brand"
|
theme="brand"
|
||||||
class="button"
|
class="button"
|
||||||
|
@ -33,7 +33,7 @@ const { text, copy, isSupported } = useClipboard();
|
||||||
@click="copy(discord)"
|
@click="copy(discord)"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div v-else class="button-container">
|
<div v-else class="container">
|
||||||
<VPButton
|
<VPButton
|
||||||
theme="brand"
|
theme="brand"
|
||||||
class="button"
|
class="button"
|
||||||
|
@ -58,8 +58,9 @@ const { text, copy, isSupported } = useClipboard();
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.button {
|
.button {
|
||||||
margin: 6px;
|
margin: 6px;
|
||||||
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
.button-container {
|
.container {
|
||||||
margin: -6px;
|
margin: -6px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { VPButton } from "vitepress/theme";
|
||||||
|
const props = defineProps<{ href: string }>();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="container">
|
||||||
|
<VPButton
|
||||||
|
theme="brand"
|
||||||
|
text="Repository"
|
||||||
|
class="button"
|
||||||
|
:href="props.href"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.container {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
.button {
|
||||||
|
margin-top: 30px;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -1,15 +1,27 @@
|
||||||
import globals from "globals";
|
import globals from "globals";
|
||||||
import js from "@eslint/js";
|
import js from "@eslint/js";
|
||||||
import ts from "typescript-eslint";
|
import ts from "typescript-eslint";
|
||||||
|
import tsParser from "@typescript-eslint/parser";
|
||||||
import vue from "eslint-plugin-vue";
|
import vue from "eslint-plugin-vue";
|
||||||
|
import vueParser from "vue-eslint-parser";
|
||||||
import prettier from "eslint-config-prettier";
|
import prettier from "eslint-config-prettier";
|
||||||
|
|
||||||
export default [
|
export default [
|
||||||
{ files: ["**/*.{js,mjs,cjs,ts,vue}"] },
|
{ files: ["**/*.{js,mjs,cjs,ts,vue}"] },
|
||||||
{ ignores: [".vitepress/dist", ".vitepress/cache"] },
|
{ ignores: [".vitepress/dist", ".vitepress/cache"] },
|
||||||
{ languageOptions: { globals: globals.browser } },
|
|
||||||
js.configs.recommended,
|
js.configs.recommended,
|
||||||
...ts.configs.recommended,
|
...ts.configs.recommended,
|
||||||
...vue.configs["flat/recommended"],
|
...vue.configs["flat/recommended"],
|
||||||
prettier,
|
prettier,
|
||||||
|
{
|
||||||
|
files: ["*.vue", "**/*.vue"],
|
||||||
|
languageOptions: {
|
||||||
|
globals: globals.browser,
|
||||||
|
parser: vueParser,
|
||||||
|
parserOptions: {
|
||||||
|
parser: tsParser,
|
||||||
|
sourceType: "module",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
<script setup lang="ts">
|
||||||
|
import RepoButton from "./components/RepoButton.vue";
|
||||||
|
</script>
|
||||||
|
|
||||||
|
# lambdarouter
|
||||||
|
|
||||||
|
This package contains a router, written in Golang, capable of routing many AWS Lambda API gateway
|
||||||
|
requests to anything that implements the aws-lambda-go Handler interface, all in one Lambda
|
||||||
|
function. It plays especially well with go-kit's awslambda transport package.
|
||||||
|
|
||||||
|
This was originally designed for a work project where we wanted to consolidate code and Lambda
|
||||||
|
functions. It did the job and was used all over our codebase for some time. I imagine it has since
|
||||||
|
been retired.
|
||||||
|
|
||||||
|
<RepoButton href="https://github.com/whip-networks/lambdarouter" />
|
|
@ -0,0 +1,14 @@
|
||||||
|
<script setup lang="ts">
|
||||||
|
import RepoButton from "./components/RepoButton.vue";
|
||||||
|
</script>
|
||||||
|
|
||||||
|
# mjfs.us (React.js version)
|
||||||
|
|
||||||
|
The previous version of this site. I've built and rebuilt my personal website in many technologies,
|
||||||
|
but this is just a simple TypeScript React SPA. Before using TS, I put Flow up to the same task and
|
||||||
|
was pleasantly surprised, but ultimately won over in other projects by TS.
|
||||||
|
|
||||||
|
This site was hosted on S3 and cached/distributed around the US by Cloudfront, much like the new
|
||||||
|
site. It was also continuously deployed using TravisCI.
|
||||||
|
|
||||||
|
<RepoButton href="https://github.com/mitchell/mjfs.us" />
|
17
mjfs-us.md
17
mjfs-us.md
|
@ -1,7 +1,16 @@
|
||||||
|
<script setup lang="ts">
|
||||||
|
import RepoButton from "./components/RepoButton.vue";
|
||||||
|
</script>
|
||||||
|
|
||||||
# mjfs.us
|
# mjfs.us
|
||||||
|
|
||||||
This website is simple but effective and powered by [VitePress](https://vitepress.dev/). A static
|
When creating this newest site, I decided to stick with TypeScript but instead go with Vue for fun.
|
||||||
site generator that uses Vite and Vue under the hood.
|
Its powered by [VitePress](https://vitepress.dev/), a static site generator that uses Vite under the
|
||||||
|
hood to generate static HTML/JS/CSS assets from Markdown templates and Vue components. It's then
|
||||||
|
uploaded to S3 and distributed around the US by Cloudfront.
|
||||||
|
|
||||||
The content is composed with Markdown/Vue files then staticly rendered and deployed to AWS
|
So far I've really enjoyed writing the bulk of the content in Markdown, while being able to add in
|
||||||
S3/Cloudfront for max performance and SEO optimization.
|
Vue single file components where desired. Vue feels very lightweight to write and use, even in this
|
||||||
|
hybrid environment.
|
||||||
|
|
||||||
|
<RepoButton href="https://github.com/mitchell/mjfs-us" />
|
||||||
|
|
|
@ -15,9 +15,8 @@ semi-automated deployment via OTA updates.
|
||||||
|
|
||||||
## Technologies
|
## Technologies
|
||||||
|
|
||||||
- React-Native
|
- React-Native (TypeScript)
|
||||||
- TypeScript
|
- iOS Native Modules (Swift)
|
||||||
- Swift iOS Native Modules
|
- Android Native Modules (Java)
|
||||||
- Java Android Native Modules
|
|
||||||
- Serverless (AWS Lambda)
|
- Serverless (AWS Lambda)
|
||||||
- AWS DynamoDB & AppConfig
|
- AWS DynamoDB & AppConfig
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
"format": "prettier -w .",
|
"format": "prettier -w .",
|
||||||
"lint": "eslint .",
|
"lint": "eslint .",
|
||||||
"check": "bun run format && bun run lint && bun run typecheck",
|
"check": "bun run format && bun run lint && bun run typecheck",
|
||||||
"clean": "rm -rf ./.vitepress/cache/ ./.vitepress/dist/"
|
"clean": "rm -rf ./.vitepress/cache/ ./.vitepress/dist/",
|
||||||
|
"git:add": "bun run check && git add -p"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,11 +10,9 @@ engineering lead and primary architect.
|
||||||
|
|
||||||
## Technologies
|
## Technologies
|
||||||
|
|
||||||
- Elixir
|
- Phoenix (Elixir)
|
||||||
- C#
|
- React.js (TypeScript)
|
||||||
- Typescript
|
- .NET (C#)
|
||||||
- React.js
|
|
||||||
- Phoenix Framework
|
|
||||||
- PostgreSQL
|
- PostgreSQL
|
||||||
- OracleDB
|
- OracleDB
|
||||||
- SQL Server
|
- SQL Server
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
<script setup lang="ts">
|
||||||
|
import RepoButton from "./components/RepoButton.vue";
|
||||||
|
</script>
|
||||||
|
|
||||||
|
# selfpass
|
||||||
|
|
||||||
|
Selfpass was intended to be a self-hosted single-user password manager capable of
|
||||||
|
encrypting/decrypting credentials and storing them remotely through mutual, or two-way, TLS. All of
|
||||||
|
which is deployable locally or to popular cloud platforms such as GCP and AWS. Some of the
|
||||||
|
technologies used were go-kit, gRPC, Docker, Redis, and Flutter.
|
||||||
|
|
||||||
|
While developing it, after the encryption was implemented, I used this project as my own password
|
||||||
|
manager for while, before moving on to KeePassXC. I built it mostly out of interest in further
|
||||||
|
exploring Golang and trying out Dart/Flutter for native development.
|
||||||
|
|
||||||
|
<RepoButton href="https://github.com/mitchell/selfpass" />
|
|
@ -1,4 +1,4 @@
|
||||||
# TV Time
|
# TV Time (Whip Media)
|
||||||
|
|
||||||
## Backend Engineer
|
## Backend Engineer
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue