mirror of
https://github.com/soconnor0919/resume-cv.git
synced 2026-02-04 21:06:31 -05:00
Compare commits
3 Commits
release-22
...
release-24
| Author | SHA1 | Date | |
|---|---|---|---|
| 685b5f5847 | |||
| 56f3bbca75 | |||
| e21e945cd5 |
12
README.md
12
README.md
@@ -24,9 +24,9 @@ Replace `USERNAME` with your GitHub username after forking.
|
||||
|
||||
```
|
||||
.
|
||||
├── cv.tex # Extended CV template
|
||||
├── resume.tex # Resume template (subset of CV)
|
||||
├── shared/ # Shared components
|
||||
├── cv.tex # Extended CV template
|
||||
├── resume.tex # Resume template (subset of CV)
|
||||
├── shared/ # Shared components
|
||||
│ ├── style/ # Common LaTeX styles
|
||||
│ │ └── common.tex # Shared style definitions
|
||||
│ └── sections/ # Shared content sections
|
||||
@@ -35,8 +35,10 @@ Replace `USERNAME` with your GitHub username after forking.
|
||||
│ ├── skills.tex
|
||||
│ ├── coursework.tex
|
||||
│ └── publications.tex
|
||||
├── .secrets # Personal information (git-ignored)
|
||||
├── build-local.sh # Local build script
|
||||
├── .secrets # Personal information (git-ignored)
|
||||
├── build-local.sh # Local build script
|
||||
├── build-docker.sh # Docker build script
|
||||
├── generate-standalone-cv.sh # Generate standalone CV PDF
|
||||
└── subfiles/
|
||||
└── refs.bib # BibTeX references
|
||||
```
|
||||
|
||||
88
build-docker.sh
Executable file
88
build-docker.sh
Executable file
@@ -0,0 +1,88 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Source secrets if the file exists
|
||||
if [ -f .secrets ]; then
|
||||
source .secrets
|
||||
else
|
||||
echo "Warning: .secrets file not found. Building public version only."
|
||||
fi
|
||||
|
||||
# Set defaults for missing variables
|
||||
PERSONAL_NAME=${PERSONAL_NAME:-$(whoami)}
|
||||
PERSONAL_EMAIL=${PERSONAL_EMAIL:-""}
|
||||
PERSONAL_WEBSITE=${PERSONAL_WEBSITE:-""}
|
||||
PERSONAL_SCHOOL_EMAIL=${PERSONAL_SCHOOL_EMAIL:-""}
|
||||
PERSONAL_PHONE=${PERSONAL_PHONE:-""}
|
||||
PERSONAL_HOME_ADDRESS_LINE1=${PERSONAL_HOME_ADDRESS_LINE1:-""}
|
||||
PERSONAL_HOME_ADDRESS_LINE2=${PERSONAL_HOME_ADDRESS_LINE2:-""}
|
||||
PERSONAL_SCHOOL_ADDRESS_LINE1=${PERSONAL_SCHOOL_ADDRESS_LINE1:-""}
|
||||
PERSONAL_SCHOOL_ADDRESS_LINE2=${PERSONAL_SCHOOL_ADDRESS_LINE2:-""}
|
||||
PERSONAL_SCHOOL_ADDRESS_LINE3=${PERSONAL_SCHOOL_ADDRESS_LINE3:-""}
|
||||
|
||||
# Function to cleanup
|
||||
cleanup() {
|
||||
rm -f *.aux *.log *.out *.fls *.fdb_latexmk *.synctex.gz *.bbl *.blg personal_info.tex
|
||||
if [ -f personal_info.tex.bak ]; then
|
||||
mv personal_info.tex.bak personal_info.tex
|
||||
fi
|
||||
}
|
||||
|
||||
trap cleanup EXIT
|
||||
mkdir -p output
|
||||
|
||||
# Backup current personal_info.tex if it exists
|
||||
if [ -f personal_info.tex ]; then
|
||||
cp personal_info.tex personal_info.tex.bak
|
||||
fi
|
||||
|
||||
# Build private version (if secrets are available)
|
||||
if [ -n "$PERSONAL_PHONE" ] || [ -n "$PERSONAL_HOME_ADDRESS_LINE1" ] || [ -n "$PERSONAL_SCHOOL_ADDRESS_LINE1" ]; then
|
||||
echo "Building private version..."
|
||||
cat > personal_info.tex << EOL
|
||||
% Private version of personal information
|
||||
\newcommand{\personalName}{$PERSONAL_NAME}
|
||||
\newcommand{\personalEmail}{$PERSONAL_EMAIL}
|
||||
\newcommand{\personalPhone}{$PERSONAL_PHONE}
|
||||
\newcommand{\personalWebsite}{$PERSONAL_WEBSITE}
|
||||
\newcommand{\personalSchoolEmail}{$PERSONAL_SCHOOL_EMAIL}
|
||||
\newcommand{\personalHomeAddressLineOne}{$PERSONAL_HOME_ADDRESS_LINE1}
|
||||
\newcommand{\personalHomeAddressLineTwo}{$PERSONAL_HOME_ADDRESS_LINE2}
|
||||
\newcommand{\personalSchoolAddressLineOne}{$PERSONAL_SCHOOL_ADDRESS_LINE1}
|
||||
\newcommand{\personalSchoolAddressLineTwo}{$PERSONAL_SCHOOL_ADDRESS_LINE2}
|
||||
\newcommand{\personalSchoolAddressLineThree}{$PERSONAL_SCHOOL_ADDRESS_LINE3}
|
||||
EOL
|
||||
|
||||
docker build --platform linux/arm64 -t resume-builder .
|
||||
docker run --platform linux/arm64 --rm \
|
||||
-v "$(pwd):/workspace" \
|
||||
-v "$(pwd)/output:/workspace/output" \
|
||||
resume-builder bash -c "latexmk -pdf -file-line-error -halt-on-error -interaction=nonstopmode resume.tex cv.tex && mv *.pdf output/"
|
||||
|
||||
mv output/resume.pdf output/resume-private.pdf 2>/dev/null || true
|
||||
mv output/cv.pdf output/cv-private.pdf 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# Build public version
|
||||
echo "Building public version..."
|
||||
cat > personal_info.tex << EOL
|
||||
% Public version of personal information
|
||||
\newcommand{\personalName}{$PERSONAL_NAME}
|
||||
\newcommand{\personalEmail}{$PERSONAL_EMAIL}
|
||||
\newcommand{\personalPhone}{~}
|
||||
\newcommand{\personalWebsite}{$PERSONAL_WEBSITE}
|
||||
\newcommand{\personalSchoolEmail}{$PERSONAL_SCHOOL_EMAIL}
|
||||
\newcommand{\personalHomeAddressLineOne}{~}
|
||||
\newcommand{\personalHomeAddressLineTwo}{~}
|
||||
\newcommand{\personalSchoolAddressLineOne}{~}
|
||||
\newcommand{\personalSchoolAddressLineTwo}{~}
|
||||
\newcommand{\personalSchoolAddressLineThree}{~}
|
||||
EOL
|
||||
|
||||
docker run --platform linux/arm64 --rm \
|
||||
-v "$(pwd):/workspace" \
|
||||
-v "$(pwd)/output:/workspace/output" \
|
||||
resume-builder bash -c "latexmk -pdf -file-line-error -halt-on-error -interaction=nonstopmode resume.tex cv.tex && mv resume.pdf output/resume-public.pdf && mv cv.pdf output/cv-public.pdf"
|
||||
|
||||
echo "Build complete!"
|
||||
echo "Generated files in output/:"
|
||||
ls -l output/
|
||||
@@ -30,11 +30,35 @@ cleanup() {
|
||||
trap cleanup EXIT
|
||||
mkdir -p output
|
||||
|
||||
# Check if required LaTeX tools are available locally
|
||||
check_latex_tools() {
|
||||
command -v latexmk >/dev/null 2>&1 || return 1
|
||||
command -v pdflatex >/dev/null 2>&1 || return 1
|
||||
return 0
|
||||
}
|
||||
|
||||
# Function to build using local tools
|
||||
build_local() {
|
||||
latexmk -pdf -file-line-error -halt-on-error -interaction=nonstopmode "$1"
|
||||
}
|
||||
|
||||
# Function to build using Docker
|
||||
build_docker() {
|
||||
echo "Local LaTeX tools not found, falling back to Docker..."
|
||||
./build-docker.sh
|
||||
exit $?
|
||||
}
|
||||
|
||||
# Backup current personal_info.tex if it exists
|
||||
if [ -f personal_info.tex ]; then
|
||||
cp personal_info.tex personal_info.tex.bak
|
||||
fi
|
||||
|
||||
# Check if we can use local tools, otherwise fall back to Docker
|
||||
if ! check_latex_tools; then
|
||||
build_docker
|
||||
fi
|
||||
|
||||
# Build private version (if secrets are available)
|
||||
if [ -n "$PERSONAL_PHONE" ] || [ -n "$PERSONAL_HOME_ADDRESS_LINE1" ] || [ -n "$PERSONAL_SCHOOL_ADDRESS_LINE1" ]; then
|
||||
echo "Building private version..."
|
||||
@@ -52,14 +76,11 @@ if [ -n "$PERSONAL_PHONE" ] || [ -n "$PERSONAL_HOME_ADDRESS_LINE1" ] || [ -n "$P
|
||||
\newcommand{\personalSchoolAddressLineThree}{$PERSONAL_SCHOOL_ADDRESS_LINE3}
|
||||
EOL
|
||||
|
||||
docker build --platform linux/arm64 -t resume-builder .
|
||||
docker run --platform linux/arm64 --rm \
|
||||
-v "$(pwd):/workspace" \
|
||||
-v "$(pwd)/output:/workspace/output" \
|
||||
resume-builder bash -c "latexmk -pdf -file-line-error -halt-on-error -interaction=nonstopmode resume.tex cv.tex && mv *.pdf output/"
|
||||
build_local resume.tex
|
||||
build_local cv.tex
|
||||
|
||||
mv output/resume.pdf output/resume-private.pdf 2>/dev/null || true
|
||||
mv output/cv.pdf output/cv-private.pdf 2>/dev/null || true
|
||||
mv resume.pdf output/resume-private.pdf 2>/dev/null || true
|
||||
mv cv.pdf output/cv-private.pdf 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# Build public version
|
||||
@@ -78,10 +99,11 @@ cat > personal_info.tex << EOL
|
||||
\newcommand{\personalSchoolAddressLineThree}{~}
|
||||
EOL
|
||||
|
||||
docker run --platform linux/arm64 --rm \
|
||||
-v "$(pwd):/workspace" \
|
||||
-v "$(pwd)/output:/workspace/output" \
|
||||
resume-builder bash -c "latexmk -pdf -file-line-error -halt-on-error -interaction=nonstopmode resume.tex cv.tex && mv resume.pdf output/resume-public.pdf && mv cv.pdf output/cv-public.pdf"
|
||||
build_local resume.tex
|
||||
build_local cv.tex
|
||||
|
||||
mv resume.pdf output/resume-public.pdf
|
||||
mv cv.pdf output/cv-public.pdf
|
||||
|
||||
echo "Build complete!"
|
||||
echo "Generated files in output/:"
|
||||
|
||||
4
cv.tex
4
cv.tex
@@ -61,7 +61,7 @@
|
||||
\textbf{Computer Science Research Assistant - Chemical Engineering Department} \hfill \textbf{Aug 2023 – Present}
|
||||
\begin{itemize}[noitemsep,topsep=2pt]
|
||||
\item Designed and implemented an automated data collection system using a microcontroller and C++ to collect real-time temperature, pressure, and humidity data in harsh environments
|
||||
\item Currently integrating robotic arm into existing coffee research project to automate repeated brewing-related tasks and data collection, freeing up researchers from unskilled repetitive work
|
||||
\item Currently assisting in robotic hardware integration into an existing coffee research project to automate repeated brewing-related tasks and data collection, freeing up researchers from unskilled repetitive work
|
||||
\end{itemize}
|
||||
|
||||
\textbf{Computer Science Teaching Assistant} \hfill \textbf{Jan 2024 - Present}
|
||||
@@ -70,7 +70,7 @@
|
||||
\item Assisted students with classwork, homework, and lab assignments, focusing on teaching students how to find the answers to their questions using existing documentation
|
||||
\end{itemize}
|
||||
|
||||
\textbf{Engineering Study Spot Tutor - Computer Science} \hfill \textbf{Aug 2024 - Present}
|
||||
\textbf{Engineering Study Spot Tutor - Computer Science} \hfill \textbf{Aug 2024 - Dec 2024}
|
||||
\begin{itemize}[noitemsep,topsep=2pt]
|
||||
\item Held drop-in help sessions for computer science students throughout all stages of the curriculum, assisting with introductory courses, software engineering, and systems programming assignments
|
||||
\end{itemize}
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
\textbf{Computer Science Research Assistant - Chemical Engineering Department} \hfill \textbf{Aug 2023 – Present}
|
||||
\begin{itemize}[noitemsep,topsep=2pt]
|
||||
\item Designed and implemented an automated data collection system using a microcontroller and C++ to collect real-time temperature, pressure, and humidity data in harsh environments
|
||||
\item Currently integrating robotic arm into existing coffee research project to automate repeated brewing-related tasks and data collection, freeing up researchers from unskilled repetitive work
|
||||
\item Currently assisting in robotic hardware integration into an existing coffee research project to automate repeated brewing-related tasks and data collection, freeing up researchers from unskilled repetitive work
|
||||
\end{itemize}
|
||||
|
||||
\textbf{Teaching Assistant \& Engineering Tutor} \hfill \textbf{Aug 2023 - Present}
|
||||
|
||||
Reference in New Issue
Block a user