kamisaku 0.3.3 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -0
  3. data/Gemfile.lock +1 -1
  4. data/README.md +28 -64
  5. data/examples/birthday_invitation/dino/invitation.pdf +0 -0
  6. data/examples/resume/chromatic/example.pdf +0 -0
  7. data/examples/resume/gradient/example.pdf +0 -0
  8. data/examples/resume/meridian/example.pdf +0 -0
  9. data/examples/resume/paper/example.pdf +0 -0
  10. data/examples/resume/prism/example.pdf +0 -0
  11. data/examples/resume/sleek/example.pdf +0 -0
  12. data/examples/resume/zenith/example.pdf +0 -0
  13. data/lib/kamisaku/arg_parser.rb +4 -0
  14. data/lib/kamisaku/cli_runner.rb +2 -2
  15. data/lib/kamisaku/content_validators/base_content_validator.rb +14 -0
  16. data/lib/kamisaku/content_validators/birthday_invitation_content_validator.rb +218 -0
  17. data/lib/kamisaku/{content_validator.rb → content_validators/resume_content_validator.rb} +28 -11
  18. data/lib/kamisaku/html_builder.rb +4 -3
  19. data/lib/kamisaku/pdf.rb +17 -12
  20. data/lib/kamisaku/template_helpers.rb +0 -2
  21. data/lib/kamisaku/version.rb +1 -1
  22. data/lib/kamisaku.rb +4 -2
  23. data/lib/schema/birthday_invitation/example.yml +45 -0
  24. data/lib/schema/birthday_invitation/schema.yml +40 -0
  25. data/lib/schema/resume/example.yml +274 -0
  26. data/lib/schema/resume/schema.yml +112 -0
  27. data/lib/templates/birthday_invitation/dino/template.html.erb +486 -0
  28. data/lib/templates/resume/chromatic/template.html.erb +275 -0
  29. data/lib/templates/resume/gradient/template.html.erb +793 -0
  30. data/lib/templates/resume/meridian/template.html.erb +535 -0
  31. data/lib/templates/resume/paper/template.html.erb +525 -0
  32. data/lib/templates/resume/prism/template.html.erb +818 -0
  33. data/lib/templates/{sleek → resume/sleek}/template.html.erb +1 -1
  34. data/lib/templates/resume/zenith/template.html.erb +546 -0
  35. data/scripts/rebuild_examples.rb +45 -0
  36. metadata +25 -9
  37. data/examples/paper/john_doe.pdf +0 -0
  38. data/examples/paper/john_doe.yml +0 -157
  39. data/examples/sleek/john_doe.pdf +0 -0
  40. data/examples/sleek/john_doe.yml +0 -157
  41. data/lib/templates/paper/template.html.erb +0 -420
  42. data/template.yml +0 -64
@@ -0,0 +1,45 @@
1
+ version: 1
2
+ party_details:
3
+ person_name: "Emma"
4
+ age: 6
5
+ date:
6
+ day: 15
7
+ month: 8
8
+ year: 2025
9
+ start_time: "2:00 PM"
10
+ end_time: "5:00 PM"
11
+ theme: "Dinosaur Adventure"
12
+
13
+ venue:
14
+ name: "Dino Discovery Park"
15
+ address: "123 Prehistoric Lane, Jurassic Heights, CA 90210"
16
+ additional_instructions: "Enter through the main gate and follow the dinosaur footprints to the party pavilion"
17
+
18
+ contact_info:
19
+ host_name: "Sarah Johnson"
20
+ phone: "(555) 123-4567"
21
+ email: "sarah.johnson@email.com"
22
+
23
+ rsvp:
24
+ deadline:
25
+ day: 8
26
+ month: 8
27
+ year: 2025
28
+ method: "phone or text"
29
+ contact: "Sarah Johnson"
30
+
31
+ special_instructions:
32
+ what_to_bring: "Comfortable shoes for outdoor activities and a water bottle"
33
+ dress_code: "Dinosaur costumes encouraged! Or wear green and brown colors"
34
+ food_allergies_note: "Please let us know about any food allergies when you RSVP"
35
+ gift_preferences: "Books about dinosaurs or outdoor toys would be wonderful!"
36
+ parking_info: "Free parking available in the north lot"
37
+ weather_backup: "Indoor pavilion available in case of rain"
38
+
39
+ activities:
40
+ main_activities:
41
+ - "Dinosaur fossil dig"
42
+ - "Pin the tail on the T-Rex"
43
+ - "Dinosaur egg hunt"
44
+ - "Prehistoric crafts station"
45
+ entertainment: "Dr. Dino the Paleontologist with live dinosaur show"
@@ -0,0 +1,40 @@
1
+ party_details: # required: Core information about the birthday party
2
+ person_name: # required: Name of the birthday person
3
+ age: # required: Age the birthday person is turning
4
+ date: # required: Date of the party
5
+ day: # required: Day between 1-31
6
+ month: # required: Month between 1-12
7
+ year: # required: year
8
+ start_time: # required: Party start time
9
+ end_time: # optional: Party end time
10
+ theme: # optional: Party theme (e.g., "Princess", "Superhero", "Dinosaurs")
11
+
12
+ venue: # required: Where the party will be held
13
+ name: # optional: Name of the venue (e.g., "Chuck E. Cheese", "Community Center")
14
+ address: # required: Full address of the party location
15
+ additional_instructions: # optional: Parking info, entrance details, etc.
16
+
17
+ contact_info: # required: How to reach the host
18
+ host_name: # required: Name of parent/guardian hosting
19
+ phone: # required: Contact phone number
20
+ email: # optional: Contact email address
21
+
22
+ rsvp: # required: Response information
23
+ deadline: # required: RSVP deadline date
24
+ day: # required: Day between 1-31
25
+ month: # required: Month between 1-12
26
+ year: # required: year
27
+ method: # required: How to RSVP (phone, email, text)
28
+ contact: # required: Who to contact for RSVP
29
+
30
+ special_instructions: # optional: Additional party details
31
+ what_to_bring: # optional: Items guests should bring
32
+ dress_code: # optional: Costume requirements or dress suggestions
33
+ food_allergies_note: # optional: Note about food allergies
34
+ gift_preferences: # optional: Gift suggestions or "no gifts please"
35
+ parking_info: # optional: Parking instructions
36
+ weather_backup: # optional: Indoor backup plan for outdoor parties
37
+
38
+ activities: # optional: Planned party activities
39
+ main_activities: # optional: List of planned activities
40
+ entertainment: # optional: Hired entertainment (clown, magician, etc.)
@@ -0,0 +1,274 @@
1
+ version: 1
2
+
3
+ profile:
4
+ name: John Doe
5
+ title: Senior Software Engineer
6
+ about: >
7
+ Seasoned software engineer with more than a decade of experience
8
+ in designing and developing scalable web applications. Passionate
9
+ about building clean, maintainable code and driving best practices
10
+ in software development. Experienced in leading teams, mentoring
11
+ developers, and collaborating with cross-functional teams to deliver
12
+ high-quality solutions.
13
+
14
+ contact:
15
+ github: johndoe
16
+ mobile: +44 7912345678
17
+ website: https://johndoe.dev
18
+ email: john.doe@example.com
19
+ linkedin: john-doe
20
+ location:
21
+ country: United Kingdom
22
+ city: London
23
+
24
+ skills:
25
+ - name: Development
26
+ items:
27
+ - Python
28
+ - Django
29
+ - ReactJS
30
+ - TypeScript
31
+ - Node.js
32
+ - name: Database
33
+ items:
34
+ - PostgreSQL
35
+ - MySQL
36
+ - Redis
37
+ - name: Testing
38
+ items:
39
+ - PyTest
40
+ - Jest
41
+ - Cypress
42
+ - Selenium
43
+ - name: Version Control
44
+ items:
45
+ - Git
46
+ - GitHub
47
+ - GitLab
48
+ - name: Platforms/OS
49
+ items:
50
+ - AWS
51
+ - Google Cloud
52
+ - Linux
53
+
54
+ interests:
55
+ - name: Yoga
56
+ - name: Travelling
57
+ - name: Photography
58
+ - name: Hiking
59
+ - name: Chess
60
+ - name: Reading
61
+ - name: Cooking
62
+ - name: Gardening
63
+ - name: Running
64
+ - name: Fitness
65
+ - name: Volunteering
66
+
67
+ experiences:
68
+ - title: Senior Software Engineer
69
+ organisation: CloudCore Solutions
70
+ location:
71
+ city: London
72
+ country: United Kingdom
73
+ from:
74
+ month: 3
75
+ year: 2021
76
+ skills:
77
+ - Django
78
+ - React
79
+ - GraphQL
80
+ - AWS Lambda
81
+ - PostgreSQL
82
+ - Docker
83
+ - Terraform
84
+ achievements:
85
+ - >
86
+ Led the migration from a monolithic system to a microservices
87
+ architecture, significantly improving scalability and performance.
88
+ - >
89
+ Designed and implemented a serverless data processing pipeline
90
+ using AWS Lambda and S3, reducing operational costs by 30%.
91
+ - Established CI/CD workflows for automated deployments and testing.
92
+
93
+ - title: Lead Backend Engineer
94
+ organisation: FinEdge Technologies
95
+ location:
96
+ city: Manchester
97
+ country: United Kingdom
98
+ from:
99
+ month: 5
100
+ year: 2018
101
+ to:
102
+ month: 2
103
+ year: 2021
104
+ skills:
105
+ - Python
106
+ - FastAPI
107
+ - PostgreSQL
108
+ - Redis
109
+ - Kafka
110
+ - Kubernetes
111
+ - Jenkins
112
+ achievements:
113
+ - >
114
+ Spearheaded the development of a real-time financial analytics
115
+ platform, handling millions of transactions per second.
116
+ - >
117
+ Improved API response times by optimizing database queries and
118
+ implementing Redis caching.
119
+ - Led a team of backend engineers, conducting code reviews and
120
+ mentoring junior developers.
121
+
122
+ - title: Software Engineer
123
+ organisation: NextGen Media
124
+ location:
125
+ city: Birmingham
126
+ country: United Kingdom
127
+ from:
128
+ month: 7
129
+ year: 2015
130
+ to:
131
+ month: 4
132
+ year: 2018
133
+ skills:
134
+ - Node.js
135
+ - Express.js
136
+ - MongoDB
137
+ - WebSockets
138
+ - AWS
139
+ achievements:
140
+ - Developed a high-traffic video streaming platform, implementing
141
+ WebSockets for real-time interactions.
142
+ - Built a recommendation engine using machine learning models to
143
+ personalize user content.
144
+ - Automated deployment processes with AWS CodePipeline and Docker.
145
+
146
+ education:
147
+ - institute: Brighton Institute of Technology
148
+ location:
149
+ city: Brighton
150
+ country: United Kingdom
151
+ qualification: Bachelor of Science in Computer Science
152
+ field: Software Engineering
153
+ to:
154
+ month: 5
155
+ year: 2013
156
+ achievements:
157
+ - Awarded a scholarship for outstanding academic performance.
158
+
159
+ projects:
160
+ - name: E-commerce Analytics Platform
161
+ description: >
162
+ Developed a comprehensive full-stack web application for real-time sales analytics and inventory management.
163
+ The platform features interactive dashboards, automated reporting, real-time inventory tracking, predictive
164
+ analytics for sales forecasting, and integration with multiple payment gateways.
165
+ technologies:
166
+ - React
167
+ - Python
168
+ - PostgreSQL
169
+ - Redis
170
+ - Docker
171
+ link: https://github.com/johndoe/ecommerce-analytics
172
+
173
+ - name: Open Source Task Scheduler
174
+ description: >
175
+ Created a distributed task scheduling library with Redis backend that supports job queuing, task
176
+ prioritization, retry mechanisms, and dead letter queues. Features include task dependencies,
177
+ scheduling with cron expressions, real-time monitoring dashboard, horizontal scaling capabilities,
178
+ and fault tolerance with automatic task recovery.
179
+ technologies:
180
+ - Python
181
+ - Redis
182
+ - Celery
183
+ - Docker
184
+ link: https://github.com/johndoe/task-scheduler
185
+
186
+ certifications:
187
+ - name: AWS Certified Solutions Architect
188
+ issuer: Amazon Web Services
189
+ date:
190
+ day: 15
191
+ month: 8
192
+ year: 2022
193
+ credential_url: https://aws.amazon.com/verification/ABCD1234EFGH5678
194
+
195
+ - name: Certified Kubernetes Administrator
196
+ issuer: Cloud Native Computing Foundation
197
+ date:
198
+ day: 20
199
+ month: 11
200
+ year: 2021
201
+ credential_url: https://training.linuxfoundation.org/certification/verify
202
+
203
+ awards:
204
+ - title: Employee of the Year
205
+ issuer: CloudCore Solutions
206
+ date:
207
+ day: 1
208
+ month: 12
209
+ year: 2023
210
+ description: Recognized for outstanding contribution to team performance and technical innovation
211
+
212
+ - title: Best Final Year Project
213
+ issuer: Brighton Institute of Technology
214
+ date:
215
+ day: 15
216
+ month: 5
217
+ year: 2013
218
+ description: Awarded for developing an innovative machine learning algorithm for image recognition
219
+
220
+ languages:
221
+ - name: English
222
+ - name: Spanish
223
+ - name: French
224
+
225
+ publications:
226
+ - title: "Microservices Architecture Patterns for Scalable Web Applications"
227
+ publisher: Tech Journal Quarterly
228
+ date:
229
+ day: 15
230
+ month: 3
231
+ year: 2023
232
+ link: https://techjournal.com/articles/microservices-patterns
233
+
234
+ - title: "Optimizing Database Performance in High-Traffic Applications"
235
+ publisher: Software Engineering Today
236
+ date:
237
+ day: 10
238
+ month: 9
239
+ year: 2022
240
+ link: https://se-today.com/db-optimization
241
+
242
+ conferences:
243
+ - name: AWS re:Invent 2023
244
+ role: Attendee
245
+ date:
246
+ day: 27
247
+ month: 11
248
+ year: 2023
249
+ description: Attended sessions on serverless architecture and machine learning
250
+
251
+ - name: PyCon UK 2022
252
+ role: Speaker
253
+ date:
254
+ day: 16
255
+ month: 9
256
+ year: 2022
257
+ description: Presented on "Building Scalable APIs with FastAPI and PostgreSQL"
258
+
259
+ volunteering:
260
+ - organization: Code for Good
261
+ role: Technical Mentor
262
+ description: Mentoring young developers and contributing to open-source projects for non-profits
263
+ date:
264
+ day: 1
265
+ month: 6
266
+ year: 2020
267
+
268
+ - organization: Local Food Bank
269
+ role: Technology Volunteer
270
+ description: Developed a volunteer scheduling system to improve operational efficiency
271
+ date:
272
+ day: 15
273
+ month: 3
274
+ year: 2019
@@ -0,0 +1,112 @@
1
+ # Template schema structure for resume
2
+
3
+ version: 1
4
+ profile: # required
5
+ name: # required: the name
6
+ title: # optional: job title if applicable
7
+ about: # optional: A short summary of the experience and person
8
+
9
+ contact: # optional
10
+ github: # optional: GitHub username
11
+ mobile: # optional: mobile or phone number
12
+ email: # optional: email address
13
+ linkedin: # optional: LinkedIn username
14
+ location: #
15
+ country: # optional: country name you are based at
16
+ city: # optional: city name you are based at
17
+
18
+ skills: # optional
19
+ - name: # required: specific skill name you are specialized in
20
+ items: # optional
21
+ - # subitem such as a technology you have the skill in under the specialized area
22
+
23
+ experiences: # optional
24
+ - title: # required: job title
25
+ organisation: # required: Name of the place you worked
26
+ location: # optional
27
+ city: # optional: city name
28
+ country: # optional: country name
29
+ from: # required
30
+ month: # required: month integer number that you started
31
+ year: # required: year integer number that you started
32
+ to: # optional: if the section not given, it is assumed you are still working
33
+ month: # required: month integer number that you stopped
34
+ year: # required: year integer number that you stopped
35
+ skills: # optional
36
+ - # a short name for a specialized skill you gained at the organization
37
+ achievements: # optional
38
+ - # A short sentence of things you have achieved. Consider reflecting the impact it made.
39
+
40
+ education: # optional
41
+ - institute: # required: name of the place you studied
42
+ location: # optional
43
+ city: # optional: city name
44
+ country: # optional: country name
45
+ qualification: # required: name of the degree, diploma, or certificate qualification
46
+ field: # optional: name of the field such as Computer Science
47
+ from: # optional
48
+ month: # required: month integer number that you started
49
+ year: # required: year integer number that you started
50
+ to: # optional: if you have finished studying at the institute, provide this section. Otherwise, do not provide
51
+ month: # required: month integer number that you stopped
52
+ year: # required: year integer number that you stopped
53
+ achievements: # optional
54
+ - # A list of things you have achieved or did at the institute.
55
+
56
+ projects: # optional: Showcase notable personal or professional projects
57
+ - name: # required: Project title
58
+ description: # optional: Short summary of the project
59
+ technologies: # optional: Tools or stack used
60
+ - # required: technology/stack name
61
+ link: # optional: URL to the project or code
62
+
63
+ certifications: # optional: Any licenses, exams, or certifications earned
64
+ - name: # required: Name of the certification
65
+ issuer: # optional: Organization that issued it
66
+ date: # optional: Date earned or issued
67
+ day: # required: day of month between 1 and 31
68
+ month: # required: month integer number
69
+ year: # required: year integer number
70
+ credential_url: # optional: Verification or badge link
71
+
72
+ awards: # optional: Any recognition, awards, or honors received
73
+ - title: # required: Name of the award
74
+ issuer: # optional: Organization or context in which it was awarded
75
+ date: # optional: When it was awarded
76
+ day: # required: day of month between 1 and 31
77
+ month: # required: month integer number
78
+ year: # required: year integer number
79
+ description: # optional: Brief explanation or context
80
+
81
+ languages: # optional: Languages you speak and your proficiency level
82
+ - name: # required: Language (e.g., English, Spanish)
83
+
84
+ interests: # optional: Hobbies or areas of personal interest
85
+ - name: # required: Interest or activity name
86
+
87
+ publications: # optional: For academic or research roles
88
+ - title: # required
89
+ publisher: # optional
90
+ date: # optional:
91
+ day: # required: day of month between 1 and 31
92
+ month: # required: month integer number
93
+ year: # required: year integer number
94
+ link: # optional
95
+
96
+ conferences: # optional: Attended or spoken at industry events
97
+ - name: # required
98
+ role: # optional: (e.g., Speaker, Attendee)
99
+ date: # optional:
100
+ day: # required: day of month between 1 and 31
101
+ month: # required: month integer number
102
+ year: # required: year integer number
103
+ description: # optional
104
+
105
+ volunteering: # optional: Especially useful for non-profit or early-career roles
106
+ - organization: # required
107
+ role: # optional
108
+ description: # optional
109
+ date: # optional:
110
+ day: # required: day of month between 1 and 31
111
+ month: # required: month integer number
112
+ year: # required: year integer number