Skip to content

Commit

Permalink
first commit
Browse files Browse the repository at this point in the history
  • Loading branch information
feder-cr committed Aug 15, 2024
0 parents commit 8ca7a83
Show file tree
Hide file tree
Showing 19 changed files with 2,171 additions and 0 deletions.
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
__pycache__
.venv
log
/src/__pycache__
test*
49 changes: 49 additions & 0 deletions main.py
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()
114 changes: 114 additions & 0 deletions plain_text_resume.yaml
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
98 changes: 98 additions & 0 deletions plain_text_resume_tempale.yaml
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]
Loading

0 comments on commit 8ca7a83

Please sign in to comment.