Information
The resume builder application / project will be something that can be built really quick and should have a couple amazing functionalities built into it!
Without going too deep into the scope, I am going to start going through existing online resume builders and see if I can get the general gist of what everyone is looking for. I am thinking that this should not be too complex of a project and we should aim to modularize as much of it as we can.
Scope
The project scope will be split into three areas of focus, data, render and print. The data aspect will focus on the storage and information that the CV/Resume will need, the render will be the output and display of the CV and finally the print would be the finished product, i.e print ready, maybe in png, pdf, ect…
Data
The data for the resume builder will be stored locally through the local storage, we will most likely use nanostores to manage that for us. According to some of the searching that I have done, the base line of data management seems to be a JSONResume schema, which follows this breakdown.
meta
- Metadata for the Resumetool
- The current tool that is using the meta data.
basics
- Basic information for the person.name
- The name of the person on the resumelabel
- Personal label / title of that person, i.eWeb Developer
,Full Stack Developer
image
- Personal profile of the person, usually a headshot.summary
- A general summary for that person, limited to a couple sentences.website
- The person’s official website.email
- The person’s email.location
- JSON Objectcity
- City where the person lives.countryCode
- Nation that the person is from/lives.
- profiles - Array of user profiles
0
- First Index of the arrayusername
- Username of the profileurl
- URL of the profilenetwork
- Network for the profile, including Github, Twitter, ect..
education
- An array for the education.endDate
- Date for the endstartDate
- Date for the startarea
- The area that the person studied.studyType
- The type of program, Masters, Degree, Cert. ect..institution
- Location of where the program/education was offered.
references
- An array for the referencesreference
- A small summary for the referencename
- Name of the person that is in relationship to the reference
skills
- An array for the skillskeywords
- An array for the keywords related to this skilllevel
- Level of the skill, i.e Senior, Jr,name
- Name of the skill, Frontend, Backend, Devops
awards
- An array for the rewardstitle
- Title of the awarddate
- The date when the award was given.awarder
- The entity that gave the award.summary
- The summary of the reward
work
- An array of the companies that you have worked for.name
- Name of the company.position
- Position held at the companyurl
- URL of the company.startDate
- Start date of when you started at the company.endDate
- The end date of when you stopped working at the company.summary
- The summary of the job.
- interests - Array
name
- Name of the interest.keywords
- Array of keywords related to that interest.
- projects - Array
name
- Name of the project.startDate
- Start date of the project.endDate
- End date of the project.summary
- Summary of the project.highlights
- Array of additional information.url
- URL of the project
We can break down each category further, meta
seems to be for the meta storage data, including theme choice. language and image references.
Render
I am thinking we will do the rendering inside of React and maybe follow the basic markdown concept for the resume. We might not want to let people inject direct HTML to avoid XSS attacks and if any developer really wants to add their own HTML, they could just output the existing resume and then edit it locally near the end.
I suppose within the render concept would be the style library, I am looking at using tailwind because it seems to be straightforward and easy, with almost all the basic css being very user friendly.
The input of the resume data might be better in markdown? I will come back to this part when I get a bit closer towards the render aspect. In this first run of setting up the resume builder, I am thinking we would use the interweave react library, which safely renders HTML and markdown.
The print will definitely be near the end as it might be a bit rough to resolve. I really do not want to mess around with PDF output right now.
Notes
There were some talks about integrating GPT into the resume building aspect, but I am thinking that should be near the end, once the three core scopes above are addressed, then we can go back to the data scope and start to add GPT functionality. In this situation, we already have several cloud functions that are ready to deploy into a production environment, so we could utilize those when we reach this area.
Developer
The location for the codebase will be under src/module/CV within the KBVE.com repo! We were debating if we wanted to create a whole new repository for the project but it might be a bit too much?