-
-
Notifications
You must be signed in to change notification settings - Fork 82
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 8ca7a83
Showing
19 changed files
with
2,171 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
__pycache__ | ||
.venv | ||
log | ||
/src/__pycache__ | ||
test* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
from email import utils | ||
from pathlib import Path | ||
import yaml | ||
from src.manager_facade import FacadeManager | ||
from src.config import Config | ||
from src.resume import Resume | ||
from src.style_manager import StyleManager | ||
from src.resume_generator import ResumeGenerator | ||
from src.utils import HTML_to_PDF | ||
|
||
@staticmethod | ||
def validate_secrets(secrets_yaml_path: Path): | ||
try: | ||
with open(secrets_yaml_path, 'r') as stream: | ||
secrets = yaml.safe_load(stream) | ||
except yaml.YAMLError as exc: | ||
raise Exception(f"Error reading secrets file {secrets_yaml_path}: {exc}") | ||
except FileNotFoundError: | ||
raise Exception(f"Secrets file not found: {secrets_yaml_path}") | ||
mandatory_secrets = ['openai_api_key'] | ||
for secret in mandatory_secrets: | ||
if secret not in secrets: | ||
raise Exception(f"Missing secret in file {secrets_yaml_path}: {secret}") | ||
if not secrets['openai_api_key']: | ||
raise Exception(f"OpenAI API key cannot be empty in secrets file {secrets_yaml_path}.") | ||
return secrets['openai_api_key'] | ||
|
||
def main(): | ||
api_key = validate_secrets(Path("secrets.yaml")) | ||
config = Config( | ||
STRINGS_MODULE_RESUME_PATH=Path("resume_prompt/strings_feder-cr.py").resolve(), | ||
STRINGS_MODULE_RESUME_JOB_DESCRIPTION_PATH=Path("resume_job_description_prompt/strings_feder-cr.py").resolve(), | ||
STRINGS_MODULE_NAME="strings_feder_cr", | ||
STYLES_DIRECTORY=Path("resume_style").resolve(), | ||
RESUME_TEMPLATE_PATH=Path("plain_text_resume.yaml").resolve(), | ||
OUTPUT_FILE_PATH=Path("resume.html").resolve(), | ||
API_KEY=api_key | ||
) | ||
with open(config.RESUME_TEMPLATE_PATH, "r") as file: | ||
plain_text_resume = file.read() | ||
resume_object = Resume(plain_text_resume) | ||
style_manager = StyleManager() | ||
resume_generator = ResumeGenerator() | ||
manager = FacadeManager(config, style_manager, resume_generator, resume_object) | ||
manager.run() | ||
HTML_to_PDF(config.OUTPUT_FILE_PATH) | ||
|
||
if __name__ == "__main__": | ||
main() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,114 @@ | ||
personal_information: | ||
name: federico | ||
surname: elia | ||
date_of_birth: "10/04/2001" | ||
country: ireland | ||
city: dublin | ||
address: dublin_3_ireland | ||
phone_prefix: "+353" | ||
phone: "892338335" | ||
email: [email protected] | ||
github: https://github.com/feder-cr | ||
linkedin: https://www.linkedin.com/in/federico-elia-5199951b6/ | ||
|
||
|
||
education_details: | ||
- degree: bachelor's | ||
university: university_of_genoa | ||
gpa: "4/4" | ||
graduation_year: "2023" | ||
field_of_study: computer_science | ||
exam: | ||
information_theory_and_inference: "4/4" | ||
algorithm_analysis_and_design: "4/4" | ||
object_oriented_languages_and_programming: "4/4" | ||
linear_algebra_and_numerical_analysis: "4/4" | ||
database: "4/4" | ||
|
||
experience_details: | ||
- position: co_founder_software_engineer | ||
company: blockchain_rush | ||
employment_period: "01/2022 - present" | ||
location: italy | ||
industry: blockchain_technology | ||
key_responsibilities: | ||
- responsibility_1: co_founded_led_startup_specializing_in_app_and_software_development_with_focus_on_blockchain_technology | ||
- responsibility_2: provided_blockchain_consultations_to_various_companies_enhancing_software_capabilities_with_secure_decentralized_solutions | ||
- responsibility_3: developed_managed_blockchain_based_applications_integrating_cutting_edge_technology_to_meet_client_needs | ||
skills_acquired: | ||
- blockchain | ||
- software_development | ||
- consulting | ||
|
||
- position: research_intern | ||
company: university_of_genoa | ||
employment_period: "11/2023 - 03/2024" | ||
location: genoa_italy | ||
industry: iot_security | ||
key_responsibilities: | ||
- responsibility_1: conducted_research_on_iot_security_focusing_on_binary_instrumentation_runtime_monitoring | ||
- responsibility_2: performed_in_depth_study_of_mqtt_protocol_falco_security_tool | ||
- responsibility_3: developed_software_components_including_mqtt_packet_analysis_library_falco_adapter_rml_monitor_in_prolog | ||
skills_acquired: | ||
- iot_security | ||
- binary_instrumentation | ||
- runtime_monitoring | ||
- mqtt_protocol | ||
- prolog | ||
|
||
- position: software_engineer | ||
company: galliera_hospital | ||
employment_period: "02/2023 - 08/2023" | ||
location: genoa_italy | ||
industry: healthcare | ||
key_responsibilities: | ||
- responsibility_1: integrated_enforced_robust_security_protocols | ||
- responsibility_2: developed_maintained_critical_software_tool_for_password_validation_used_by_1600_employees | ||
skills_acquired: | ||
- cybersecurity | ||
- software_development | ||
- password_management | ||
|
||
|
||
projects: | ||
- name: linkedin_aihawk | ||
description: created_ai_driven_tool_to_automate_personalize_job_applications_on_linkedin 2000 stars | ||
link: "https://github.com/feder-cr/linkedin_aihawk" | ||
|
||
- name: parse_mqttv5_packet | ||
description: developed_nodejs_module_for_parsing_mqtt_packets | ||
link: "https://github.com/feder-cr/parse-mqttv5-packet" | ||
|
||
- name: hibp_downloader | ||
description: developed_automated_tool_for_downloading_updating_local_have_i_been_pwned_database | ||
link: "https://github.com/feder-cr/HIBP_downloader" | ||
|
||
|
||
achievements: | ||
- name: blockchain_application_development | ||
description: led_development_of_blockchain_based_application_utilized_by_over_100_clients_in_finance_sector_enhancing_transaction_security_and_operational_efficiency | ||
|
||
- name: healthcare_security_integration | ||
description: successfully_integrated_enforced_robust_security_protocols_for_healthcare_system_ensuring_safety_of_sensitive_data_for_1600_employees | ||
|
||
- name: iot_security_research | ||
description: contributed_to_iot_security_research_at_university_of_genoa_leading_to_publication_of_paper_on_binary_instrumentation_techniques | ||
|
||
|
||
certifications: | ||
- c1_english | ||
|
||
languages: | ||
- language: italian | ||
proficiency: native | ||
- language: english | ||
proficiency: professional | ||
|
||
|
||
interests: | ||
- full_stack_development | ||
- software_architecture | ||
- iot | ||
- runtime_monitoring | ||
- cloud_technologies | ||
- bjj |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
personal_information: | ||
name: [Name] | ||
surname: [Surname] | ||
date_of_birth: "[DD/MM/YYYY]" | ||
country: [Country] | ||
city: [City] | ||
address: [Address] | ||
phone_prefix: "[+Country Code]" | ||
phone: "[Phone Number]" | ||
email: [Email Address] | ||
github: [GitHub URL] | ||
linkedin: [LinkedIn URL] | ||
|
||
education_details: | ||
- degree: [Degree Type] | ||
university: [University Name] | ||
gpa: "[GPA]" | ||
graduation_year: "[Graduation Year]" | ||
field_of_study: [Field of Study] | ||
exam: | ||
[Course Name]: "[Grade]" | ||
[Course Name]: "[Grade]" | ||
[Course Name]: "[Grade]" | ||
- degree: [Degree Type] | ||
university: [University Name] | ||
gpa: "[GPA]" | ||
graduation_year: "[Graduation Year]" | ||
field_of_study: [Field of Study] | ||
exam: | ||
[Course Name]: "[Grade]" | ||
[Course Name]: "[Grade]" | ||
[Course Name]: "[Grade]" | ||
|
||
experience_details: | ||
- position: [Job Title] | ||
company: [Company Name] | ||
employment_period: "[MM/YYYY - MM/YYYY or Present]" | ||
location: [Location] | ||
industry: [Industry] | ||
key_responsibilities: | ||
- [Responsibility Description] | ||
- [Responsibility Description] | ||
- [Responsibility Description] | ||
skills_acquired: | ||
- [Skill] | ||
- [Skill] | ||
- [Skill] | ||
|
||
- position: [Job Title] | ||
company: [Company Name] | ||
employment_period: "[MM/YYYY - MM/YYYY or Present]" | ||
location: [Location] | ||
industry: [Industry] | ||
key_responsibilities: | ||
- [Responsibility Description] | ||
- [Responsibility Description] | ||
- [Responsibility Description] | ||
skills_acquired: | ||
- [Skill] | ||
- [Skill] | ||
- [Skill] | ||
|
||
projects: | ||
- name: [Project Name] | ||
description: [Project Description] | ||
link: "[Project URL]" | ||
- name: [Project Name] | ||
description: [Project Description] | ||
link: "[Project URL]" | ||
- name: [Project Name] | ||
description: [Project Description] | ||
link: "[Project URL]" | ||
|
||
achievements: | ||
- name: [Achievement Title] | ||
description: [Achievement Description] | ||
- name: [Achievement Title] | ||
description: [Achievement Description] | ||
- name: [Achievement Title] | ||
description: [Achievement Description] | ||
- name: [Achievement Title] | ||
description: [Achievement Description] | ||
|
||
certifications: | ||
- [Certification Name] | ||
|
||
languages: | ||
- language: [Language] | ||
proficiency: [Proficiency Level] | ||
- language: [Language] | ||
proficiency: [Proficiency Level] | ||
- language: [Language] | ||
proficiency: [Proficiency Level] | ||
|
||
interests: | ||
- [Interest] | ||
- [Interest] | ||
- [Interest] |
Oops, something went wrong.