Client server refactor

This commit is contained in:
2024-12-13 11:57:42 -06:00
parent ea3a252bed
commit f99dc2a112
24 changed files with 695 additions and 0 deletions

View File

@@ -0,0 +1,77 @@
###################################################
# Modify these values to suit
###################################################
########################
# Contact info
########################
export CandidateName="First Middle Last"
export CandidatePhone="1 123 456 7890"
export CandidateRole="Jack of all trades"
export CandidateLocation="Place 1/Place 2"
export CandidateCity="City"
export CandidateCountry="Country"
export CandidateZipCode="Zip"
export CandidateSkypeID="SkypeID"
export CandidateEmail="candidate@domain.com"
export CandidateAvatar="URLTOAVATAR"
export CandidateWebsite="URLTOCANDIDATEWEbSITE"
########################
# Profile information
########################
export CandidateTagline="Your.Tagline.Here."
export CandidateOneLineSummary="Super awesome and stuff."
export CandidateLinkedin="https://www.linkedin.com/in/ab1"
export CandidateGithubUsername="ghuser"
export CandidateTwitterUsername="twxuser"
##########################################
# Layout/title page /formatting options
##########################################
export CandidateLogo=""
export SourceCode="https://git.knownelement.com/reachableceo/MarkdownResume-Pipeline"
export URLCOLOR="blue"
export PAGEBACKGROUND="./background3.pdf"
export JSONRESUME_THEME="professional"
##########################
# Candidate info sheet
##########################
export CandidatePreferredContactMethod="Email will get the fastest response."
export CandidateWorkAuthorization="US Citizen"
export CandidateEmploymentStatus="Not currently employed"
export CandidateCurrentLocation="City,State,Country etc"
export CandidateCurrentTimezone="Timezone"
export CandidateWorkableTimezones="Timezones"
export CandidateInterviewAvailability="Sometime"
export CandidateStartAvailability="Sometime"
export CandidateHighestEducation="Some education level"
export CandidateGraduationYear="Graduation year"
export CandidateSchoolName="School name"
export CandidateSchoolLocation="School location"
export CandidateLastProject="Last project"
export CandidateDOB="MM/DD"
export CandidateTotalExperience="epoch"
########################
#Compensation targets
########################
export CandidateRelocationNetMinimumAmount="1,987.11"
export CandidateRateSheetRemoteW2HourlyMinimum="\$12.34"
export CandidateRateSheetRemoteW2AnnualMinimum="\$123,456.00"
export CandidateRateSheetRemote1099HourlyMinimum="\$56.78"
export CandidateRateSheetRemoteW2HourlyPrefer="\$34.56"
export CandidateRateSheetRemoteW2AnnualPrefer="\$321,987.00"
export CandidateRateSheetRemote1099HourlyPrefer="\$78.90"
export CandidateCertifications=""
export CandidateReferences=""

View File

@@ -0,0 +1,329 @@
#!/bin/bash
#####################################################################################################
#JSON Resume
#####################################################################################################
export BUILD_OUTPUT_DIR="../build-output/JSONResume/"
export JSON_TEMPLATE_DIRECTORY="../Templates/JSONResume/"
###################################################################
# Modify the CandiateVariables.env file to refelct your information
###################################################################
###################################################
source "./CandidateVariables.env"
####################################################
####################################################
####################################################
#DO NOT CHANGE ANYTHING BELOW THIS LINE
####################################################
####################################################
####################################################
add_header()
{
echo "{" > $BUILD_OUTPUT_DIR/resume.json
}
add_meta_section()
{
cat << META >> $BUILD_OUTPUT_DIR/resume.json
"meta": {
"theme": "$JSONRESUME_THEME"
},
META
}
add_basics_section()
{
cat << BASICS >> $BUILD_OUTPUT_DIR/resume.json
"basics": {
"name": "$CandidateName",
"phone": "$CandidatePhone",
"label": "$CandidateRole",
"image": "$CandidateAvatar",
"summary": "$CandidateOneLineSummary",
"website": "$CandidateWebsite",
"url": "https://lordajax.com",
"email": "$CandidateEmail",
"location": {
"city": "$CandidateLocation",
"countryCode": "$CandidateCountry"
},
},
BASICS
}
add_work_section()
{
local input_file=$JSON_TEMPLATE_DIRECTORY/work.csv
cat << 'WORK_START'
"work": [
WORK_START
awk -F, 'NR>1 {
printf " {\n"
printf " \"name\": \"%s\",\n", $1
printf " \"position\": \"%s\",\n", $2
printf " \"url\": \"%s\",\n", $3
printf " \"startDate\": \"%s\",\n", $4
if ($5 != "") printf " \"endDate\": \"%s\",\n", $5
printf " \"summary\": \"%s\",\n", $6
printf " \"highlights\": [\n \"%s\"\n ]\n", gensub(/\|/, "\",\n \"", "g", $7)
printf " }%s\n", (NR==NR?"":",")
}' "$input_file"
cat << 'WORK_END'
],
WORK_END
}
add_volunteer_section()
{
local input_file="$JSON_TEMPLATE_DIRECTORY/volunteer.csv"
cat << 'VOLUNTEER_START' >> $BUILD_OUTPUT_DIR/resume.json
"volunteer": [
VOLUNTEER_START
awk -F, 'NR>1 {
printf " {\n"
printf " \"organization\": \"%s\",\n", $1
printf " \"position\": \"%s\",\n", $2
printf " \"url\": \"%s\",\n", $3
printf " \"startDate\": \"%s\",\n", $3
printf " \"endDate\": \"%s\",\n", $3
printf " \"summary\": \"%s\"\n", $4
printf " \"highlights\": ["
printf " " $7
printf " ]"
printf " }%s\n", (NR==NR?"":",")
}' "$input_file"
cat << 'VOLUNTEER_END'
],
VOLUNTEER_END
}
add_awards_section()
{
local input_file=$JSON_TEMPLATE_DIRECTORY/awards.csv
cat << 'AWARDS_START' >> $BUILD_OUTPUT_DIR/resume.json
"awards": [
AWARDS_START
awk -F, 'NR>1 {
printf " {\n"
printf " \"title\": \"%s\",\n", $1
printf " \"date\": \"%s\",\n", $2
printf " \"awarder\": \"%s\",\n", $3
printf " \"summary\": \"%s\"\n", $4
printf " }%s\n", (NR==NR?"":",")
}' "$input_file"
cat << 'AWARDS_END'
],
AWARDS_END
}
add_publications_section()
{
local input_file=$JSON_TEMPLATE_DIRECTORY/publications.csv
cat << 'PUBLICATIONS_START' >> $BUILD_OUTPUT_DIR/resume.json
"publications": [
PUBLICATIONS_START
awk -F, 'NR>1 {
printf " {\n"
printf " \"name\": \"%s\",\n", $1
printf " \"publisher\": \"%s\",\n", $2
printf " \"releaseDate\": \"%s\",\n", $3
printf " \"url\": \"%s\",\n", $4
printf " \"summary\": \"%s\"\n", $5
printf " }%s\n", (NR==NR?"":",")
}' "$input_file"
cat << 'PUBLICATIONS_END'
],
PUBLICATIONS_END
}
add_volunteer_section()
{
local input_file=$JSON_TEMPLATE_DIRECTORY/volunteer.csv
cat << 'VOLUNTEER_START' >> $BUILD_OUTPUT_DIR/resume.json
"volunteer": [
VOLUNTEER_START
awk -F, 'NR>1 {
printf " {\n"
printf " \"organization\": \"%s\",\n", $1
printf " \"position\": \"%s\",\n", $2
printf " \"url\": \"%s\",\n", $3
printf " \"startDate\": \"%s\",\n", $4
printf " \"summary\": \"%s\",\n", $5
printf " \"highlights\": [\n \"%s\"\n ]\n", gensub(/\|/, "\",\n \"", "g", $6)
printf " }%s\n", (NR==NR?"":",")
}' "$input_file"
cat << 'VOLUNTEER_END'
],
VOLUNTEER_END
}
add_skills_section()
{
local input_file="$JSON_TEMPLATE_DIRECTORY/skills.csv"
cat << 'SKILLS_START' >> $BUILD_OUTPUT_DIR/resume.json
"skills": [
SKILLS_START
awk -F, 'NR>1 {
printf " {\n"
printf " \"keywords\": [\n \"%s\"\n ],\n", gensub(/\|/, "\",\n \"", "g", $3)
printf " \"level\": \"%s\",\n", $2
printf " \"name\": \"%s\"\n", $1
printf " }%s\n", (NR==NR?"":",")
}' "$input_file"
cat << 'SKILLS_END'
],
SKILLS_END
}
add_education_section()
{
local input_file="$JSON_TEMPLATE_DIRECTORY/education.csv"
cat << 'EDUCATION_START' >> $BUILD_OUTPUT_DIR/resume.json
"education": [
EDUCATION_START
awk -F, 'NR>1 {
printf " {\n"
printf " \"institution\": \"%s\",\n", $1
if ($2 != "") printf " \"url\": \"%s\",\n", $2
printf " \"area\": \"%s\",\n", $3
printf " \"studyType\": \"%s\",\n", $4
printf " \"startDate\": \"%s\",\n", $5
printf " \"endDate\": \"%s\"", $6
if ($7 != "") printf ",\n \"score\": \"%s\"", $7
if ($8 != "") printf ",\n \"courses\": [\n \"%s\"\n ]", gensub(/\|/, "\",\n \"", "g", $8)
printf "\n }%s\n", (NR==NR?"":",")
}' "$input_file"
cat << 'EDUCATION_END'
],
EDUCATION_END
}
add_languages_section()
{
local input_file="$JSON_TEMPLATE_DIRECTORY/languages.csv"
cat << 'LANGUAGES_START' >> $BUILD_OUTPUT_DIR/resume.json
"languages": [
LANGUAGES_START
awk -F, 'NR>1 {
printf " {\n"
printf " \"language\": \"%s\",\n", $1
printf " \"fluency\": \"%s\"\n", $2
printf " }%s\n", (NR==NR?"":",")
}' "$input_file"
cat << 'LANGUAGES_END'
],
LANGUAGES_END
}
add_interests_section()
{
local input_file="$JSON_TEMPLATE_DIRECTORY/interests.csv"
cat << 'INTERESTS_START' >> $BUILD_OUTPUT_DIR/resume.json
"interests": [
INTERESTS_START
awk -F, 'NR>1 {
printf " {\n"
printf " \"name\": \"%s\",\n", $1
printf " \"keywords\": [\n \"%s\"\n ]\n", gensub(/\|/, "\",\n \"", "g", $2)
printf " }%s\n", (NR==NR?"":",")
}' "$input_file"
cat << 'INTERESTS_END'
],
INTERESTS_END
}
add_references_section()
{
local input_file="$JSON_TEMPLATE_DIRECTORY/references.csv"
cat << 'REFERENCES_START' >> $BUILD_OUTPUT_DIR/resume.json
"references": [
REFERENCES_START
awk -F, 'NR>1 {
printf " {\n"
printf " \"name\": \"%s\",\n", $1
printf " \"reference\": \"%s\"\n", $2
printf " }%s\n", (NR==NR?"":",")
}' "$input_file"
cat << 'REFERENCES_END'
]
REFERENCES_END
}
add_footer()
{
echo "}" >> $BUILD_OUTPUT_DIR/resume.json
}
main()
{
add_header
add_meta_section $JSON_TEMPLATE_DIRECTORY/meta.csv
add_basics_section $JSON_TEMPLATE_DIRECTORY/basics.csv
#add_profiles_section $JSON_TEMPLATE_DIRECTORY/profiles.csv
#add_work_section $JSON_TEMPLATE_DIRECTORY/work.csv
#add_volunteer_section $JSON_TEMPLATE_DIRECTORY/volunteer.csv
#add_education-section $JSON_TEMPLATE_DIRECTORY/education.csv
#add_awards_section $JSON_TEMPLATE_DIRECTORY/awards.csv
#add_certificates_section $JSON_TEMPLATE_DIRECTORY/certificates.csv
#add_publications_section $JSON_TEMPLATE_DIRECTORY/publications.csv
#add_skills_section $JSON_TEMPLATE_DIRECTORY/skills.csv
#add_languages_section $JSON_TEMPLATE_DIRECTORY/languages.csv
#add_interests_section $JSON_TEMPLATE_DIRECTORY/interests.csv
#add_references_section $JSON_TEMPLATE_DIRECTORY/references.csv
#add_projects_section $JSON_TEMPLATE_DIRECTORY/projects.csv
add_footer
}
main

View File

@@ -0,0 +1,59 @@
#!/usr/bin/env bash
# This is a demo script for the MarkdownResumePipeline server
# This script creates PDF/MSWord output from markdown/csv input
############################################
#Edit this file to reflect your information
############################################
souurce ./CandidateVariables.env
####################################################
####################################################
####################################################
#DO NOT CHANGE ANYTHING BELOW THIS LINE
####################################################
####################################################
####################################################
######################################################################################
# Setup key variables that will be used by the build-pipeline-server-markdown.sh script
######################################################################################
readonly MO_PATH="bash ../vendor/git.knownelement.com/ExternalVendorCode/mo/mo"
readonly BUILD_OUTPUT_DIR="../build-output/MarkdownResume/"
readonly BUILD_TEMP_DIR="../build-temp/MarkdownResume"
readonly BUILDYAML_JOBBOARD="$BUILD_TEMP_DIR/JobBoard.yml"
readonly BUILDYAML_CLIENTSUBMISSION="$BUILD_TEMP_DIR/ClientSubmission.yml"
readonly BUILDYAML_CANDIDATEINFOSHEET="$BUILD_TEMP_DIR/CandidateInfoSheet.yml"
CandidateInfoSheetMarkdownOutputFile="$BUILD_OUTPUT_DIR/CandidateInfoSheet.md"
CandidateInfoSheetPDFOutputFIle="$BUILD_OUTPUT_DIR/CandidateInfoSheet.pdf"
JobBoardMarkdownOutputFile="$BUILD_OUTPUT_DIR/job-board/Resume.md"
JobBoardPDFOutputFile="$BUILD_OUTPUT_DIR/job-board/Resume.pdf"
JobBoardMSWordOutputFile="$BUILD_OUTPUT_DIR/job-board/Resume.doc"
ClientSubmissionMarkdownOutputFile="$BUILD_OUTPUT_DIR/client-submission/Resume.md"
ClientSubmissionPDFOutputFile="$BUILD_OUTPUT_DIR/client-submission//Resume.pdf"
ClientSubmissionMSWordOutputFile="$BUILD_OUTPUT_DIR/client-submission/Resume.doc"
echo "Cleaning up from previous runs..."
rm $BUILDYAML_CANDIDATEINFOSHEET
rm $CandidateInfoSheetMarkdownOutputFile
rm $CandidateInfoSheetPDFOutputFIle
rm $BUILDYAML_JOBBOARD
rm $JobBoardMarkdownOutputFile
rm $JobBoardPDFOutputFile
rm $JobBoardMSWordOutputFile
rm $BUILDYAML_CLIENTSUBMISSION
rm $ClientSubmissionMarkdownOutputFile
rm $ClientSubmissionPDFOutputFile
rm $ClientSubmissionMSWordOutputFile
bash ../vendor/git.knownelement.com/reachableceo/MarkdownResume-Pipeline/build/build-pipeline-server-markdown.sh