create the initial project structure

This commit is contained in:
Sina Atalay 2023-08-20 20:04:31 +02:00
parent c17f8c585a
commit c240fe90b8
8 changed files with 185 additions and 0 deletions

0
rendercv/__init__.py Normal file
View File

View File

100
rendercv/data/content.py Normal file
View File

@ -0,0 +1,100 @@
from pydantic import BaseModel, HttpUrl
from pydantic_extra_types.phone_numbers import PhoneNumber
from typing import Literal
from datetime import date
class Organization(BaseModel):
# 1) Mandotory user inputs:
name: str
# 2) Optional user inputs:
url: HttpUrl
class Location(BaseModel):
# 1) Mandotory user inputs:
city: str
country: str
# 2) Optional user inputs:
state: str
class Skill(BaseModel):
# 1) Mandotory user inputs:
name: str
# 2) Optional user inputs:
details: str
class Activity(BaseModel):
# 1) Mandotory user inputs:
organization: Organization
position: str
start_date: date
end_date: date
location: Location
# 2) Optional user inputs:
company_url: HttpUrl
highlights: list[str]
class TestScore(BaseModel):
# 1) Mandotory user inputs:
name: str
score: str
# 2) Optional user inputs:
url: HttpUrl
details: str
date: date
class Project(BaseModel):
# 1) Mandotory user inputs:
name: str
start_date: date
end_date: date
location: Location
# 2) Optional user inputs:
url: HttpUrl
highlights: list[str]
class WorkExperience(BaseModel):
# 1) Mandotory user inputs:
company: Organization
position: str
start_date: date
end_date: date
location: Location
# 2) Optional user inputs:
highlights: list[str]
class Education(BaseModel):
# 1) Mandotory user inputs:
institution: Organization
study_type: str
area: str
location: Location
start_date: date
end_date: date
# 2) Optional user inputs:
gpa: str
transcript_url: HttpUrl
highlights: list[str]
class SocialNetwork(BaseModel):
# 1) Mandotory user inputs:
network: Literal["LinkedIn", "GitHub", "Twitter", "Facebook", "Instagram"]
username: str
url: HttpUrl
class CurriculumVitae(BaseModel):
# 1) Mandotory user inputs:
name: str
# 2) Optional user inputs:
email: str
phone: PhoneNumber
website: HttpUrl
summary: str
location: Location
social_networks: list[SocialNetwork]
education: list[Education]
work_experience: list[WorkExperience]
academic_projects: list[Project]
extracurricular_activities: list[Activity]
test_scores: list[TestScore]
skills: list[Skill]

0
rendercv/data/design.py Normal file
View File

4
rendercv/rendercv.py Normal file
View File

@ -0,0 +1,4 @@
from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader("templates/"))
template = env.get_template("template1.tex.j2")

View File

@ -0,0 +1,81 @@
\documentclass[10pt, a4paper]{memoir}
% ===========
% ===========
% USER INPUTS:
\newcommand{\AUTHOR}{Sina Atalay}
\newcommand{\PRIMARYCOLOR}{0,79,144} % In RGB out of 255
\newcommand{\PageXMargin}{0.53in}
\newcommand{\PageYMargin}{0.53in}
\newcommand{\TopMarginOfSections}{0.13cm}
\newcommand{\BottomMarginOfSections}{0.13cm}
\newcommand{\YMarginBetweenEntries}{0.12cm}
\newcommand{\YMarginBetweenBullets}{0.07cm}
\newcommand{\LeftMarginOfBullets}{0.7cm}
\newcommand{\DateandLocationWidth}{3.7cm}
% ===========
% ===========
\input{preamble}
\begin{document}
% Test out the 4 main entry types with the commands below:
% \Header{a}{b}{c}{d}{e}{f}
% \section{EducationEntry}
% \EducationEntry{a}{b}{c}{d}{e}{f}{g}{j}
% \section{ExperienceEntry}
% \ExperienceEntry{a}{b}{c}{d}{e}{f}{g}{j}
% \section{NormalEntry}
% \NormalEntry{a}{b}{c}{d}{e}{f}
% \section{OneLineEntry}
% \OneLineEntry{a}{b}
% To create the header manually (insted of \Header command), use the code below:
% \begin{header}[0pt]
% \Huge
% \textbf{\directlua{tex.print(json.basics.name)}}
% \normalsize
% \faPhone\hspace{0.13cm}\directlua{tex.print(json.basics.phone)} \hspace{0.5cm}
% \href{mailto:\directlua{tex.print(json.basics.email)}}{\faEnvelopeO\hspace{0.13cm}\directlua{tex.print(json.basics.email)}} \hspace{0.5cm}
% \href{https://\directlua{tex.print(json.basics.url)}}{\faLaptop\hspace{0.13cm}\directlua{tex.print(json.basics.url)}} \hspace{0.5cm}
% \href{https://www.linkedin.com/in/williamhgates}{\faLinkedin\hspace{0.13cm}williamhgates} \hspace{0.5cm}
% \href{https://www.github.com/sinaatalay}{\faGithub\hspace{0.13cm}sinaatalay}
% \end{header}
\directlua{require("parser.lua")}
\makeoddhead{headings}{}{}{\small\color{gray}\linespread{0}\emph{Last updated on {\printdayon\today}}\hspace*{0.2cm}}
\directlua{printHeader()}
\section{Education}
\directlua{printEducation()}
\section{Work Experience}
\directlua{printExperience()}
\section{Academic Projects}
\directlua{printAcademicProjects()}
\section{Certificates}
\directlua{printCertificates()}
\section{Skills}
\directlua{printSkills()}
\section{Test Scores}
\directlua{printTestScores()}
\section{Personal Projects (test)}
\directlua{printPersonalProjects()}
\section{Extracurricular Activities}
\directlua{printExtracurricularActivities()}
\end{document}

0
setup.py Normal file
View File