Mercurial
view mrjunejune/test/snapshots/tools_index.html.snapshot @ 94:092afa595764
[MrJuneJune] Added Integration tests.
| author | June Park <parkjune1995@gmail.com> |
|---|---|
| date | Fri, 02 Jan 2026 18:13:32 -0800 |
| parents | |
| children | 1c446ab6f945 |
line wrap: on
line source
HTTP/1.1 301 Moved Permanently Content-Type: text/plain Content-Length: 0 Connection: close Body: ="font/woff" crossorigin> <link rel="preload" href="/public/fonts/more-sugar.extras.otf" as="font" type="font/otf" crossorigin> <link rel="preload" href="/public/fonts/more-sugar.regular.otf" as="font" type="font/otf" crossorigin> <link rel="preload" href="/public/fonts/more-sugar.thin.otf" as="font" type="font/otf" crossorigin> <link rel="preload" href="/base.css" as="style" /> <link rel="stylesheet" href="/base.css" /> <style> .container { max-width: 800px; margin: 2rem auto; padding: 2rem; } .converter-section { border-radius: 8px; border: 2px solid var(--lightgray); padding: 2rem; margin-bottom: 2rem; } .converter-section h2 { margin-top: 0; color: var(--black); } .file-input-wrapper { margin: 1rem 0; } .file-input-wrapper label { display: block; margin-bottom: 0.5rem; font-weight: 600; } input[type="file"] { width: 50%; padding: 0.5rem; border: 2px dashed #ccc; border-radius: 4px; background: white; } button { background: var(--purple); font-family: "More Thin", sans-serif; color: var(--gray-gradient); border: none; padding: 0.75rem 1.5rem; border-radius: 4px; cursor: pointer; font-size: 1rem; margin-top: 1rem; } button:hover { background: var(--orange); } button:disabled { background: var(--gray); cursor: not-allowed; } .result { margin-top: 1rem; padding: 1rem; background: white; border-radius: 4px; display: none; } .result.show { display: block; } .result.success { border-left: 4px solid var(--blue); } .result.error { border-left: 4px solid var(--red); } .download-link { display: inline-block; margin-top: 0.5rem; color: var(--awesome); text-decoration: none; } .download-link:hover { text-decoration: underline; } .loading { display: none; margin-top: 1rem; } .loading.show { display: block; } </style> </head> <body> <style> :root { --header-background: var(--white); --header-color: rgb(var(--black)); --link-hover-accent: var(--awesome); } /* Fixed icon in top left corner */ #themeToggle { position: fixed; top: 20px; left: 20px; background: var(--header-background); display: flex; align-items: center; border-radius: 50%; cursor: pointer; z-index: 1000; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); transition: transform 0.2s ease; } #themeToggle:hover { transform: scale(1.05); } /* Professional header */ header { margin: auto; padding: 1.5em 1em; font-family: "More", sans-serif; box-shadow: 0 2px 8px rgba(var(--black), 5%); width: 720px; max-width: calc(100% - 2em); text-align: center; } header h1 { margin: 0; font-size: 1.8em; font-weight: 700; letter-spacing: -0.5px; } header h1 a { text-decoration: none; color: var(--header-color); } header h1 a::before { display: none; } /* Mobile responsiveness */ @media (max-width: 720px) { #themeToggle { top: 15px; left: 15px; } header { padding: 1em; } header h1 { font-size: 1.5em; } } @media (max-width: 480px) { #themeToggle { top: 10px; left: 10px; } #themeToggle img { height: 40px; width: 40px; } header h1 { font-size: 1.3em; } } #logo { width: 300px; } /* 1. DEFINE THE DEFAULTS (Light Mode) */ :root { --logo-invert: invert(0); --epi-grayscale: grayscale(0) brightness(1); } /* 2. MANUAL DARK OVERRIDE */ html.dark { --logo-invert: invert(1); --epi-grayscale: grayscale(1); } /* 3. MANUAL LIGHT OVERRIDE */ html.light-mode { --logo-invert: invert(0); --epi-grayscale: brightness(2.9) grayscale(1); } /* 4. SYSTEM PREFERENCE */ @media (prefers-color-scheme: dark) { :root:not(.light-mode) { --logo-invert: invert(1); } } /* 5. APPLY TO ELEMENTS */ #logo { -webkit-filter: var(--logo-invert); filter: var(--logo-invert); transition: filter 0.3s ease; } .epi-logo { -webkit-filter: var(--epi-grayscale); filter: var(--epi-grayscale); transition: filter 0.3s ease; } </style> <div id="themeToggle"> <img id="epiChan" class="epi-logo" aria-label="Toggle dark mode" src="/public/epi_all_colors.svg" height="50" width="50"> </div> <header> <h1><a href="/">MrJuneJune</a></h1> </header> <script src="/index.js"></script> <div class="container"> <h1>File Format Converter</h1> <p>Convert your images and videos to different formats using FFmpeg</p> <div class="converter-section"> <h2>Image to WebP Converter</h2> <p>Upload an image file (PNG, JPG, GIF, etc.) to convert it to WebP format</p> <div class="file-input-wrapper"> <label for="imageInput">Choose an image file:</label> <input type="file" id="imageInput" accept="image/*"> </div> <button id="convertImageBtn" onclick="convertImageToWebP()">Convert to WebP</button> <div class="loading" id="imageLoading">Converting... Please wait.</div> <div class="result" id="imageResult"> <p id="imageMessage"></p> <a id="imageDownload" class="download-link" style="display: none;">Download WebP Image</a> </div> </div> <div class="converter-section"> <h2>Video to MP4 Converter</h2> <p>Upload a video file (AVI, MOV, MKV, etc.) to convert it to MP4 format</p> <div class="file-input-wrapper"> <label for="videoInput">Choose a video file:</label> <input type="file" id="videoInput" accept="video/*"> </div> <button id="convertVideoBtn" onclick="convertVideoToMP4()">Convert to MP4</button> <div class="loading" id="videoLoading">Converting... Please wait.</div> <div class="result" id="videoResult"> <p id="videoMessage"></p> <a id="videoDownload" class="download-link" style="display: none;">Download MP4 Video</a> </div> </div> <div style="display: flex; align-items: center; justify-content: center; margin: 30px 0px;"> <small>© 2026 June Park</small> </div> </div> <script src="/tools/file_converter/index.js"></script> </body> </htmlLocation: /tools ition-style">SOFTWARE ENGINEER</p> <p class="entry-date-style">Oct, 2024 - Present</p> </div> <ul class="description-style"> <li> Took initiative on Channel Value Rule, targeting the 16% of ad traffic with both app and web destinations to improve value attribution and ROI. </li> <li> Built full-stack features using React and Hack/GraphQL, contributing to scalable, production-ready systems. </li> <li> Partnered with data science to design A/B tests and analyze revenue impact of ads destination. </li> <li> Proposed and implemented alpha improvements to internal testing infrastructure, reducing test time by 50% and enhancing developer velocity. </li> </ul> <div class="flex-box"> <p class="entry-title-style"> <a href="https://www.wmg.com/">Warner Music Group</a> </p> <p class="entry-location-style">Toronto, ON, Canada</p> </div> <div class="flex-box"> <p class="entry-position-style">TECHNICAL LEAD ENGINEER</p> <p class="entry-date-style">July, 2023 - Sept, 2024</p> </div> <ul class="description-style"> <li> Implements <a href="https://bazel.build/">bazel </a>structure for the company for TypeScript and JavaScript code base for hermiticity and stablishing standards for JavaScript and </li> <li> TypeScript testing and code structures. </li> <li> Led a team of five engineers in building GraphQL endpoints for client-facing applications using Apollo and AppSync, supporting over 2000 RPS and auto scaling depending on request values. </li> <li> Improved application response times by up to 85% for graphQL response by updating database schema and SQL queries, eliminating N+1 queries and lack of indexes. </li> <li> Developed CI/CD pipelines for backend structures. </li> <li> Designed infrastructure for pub/sub, caching, and media processing logic. </li> </ul> <div class="flex-box"> <p class="entry-title-style"> <a href="https://www.google.com/">Google</a> </p> <p class="entry-location-style">Toronto, ON, Canada</p> </div> <div class="flex-box"> <p class="entry-position-style">SOFTWARE ENGINEER</p> <p class="entry-date-style">Feb, 2022 - July 2023</p> </div> <ul class="description-style"> <li> Implements and maintained new features relating to App Script across google workspace platform including Gmail, sheets, and Docs.</li> <li> Improved a response time and render time of App Script hover card components.</li> <li> Collaborated with a team of developers to ensure timely and accurate delivery of features.</li> <li> Conducted user testing and gathered feedback to iterate on features for optimal user experience.</li> </ul> <div class="flex-box"> <p class="entry-title-style"> <a href="https://www.everlywell.com/">Everlywell</a> </p> <p class="entry-location-style">Toronto, ON, Canada</p> </div> <div class="flex-box"> <p class="entry-position-style">SOFTWARE ENGINEER</p> <p class="entry-date-style">December, 2020 - Jan, 2022</p> </div> <ul class="description-style"> <li> Maintained Amazon amplify apps to create and deploy React web applications for companies such as <a href="https://brooklynnets.everlywell.com/">NBA</a>, <a href="https://tinder.everlywell.com/">Tinder</a>, and other companies for COVID-19 at-home test kits.</li> <li> Implemented a script that helps accurately access and refund unused covid test kits; helping company save up to 200,000 USD.</li> <li> Created several Rails controllers for internal purposes; mocking end to end user experience for QA, mass refund features for CX department, and more, ultimately reducing support tickets amount by 50 percent.</li> <li> Implemented an audit table to help debug problems and logged which process was responsible for the change of the record using PaperTrail gems</li> </ul> <div class="flex-box"> <p class="entry-title-style"> <a href="https://www.spiria.com/">Spiria</a> </p> <p class="entry-location-style">Oakville, ON, Canada</p> </div> <div class="flex-box"> <p class="entry-position-style">SOFTWARE ENGINEER</p> <p class="entry-date-style">October, 2018 - October, 2020</p> </div> <ul class="description-style"> <li> Constructed RESTful API endpoints in multiple different frameworks such as Django, Ruby on Rails, and Flask and automated API documentation process using swagger. </li> <li> Designed custom rake tasks for importing production data into newly updated data structure to meet client's needs. </li> <li> Maintained or updated staging/productions servers. Debugged problems in production postgres database using ssh and postgres console on Heroku or AWS servers </li> <li> Collaborated in creating automation python scripts for websites and application using selenium covering for QA eliminating 80% of QA's manual work </li> </ul> <div class="flex-box"> <p class="entry-title-style"> <a href="https://www.apexscore.ai/">Apex Score</a> </p> <p class="entry-location-style">Oakville, ON, Canada</p> </div> <div class="flex-box"> <p class="entry-position-style">SOFTWARE ENGINEER</p> <p class="entry-date-style">September, 2019 - October, 2020</p> </div> <ul class="description-style"> <li> Developed custom Shapley value regression model to calculate importance of independent variables of data sets using sklearn, pandas, and numpy. </li> <li> Created custom image uploader to Amazon s3 bucket using boto3 library. </li> <li> Built RESTful API application using Flask framework and automated extensive API documentation pages using flask-restplus, pytest, and swagger, covering 95% of the code base. </li> <li> Created an interactive graph using D3.js in Vue.js with data from Flask backend API. </li> </ul> <div class="sub-header"> <h2 class="section-style"> Education </h2> <div class="line"></div> </div> <div class="flex-box"> <p class="entry-title-style"> University of British Columbia </p> <p class="entry-location-style">Kelowna, British Columbia</p> </div> <div class="flex-box"> <p class="entry-position-style">BACHELOR OF SCIENCE IN PHYSICS</p> <p class="entry-date-style">2014 - 2018</p> </div> <div id="footer"></div> </main> <div style="display: flex; align-items: center; justify-content: center; margin: 30px 0px;"> <small>© 2026 June Park</small> </div> <script href="index.js"></script> </body> </html>