lot of bugfixes, better migration script

This commit is contained in:
Amruth Pillai
2026-01-23 01:07:52 +01:00
parent a10954ed14
commit 35e2daa807
95 changed files with 3661 additions and 3645 deletions
+22 -76
View File
@@ -8,11 +8,7 @@ export const iconSchema = z
);
export const urlSchema = z.object({
url: z
.string()
.describe(
"The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). Leave blank to hide.",
),
url: z.string().describe("The URL to show as a link. Must be a valid URL with a protocol (http:// or https://)."),
label: z.string().describe("The label to display for the URL. Leave blank to display the URL as-is."),
});
@@ -21,7 +17,7 @@ export const pictureSchema = z.object({
url: z
.string()
.describe(
"The URL to the picture to display on the resume. Must be a valid URL with a protocol (http:// or https://). Leave blank to hide.",
"The URL to the picture to display on the resume. Must be a valid URL with a protocol (http:// or https://).",
),
size: z
.number()
@@ -65,18 +61,14 @@ export const customFieldSchema = z.object({
id: z.string().describe("The unique identifier for the custom field. Usually generated as a UUID."),
icon: iconSchema,
text: z.string().describe("The text to display for the custom field."),
link: z
.url()
.or(z.literal(""))
.describe("If the custom field should be a link, the URL to link to. Leave blank to hide.")
.catch(""),
link: z.url().or(z.literal("")).describe("If the custom field should be a link, the URL to link to.").catch(""),
});
export const basicsSchema = z.object({
name: z.string().describe("The full name of the author of the resume."),
headline: z.string().describe("The headline of the author of the resume."),
email: z.email().or(z.literal("")).describe("The email address of the author of the resume. Leave blank to hide."),
phone: z.string().describe("The phone number of the author of the resume. Leave blank to hide."),
email: z.email().or(z.literal("")).describe("The email address of the author of the resume."),
phone: z.string().describe("The phone number of the author of the resume."),
location: z.string().describe("The location of the author of the resume."),
website: urlSchema.describe("The website of the author of the resume."),
customFields: z.array(customFieldSchema).describe("The custom fields to display on the resume."),
@@ -86,9 +78,7 @@ export const summarySchema = z.object({
title: z.string().describe("The title of the summary of the resume."),
columns: z.number().describe("The number of columns the summary should span across."),
hidden: z.boolean().describe("Whether to hide the summary from the resume."),
content: z
.string()
.describe("The content of the summary of the resume. This should be a HTML-formatted string. Leave blank to hide."),
content: z.string().describe("The content of the summary of the resume. This should be a HTML-formatted string."),
});
export const baseItemSchema = z.object({
@@ -101,9 +91,7 @@ export const awardItemSchema = baseItemSchema.extend({
awarder: z.string().describe("The awarder of the award."),
date: z.string().describe("The date when the award was received."),
website: urlSchema.describe("The website of the award, if any."),
description: z
.string()
.describe("The description of the award. This should be a HTML-formatted string. Leave blank to hide."),
description: z.string().describe("The description of the award. This should be a HTML-formatted string."),
});
export const certificationItemSchema = baseItemSchema.extend({
@@ -111,9 +99,7 @@ export const certificationItemSchema = baseItemSchema.extend({
issuer: z.string().describe("The issuer of the certification."),
date: z.string().describe("The date when the certification was received."),
website: urlSchema.describe("The website of the certification, if any."),
description: z
.string()
.describe("The description of the certification. This should be a HTML-formatted string. Leave blank to hide."),
description: z.string().describe("The description of the certification. This should be a HTML-formatted string."),
});
export const educationItemSchema = baseItemSchema.extend({
@@ -124,9 +110,7 @@ export const educationItemSchema = baseItemSchema.extend({
location: z.string().describe("The location of the school or institution."),
period: z.string().describe("The period of time the education was obtained over."),
website: urlSchema.describe("The website of the school or institution, if any."),
description: z
.string()
.describe("The description of the education. This should be a HTML-formatted string. Leave blank to hide."),
description: z.string().describe("The description of the education. This should be a HTML-formatted string."),
});
export const experienceItemSchema = baseItemSchema.extend({
@@ -135,9 +119,7 @@ export const experienceItemSchema = baseItemSchema.extend({
location: z.string().describe("The location of the company or organization."),
period: z.string().describe("The period of time the author was employed at the company or organization."),
website: urlSchema.describe("The website of the company or organization, if any."),
description: z
.string()
.describe("The description of the experience. This should be a HTML-formatted string. Leave blank to hide."),
description: z.string().describe("The description of the experience. This should be a HTML-formatted string."),
});
export const interestItemSchema = baseItemSchema.extend({
@@ -177,9 +159,7 @@ export const projectItemSchema = baseItemSchema.extend({
name: z.string().min(1).describe("The name of the project."),
period: z.string().describe("The period of time the project was worked on."),
website: urlSchema.describe("The link to the project, if any."),
description: z
.string()
.describe("The description of the project. This should be a HTML-formatted string. Leave blank to hide."),
description: z.string().describe("The description of the project. This should be a HTML-formatted string."),
});
export const publicationItemSchema = baseItemSchema.extend({
@@ -187,17 +167,18 @@ export const publicationItemSchema = baseItemSchema.extend({
publisher: z.string().describe("The publisher of the publication."),
date: z.string().describe("The date when the publication was published."),
website: urlSchema.describe("The link to the publication, if any."),
description: z
.string()
.describe("The description of the publication. This should be a HTML-formatted string. Leave blank to hide."),
description: z.string().describe("The description of the publication. This should be a HTML-formatted string."),
});
export const referenceItemSchema = baseItemSchema.extend({
name: z.string().min(1).describe("The name of the reference, or a note such as 'Available upon request'."),
position: z.string().describe("The position or job title of the reference."),
website: urlSchema.describe("The website or LinkedIn profile of the reference, if any."),
phone: z.string().describe("The phone number of the reference."),
description: z
.string()
.describe(
"The description of the reference. Can be used to display a quote, a testimonial, etc. This should be a HTML-formatted string. Leave blank to hide.",
"The description of the reference. Can be used to display a quote, a testimonial, etc. This should be a HTML-formatted string.",
),
});
@@ -230,9 +211,7 @@ export const volunteerItemSchema = baseItemSchema.extend({
website: urlSchema.describe("The link to the organization or company, if any."),
description: z
.string()
.describe(
"The description of the volunteer experience. This should be a HTML-formatted string. Leave blank to hide.",
),
.describe("The description of the volunteer experience. This should be a HTML-formatted string."),
});
export const baseSectionSchema = z.object({
@@ -842,7 +821,7 @@ export const sampleResumeData: ResumeData = {
},
skills: {
title: "Technical Skills",
columns: 2,
columns: 1,
hidden: false,
items: [
{
@@ -899,42 +878,6 @@ export const sampleResumeData: ResumeData = {
level: 4,
keywords: ["Profiling", "Memory Management", "Frame Rate"],
},
{
id: "skill7",
hidden: false,
icon: "git-branch",
name: "Version Control",
proficiency: "Advanced",
level: 5,
keywords: ["Git", "Perforce", "Plastic SCM"],
},
{
id: "skill8",
hidden: false,
icon: "devices",
name: "Platform Development",
proficiency: "Advanced",
level: 4,
keywords: ["PC", "Console (PS5/Xbox)", "Mobile", "Switch"],
},
{
id: "skill9",
hidden: false,
icon: "network",
name: "Multiplayer/Networking",
proficiency: "Intermediate",
level: 3,
keywords: ["Photon", "Mirror", "Client-Server", "P2P"],
},
{
id: "skill10",
hidden: false,
icon: "palette",
name: "Shaders & VFX",
proficiency: "Intermediate",
level: 3,
keywords: ["Shader Graph", "HLSL", "Particle Systems"],
},
],
},
languages: {
@@ -960,7 +903,7 @@ export const sampleResumeData: ResumeData = {
},
interests: {
title: "Interests",
columns: 2,
columns: 1,
hidden: false,
items: [
{
@@ -1132,6 +1075,9 @@ export const sampleResumeData: ResumeData = {
id: "ref1",
hidden: false,
name: "Available upon request",
position: "",
website: { url: "", label: "" },
phone: "",
description: "",
},
],
-303
View File
@@ -1,303 +0,0 @@
{
"$schema": "https://rxresu.me/schema.json",
"version": "5.0.0",
"picture": {
"hidden": true,
"url": "",
"size": 100,
"rotation": 0,
"aspectRatio": 1,
"borderRadius": 0,
"borderColor": "rgba(0, 0, 0, 0.5)",
"borderWidth": 0,
"shadowColor": "rgba(0, 0, 0, 0.5)",
"shadowWidth": 0
},
"basics": {
"name": "Erica Engineer, E.I.T.",
"headline": "Environmental Engineering",
"email": "EricaE@uofga.edu",
"phone": "555-555-5555",
"location": "",
"website": {
"url": "https://issuu.com/eengineersample",
"label": "issuu.com/eengineersample"
},
"customFields": []
},
"summary": {
"title": "Summary of Qualifications",
"columns": 1,
"hidden": false,
"content": "<ul><li>Experienced in designing solutions that require integration of environmental and human health constraints compatible with economic growth and sustainable development</li><li>Skilled in a variety of modeling and drafting software, including AutoCAD and ALGOR</li><li>Efficient at utilizing project management and teamwork skills to promote overarching goals</li></ul>"
},
"sections": {
"profiles": {
"title": "Profiles",
"columns": 3,
"hidden": true,
"items": []
},
"experience": {
"title": "Relevant Work Experience",
"columns": 1,
"hidden": false,
"items": [
{
"id": "a0eae67b-7e5a-4ebf-bbef-fd48ee27ffd1",
"hidden": false,
"company": "ABC Pollution Control",
"position": "Environmental Engineering Intern",
"location": "Miami, FL",
"period": "June 2022 August 2022",
"website": {
"url": "",
"label": ""
},
"description": "<ul><li>Develop 3-5 bullet points using the following formula: 1 bullet point = task + skill + quantity + result/purpose</li><li>Make sure that your most recent experience is at the top of each section, working backwards from there</li></ul>"
},
{
"id": "4114031b-ebd2-4d6f-8e47-5b1675f59d10",
"hidden": false,
"company": "Golob & Legion Engineers",
"position": "Intern",
"location": "Athens, GA",
"period": "May 2021 August 2021",
"website": {
"url": "",
"label": ""
},
"description": "<ul><li>Start each bullet point with an action verb, and make sure they are present tense for present experiences, and past tense for past experiences</li></ul>"
}
]
},
"education": {
"title": "Education",
"columns": 1,
"hidden": false,
"items": [
{
"id": "5cdf4747-beea-40c6-be86-bf3bba92f024",
"hidden": false,
"school": "University of Georgia",
"degree": "Bachelor of Science",
"area": "Environmental Engineering",
"grade": "3.75/4.00",
"location": "Athens, GA",
"period": "May 2024",
"website": {
"url": "",
"label": ""
},
"description": "<p>Engineer in Training (E.I.T.), State of Georgia, 2022<br/>Passed Fundamentals of Engineering Exam, 2022</p>"
}
]
},
"projects": {
"title": "Relevant Project Experience",
"columns": 1,
"hidden": false,
"items": [
{
"id": "6c49e60d-b0b3-4f9f-aba5-065b09371b55",
"hidden": false,
"name": "Group Project, Environmental Engineering Design Methodology",
"period": "January 2023 March 2023",
"website": {
"url": "",
"label": ""
},
"description": "<ul><li>Develop 3-5 bullet points using the following formula: 1 bullet point = task + skill + quantity + result/purpose</li><li>Ex. Joined a 5-person team to analyze existing ecosystems and conduct environmental tests using ArcGIS for presentation to organizational leadership to inform future building plans</li></ul>"
}
]
},
"skills": {
"title": "Skills",
"columns": 2,
"hidden": false,
"items": [
{
"id": "0997cf16-43d1-449e-9f96-8a5484a46131",
"hidden": false,
"icon": "star",
"name": "Technical",
"proficiency": "",
"level": 0,
"keywords": ["AutoCAD", "AutoCAD LT", "Inventor", "SAP2000", "ArcGIS", "Solidworks"]
},
{
"id": "8341a8fc-59b6-480d-9796-d7254e3920b9",
"hidden": false,
"icon": "star",
"name": "Professional",
"proficiency": "",
"level": 0,
"keywords": [
"Project management methodologies",
"Technical writing",
"Oral/Visual Presentation",
"Laboratory Procedures"
]
}
]
},
"languages": {
"title": "Languages",
"columns": 2,
"hidden": true,
"items": []
},
"interests": {
"title": "Interests",
"columns": 2,
"hidden": true,
"items": []
},
"awards": {
"title": "Awards",
"columns": 1,
"hidden": true,
"items": []
},
"certifications": {
"title": "Certifications",
"columns": 1,
"hidden": true,
"items": []
},
"publications": {
"title": "Publications",
"columns": 1,
"hidden": true,
"items": []
},
"volunteer": {
"title": "Involvement Experience",
"columns": 1,
"hidden": false,
"items": [
{
"id": "ce2871f0-5350-4545-bf30-e2b6f9d0f1a7",
"hidden": false,
"organization": "The National Association of Environmental Professionals",
"location": "Athens, GA",
"period": "January 2022 Present",
"website": {
"url": "",
"label": ""
},
"description": "<ul><li>Try to focus on how each involvement experience will make you a better engineer, and talk about what you did, not what the organization is about</li></ul>"
},
{
"id": "5b631b63-e6d1-4484-b6c4-d59ebae013fd",
"hidden": false,
"organization": "The Society of Environmental Engineers, UGA",
"location": "Athens, GA",
"period": "August 2021 Present",
"website": {
"url": "",
"label": ""
},
"description": "<ul><li>Attend weekly meetings to focus on strengthening skill sets and developing as a professional</li></ul>"
},
{
"id": "3fbd7e53-6519-437a-8ae6-53de24b34a58",
"hidden": false,
"organization": "UGA Tennis Team, Co-Captain",
"location": "Athens, GA",
"period": "August 2020 May 2023",
"website": {
"url": "",
"label": ""
},
"description": "<ul><li>Provided leadership for 8 younger athletes related to team motivation, encouragement, and success</li><li>Maintain 10 hours of training per week in addition to full course load and travel for weekend events</li></ul>"
},
{
"id": "94adc4b4-2539-415c-a271-2571031f5650",
"hidden": false,
"organization": "Sigma Pi Kappa, UGA",
"location": "Athens, GA",
"period": "December 2021 December 2022",
"website": {
"url": "",
"label": ""
},
"description": ""
}
]
},
"references": {
"title": "References",
"columns": 1,
"hidden": true,
"items": []
}
},
"customSections": [
{
"id": "fdf72428-49d2-4869-ad46-efa5cf1e2be9",
"title": "Relevant Coursework",
"columns": 1,
"hidden": false,
"content": "<p>Engineering Hydrology and Hydraulics | Sustainable Building Design | Energy and Environmental Policy Analysis | GIS for Urban Engineering, Planning, and Development | Environmental Justice: Evidence and Impact</p>"
}
],
"metadata": {
"template": "onyx",
"layout": {
"sidebarWidth": 35,
"pages": [
{
"fullWidth": false,
"main": [
"summary",
"education",
"fdf72428-49d2-4869-ad46-efa5cf1e2be9",
"projects",
"experience",
"volunteer"
],
"sidebar": ["skills"]
}
]
},
"css": {
"enabled": false,
"value": ""
},
"page": {
"gapX": 4,
"gapY": 4,
"marginX": 18,
"marginY": 18,
"format": "a4",
"locale": "en-US"
},
"design": {
"level": {
"icon": "star",
"type": "circle"
},
"colors": {
"primary": "rgba(59, 130, 246, 1)",
"text": "rgba(0, 0, 0, 1)",
"background": "rgba(255, 255, 255, 1)"
}
},
"typography": {
"body": {
"fontFamily": "IBM Plex Serif",
"fontWeights": ["400", "600"],
"fontSize": 11,
"lineHeight": 1.5
},
"heading": {
"fontFamily": "Oswald",
"fontWeights": ["600"],
"fontSize": 15,
"lineHeight": 1.5
}
},
"notes": ""
}
}