Imported from HackerEarth - Awards
Best Use of Google Cloud Platform
Forth Place Overall
One of the largest issues that students face when looking for a job is creating a good résumé. Almost every career adviser will say that each résumé should be tailored to the job that it being sent to, which is great in theory. The problem for students in particular is that the jobs they are applying for are frequently different enough to require almost completely different résumés. For example, a freshman or sophomore computer science student may be applying to help desk and information technology internships that require they highlight customer service and software knowledge. On the flip side, junior and senior computer science students may be applying for the software engineering jobs where they would like to start a career. For these jobs, students need to highlight their programming experience and be able to talk about various projects they have done for classes.The problem is, many students forget which projects they have worked on for what classes in the 2 to 3 years between when they do it and when they actually need it for their résumé, much less what skills they learned or what challenges they had. Enter Résumé Buffet, a website designed to both act as an experience repository for students to update as soon as they do something, and a résumé creator and manager so students can create and manage different versions of their résumé for different types of positions.
What it does
Simply stated, Résumé Buffet is a website that allows users to store all of the information that they think might be important for a résumé later on, then pick and choose which items they want to add to each résumé. There are two main interfaces: the profile section where users add things like their contact information, work experience, education, certifications, summary information, etc., and the résumés section where the user can create, edit, and manage different versions of their résumé. The idea is that every possible piece of information that a user may want to include is added to their profile as soon as they do it, then they can added it to their résumé with a simple click of a button on the résumé page.
A great example of this is if you get a technical certification for a programming language, but you aren't yet ready to start applying to programming jobs. The idea of Résumé Buffet is that you can add that certification to your profile without adding it to the current version(s) of your résumés that may be being sent out to a retail job, or an information technology internship, or maybe to your school as part of an application to be an RA or TA. Then, whenever you are ready to start applying for programming jobs, not only do you remember that you have the certification (as it is already in your profile), but you also have all of the relevant information about it like the date you got it, and maybe some of the core competencies that you got certified for. All you then need to do to add it to your new programming job résumé is to click a button, and you don't need to go back and find all that information that was fresh when you first got the certification.
Beyond just creating résumés, Résumé Buffet is designed as a platform to maintain and manage résumés as well. The software is designed to allow every aspect of the résumé to be customized quickly and easily for each résumé, while still allowing consistency across all different versions. For example, if you are applying to a job at your school, you would likely include your student email on the résumé, whereas for a job at Google you may use your Gmail account, and for a job at Microsoft you may use your Outlook account. The idea with Résumé Buffet is that each of these three different résumés could contain similar information, but could be made at different times for different purposes. Then, if something changes (for example, the semester ended and and your GPA went up), instead of changing that on all of your different résumés (or worse yet, forgetting to change it on one, and submitting an outdated résumé), you just change it once on your profile and every résumé that contains your GPA updates in sync. This means no more hunting down all 50 variations of your résumé to make little changes.
How I built it
Challenges I ran into
The biggest challenge we had was trying to figure out how to track every individual item as an id, and not as a value. This is beneficial because it means that if a user changes a value once, all of the résumés that contain that item will update. Getting, then keeping track of those ids for each user, however, was a struggle that took some time and thinking to work out. In addition, we had issues writing and reading large amounts of data to the database at once due to how Firebase handles load balancing, so that is something that we attempted to work around for the Hackathon, and will need to actually solve if we continue this project.
Accomplishments that I'm proud of
In the end, we managed to get a functional demo together. The scope of the project was such that we were concerned that we would not be able to have anything ready to demo, just because there were so many parts that needed to work together to even get the simplest of information saved, selected, and displayed on a résumé. In addition, from a software engineering perspective, we were proud that we were able to plan out many of the functions and the database architecture in such a way that we can largely use the same code even for more complex résumé items like work experience and education (where each item has multiple sub-items).
What I learned
Overall, the project was fascinating because there were so many parts that all interacted with each other at slightly different times in the process, in particular the authentication system and the database. I ended up learning a lot about how data and attributes were stored in both of them, when I was writing the scripts to update the user's profile. In addition, this was by far the largest project I had made using Google Firebase up to this point, so I also learned a lot more about the Google Firebase API and how to maximize the efficiency of the database calls.
What's next for Resume Buffet
For sake of time, only 1-value résumé items were added to the profile (contact information, summaries, certifications, etc.). The idea is that future versions of Résumé Buffet are able to handle recursive data types, like work experience where each item may have sub items (for example, each company and job title may have multiple bullet points). In addition, as discussed in the challenges section, one of the major priorities is figuring out how to save and retrieve whole résumés. Finally, a more advanced user interface that allows users to control the placement, order, and layout of the items in the résumé and the résumé itself is in order.