diff --git a/app/about/page.tsx b/app/about/page.tsx index e51c126..83c5707 100644 --- a/app/about/page.tsx +++ b/app/about/page.tsx @@ -13,8 +13,8 @@ export default function Resume() { const [projectsVisible, setProjectsVisible] = useState(true); return ( -
-
+
+

Mikayla Dobson

Software Engineer | Nashville, TN

@@ -25,36 +25,36 @@ export default function Resume() {
-
innocuous-symmetry
-
mikayla-dobson
+ innocuous-symmetry + mikayla-dobson
- - { skillsVisible ? : null } + { skillsVisible ? : null }
- - { experienceVisible ? : null } + { experienceVisible ? : null }
- { educationVisible ? ( -
+

Southern Methodist University

Dallas, TX - B.A. Music

@@ -66,11 +66,11 @@ export default function Resume() {
- - { projectsVisible ? : null } + { projectsVisible ? : null }
) diff --git a/components/Navbar/index.tsx b/components/Navbar/index.tsx index 056a7d6..eb3b908 100644 --- a/components/Navbar/index.tsx +++ b/components/Navbar/index.tsx @@ -2,7 +2,6 @@ import Link from 'next/link' import { InlineLogo, useColorShift } from '../logo' import { useEffect, useState } from 'react'; import { UseColorShiftReturnType } from '../logo/useColorShift'; -import { FaTrash } from "react-icons/fa"; import { RxActivityLog } from "react-icons/rx"; interface HoverState { @@ -102,7 +101,7 @@ export default function Navbar({ pageIsScrolled = false }) { -
setMobileMenuOpen(false)} className={`flex flex-col rounded-bl-lg justify-end md:hidden fixed top-24 w-[25vw] text-right place-self-end bg-[#131313] ${mobileMenuOpen ? 'translate-x-[75vw]' : 'translate-x-[100vw]'} transition-all duration-500`}> +
setMobileMenuOpen(false)} className={`flex flex-col z-50 rounded-bl-lg justify-end md:hidden fixed top-24 w-[25vw] text-right place-self-end bg-[#131313] ${mobileMenuOpen ? 'translate-x-[75vw]' : 'translate-x-[100vw]'} transition-all duration-500`}> {/*
*/} setMobileMenuOpen(false)} passHref href="/" className="w-full">

Home

diff --git a/components/Resume/Experience.tsx b/components/Resume/Experience.tsx index 59ded4a..2b6bc15 100644 --- a/components/Resume/Experience.tsx +++ b/components/Resume/Experience.tsx @@ -1,12 +1,9 @@ import Link from "next/link"; -import { useState } from "react"; - -const Experience = ({ visible }: { visible: boolean }) => { - const [showAll, setShowAll] = useState(false); +const Experience = () => { return ( -
-
+
+
Dropper Studio

Nashville, TN (hybrid) - Software Engineer

March 2023 - present

@@ -15,11 +12,11 @@ const Experience = ({ visible }: { visible: boolean }) => {

Building a full-stack e-commerce platform for the music industry. Experience includes: producing a functional proof of concept from design specifications; constructing a scalable, performant full-stack architecture; and project/team management skills.

- Learn more about my work with Dropper + Learn more about my work with Dropper
-
- Dization, Inc. +
+ Dization, Inc.

Pittsburgh, PA (remote) - Software Engineer (intern)

October 2022 - March 2023

@@ -27,10 +24,10 @@ const Experience = ({ visible }: { visible: boolean }) => {

Participated in the development of an enterprise project management solution. Built several new features, contributed to design and UX discussions, and took initiative on debugging efforts. Technologies included PHP, MySQL, jQuery, and Bootstrap.

- Learn more about my work with Dization + Learn more about my work with Dization
-
+

Metazu Studio

Nashville, TN (hybrid) - Software Engineer (consultant)

March 2022 - December 2022

@@ -40,7 +37,7 @@ const Experience = ({ visible }: { visible: boolean }) => {

Consulted on small teams for the design and engineering of full-stack web applications for clients. Used technologies including Node.js, React, MongoDB, and PostgreSQL.

- Go further back + See more about my experience
) } diff --git a/components/Resume/Projects.tsx b/components/Resume/Projects.tsx index c76b89d..6fcf471 100644 --- a/components/Resume/Projects.tsx +++ b/components/Resume/Projects.tsx @@ -1,6 +1,6 @@ -const Projects = ({ visible }: { visible: boolean }) => ( -
-
+const Projects = () => ( +
+

Subsequent

May 2023 - present

TypeScript, Tone.js

@@ -10,7 +10,7 @@ const Projects = ({ visible }: { visible: boolean }) => (

A tool for music creators to explore generative music composition. Composed of an engine that wraps around Tone.js, allowing the end user to specify parameters for indefinite generative music output. To be published as an NPM package, including providers to be consumed in front-end web frameworks.

-
+

Recipin

October 2022 - present

React, Express, TypeScript, PostgreSQL

diff --git a/components/Resume/Skills.tsx b/components/Resume/Skills.tsx index 456a680..4446242 100644 --- a/components/Resume/Skills.tsx +++ b/components/Resume/Skills.tsx @@ -1,9 +1,9 @@ import { RxChevronDown } from "react-icons/rx"; import Link from "next/link"; -const Skills = ({ visible }: { visible: boolean }) => ( -
-
+const Skills = () => ( +
+

Strong:

@@ -40,7 +40,7 @@ const Skills = ({ visible }: { visible: boolean }) => (
-
+

Experienced:

@@ -49,9 +49,9 @@ const Skills = ({ visible }: { visible: boolean }) => (
+ Micropython

Flask

Flet

- Micropython
@@ -63,10 +63,10 @@ const Skills = ({ visible }: { visible: boolean }) => (
-

PostgreSQL

+ PostgreSQL

MySQL

-

MongoDB

-

Caching with Redis

+ MongoDB + Caching with Redis
@@ -86,7 +86,7 @@ const Skills = ({ visible }: { visible: boolean }) => (
-
+

Learning:

@@ -144,7 +144,7 @@ const Skills = ({ visible }: { visible: boolean }) => (
-
+

Soft Skills:

diff --git a/package.json b/package.json index c06b638..736b411 100644 --- a/package.json +++ b/package.json @@ -9,9 +9,11 @@ "lint": "next lint" }, "dependencies": { + "@aws-sdk/client-s3": "^3.367.0", "@mdx-js/loader": "^2.3.0", "@mdx-js/react": "^2.3.0", "@next/mdx": "^13.4.4", + "@supabase/supabase-js": "^2.26.0", "autoprefixer": "10.4.14", "eslint": "8.41.0", "eslint-config-next": "^12.0.4", diff --git a/public/resume/Mikayla Resume 0623.docx b/public/resume/Mikayla Resume 0623.docx index be18fc0..7f55bd7 100644 Binary files a/public/resume/Mikayla Resume 0623.docx and b/public/resume/Mikayla Resume 0623.docx differ diff --git a/public/resume/Mikayla Resume 0623.pdf b/public/resume/Mikayla Resume 0623.pdf index 137c9d9..396fad4 100644 Binary files a/public/resume/Mikayla Resume 0623.pdf and b/public/resume/Mikayla Resume 0623.pdf differ diff --git a/server/index.ts b/server/index.ts new file mode 100644 index 0000000..4f5afdf --- /dev/null +++ b/server/index.ts @@ -0,0 +1,3 @@ +export default async function main() { + return await Promise.resolve(12); +} diff --git a/server/services/s3.ts b/server/services/s3.ts new file mode 100644 index 0000000..825890b --- /dev/null +++ b/server/services/s3.ts @@ -0,0 +1,19 @@ +import { S3Client } from "@aws-sdk/client-s3"; + +export default function createS3Client() { + if (typeof process.env.S3_ACCESS_KEY !== "string") { + throw new Error("S3_ACCESS_KEY is not defined"); + } + + if (typeof process.env.S3_SECRET !== "string") { + throw new Error("S3_SECRET is not defined"); + } + + return new S3Client({ + region: "us-east-1", + credentials: { + accessKeyId: process.env.S3_ACCESS_KEY, + secretAccessKey: process.env.S3_SECRET, + }, + }); +} diff --git a/server/services/supabase.ts b/server/services/supabase.ts new file mode 100644 index 0000000..f40935b --- /dev/null +++ b/server/services/supabase.ts @@ -0,0 +1,13 @@ +import { createClient } from "@supabase/supabase-js"; + +export default function supabaseClient() { + if (typeof process.env.SUPABASE_URL !== "string") { + throw new Error("SUPABASE_URL is not defined"); + } + + if (typeof process.env.SUPABASE_KEY !== "string") { + throw new Error("SUPABASE_KEY is not defined"); + } + + return createClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY); +}