From 11ebfed99ed8167460d3de7349a61627778594de Mon Sep 17 00:00:00 2001 From: Arnaud Ysmal Date: Fri, 5 Mar 2021 23:17:48 +0100 Subject: [PATCH] Remove schema submodule, add schema and sample --- .gitmodules | 3 - README.md | 4 + resume-schema | 1 - sample.resume.json | 160 ++++++++++++++ schema.json | 529 +++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 693 insertions(+), 4 deletions(-) delete mode 160000 resume-schema create mode 100644 sample.resume.json create mode 100644 schema.json diff --git a/.gitmodules b/.gitmodules index 00b12b5..e69de29 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +0,0 @@ -[submodule "resume-schema"] - path = resume-schema - url = https://github.com/jsonresume/resume-schema/ diff --git a/README.md b/README.md index 95fd33f..7e46c63 100644 --- a/README.md +++ b/README.md @@ -6,3 +6,7 @@ stackoverflow theme is based on https://github.com/francescoes/jsonresume-theme- `$ go build -o jsonresume ./cli` `$ ./jsonresume -t kendall -r resume-schema/examples/valid/complete.json -o resume.html && cp themes/kendall/*.css .` + +# To validate a resume: +`$ npm install ajv-cli@3.3.0` +`$ node ./node_modules/ajv-cli/index.js validate -s schema.json -d sample.resume.json` diff --git a/resume-schema b/resume-schema deleted file mode 160000 index 8558e9e..0000000 --- a/resume-schema +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8558e9e6e4badade1c871d5cfd253a740dbf3b34 diff --git a/sample.resume.json b/sample.resume.json new file mode 100644 index 0000000..3f67c9a --- /dev/null +++ b/sample.resume.json @@ -0,0 +1,160 @@ +{ + "$schema": "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json", + "basics": { + "name": "Richard Hendriks", + "label": "Programmer", + "image": "", + "email": "richard.hendriks@mail.com", + "phone": "(912) 555-4321", + "url": "http://richardhendricks.example.com", + "summary": "Richard hails from Tulsa. He has earned degrees from the University of Oklahoma and Stanford. (Go Sooners and Cardinal!) Before starting Pied Piper, he worked for Hooli as a part time software developer. While his work focuses on applied information theory, mostly optimizing lossless compression schema of both the length-limited and adaptive variants, his non-work interests range widely, everything from quantum computing to chaos theory. He could tell you about it, but THAT would NOT be a “length-limited” conversation!", + "location": { + "address": "2712 Broadway St", + "postalCode": "CA 94115", + "city": "San Francisco", + "countryCode": "US", + "region": "California" + }, + "profiles": [ + { + "network": "Twitter", + "username": "neutralthoughts" + }, + { + "network": "SoundCloud", + "username": "dandymusicnl", + "url": "https://soundcloud.example.com/dandymusicnl" + } + ] + }, + "work": [ + { + "name": "Pied Piper", + "location": "Palo Alto, CA", + "description": "Awesome compression company", + "position": "CEO/President", + "url": "http://piedpiper.example.com", + "startDate": "2013-12-01", + "endDate": "2014-12-01", + "summary": "Pied Piper is a multi-platform technology based on a proprietary universal compression algorithm that has consistently fielded high Weisman Scores™ that are not merely competitive, but approach the theoretical limit of lossless compression.", + "highlights": [ + {"title": "Build an algorithm for artist to detect if their music was violating copy right infringement laws"}, + {"title": "Successfully won Techcrunch Disrupt"}, + {"title": "Optimized an algorithm that holds the current world record for Weisman Scores"} + ] + } + ], + "volunteer": [ + { + "organization": "CoderDojo", + "position": "Teacher", + "url": "http://coderdojo.example.com/", + "startDate": "2012-01-01", + "endDate": "2013-01-01", + "summary": "Global movement of free coding clubs for young people.", + "highlights": [ + {"title": "Awarded 'Teacher of the Month'"} + ] + } + ], + "education": [ + { + "institution": "University of Oklahoma", + "url": "https://www.ou.edu/", + "area": "Information Technology", + "studyType": "Bachelor", + "startDate": "2011-06-01", + "endDate": "2014-01-01", + "score": "4.0", + "courses": [ + "DB1101 - Basic SQL", + "CS2011 - Java Introduction" + ] + } + ], + "awards": [ + { + "title": "Digital Compression Pioneer Award", + "date": "2014-11-01", + "awarder": "Techcrunch", + "summary": "There is no spoon." + } + ], + "publications": [ + { + "name": "Video compression for 3d media", + "publisher": "Hooli", + "releaseDate": "2014-10-01", + "url": "http://en.wikipedia.org/wiki/Silicon_Valley_(TV_series)", + "summary": "Innovative middle-out compression algorithm that changes the way we store data." + } + ], + "skills": [ + { + "name": "Web Development", + "level": "Master", + "keywords": [ + "HTML", + "CSS", + "Javascript" + ] + }, + { + "name": "Compression", + "level": "Master", + "keywords": [ + "Mpeg", + "MP4", + "GIF" + ] + } + ], + "languages": [ + { + "language": "English", + "fluency": "Native speaker" + } + ], + "interests": [ + { + "name": "Wildlife", + "keywords": [ + "Ferrets", + "Unicorns" + ] + } + ], + "references": [ + { + "name": "Erlich Bachman", + "reference": "It is my pleasure to recommend Richard, his performance working as a consultant for Main St. Company proved that he will be a valuable addition to any company." + } + ], + "projects": [ + { + "name": "Miss Direction", + "description": "A mapping engine that misguides you", + "highlights": [ + "Won award at AIHacks 2016", + "Built by all women team of newbie programmers", + "Using modern technologies such as GoogleMaps, Chrome Extension and Javascript" + ], + "keywords": [ + "GoogleMaps", "Chrome Extension", "Javascript" + ], + "startDate": "2016-08-24", + "endDate": "2016-08-24", + "url": "http://missdirection.example.com", + "roles": [ + "Team lead", "Designer" + ], + "entity": "Smoogle", + "type": "application" + } + ], + "meta": { + "canonical": "https://raw.githubusercontent.com/jsonresume/resume-schema/master/resume.json", + "version": "v1.0.0", + "lastModified": "2017-12-24T15:53:00" + } +} diff --git a/schema.json b/schema.json new file mode 100644 index 0000000..6453df1 --- /dev/null +++ b/schema.json @@ -0,0 +1,529 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "additionalProperties": false, + "definitions": { + "iso8601": { + "type": "string", + "description": "e.g. 2014-06-29", + "pattern": "^([1-2][0-9]{3}-[0-1][0-9]-[0-3][0-9]|[1-2][0-9]{3}-[0-1][0-9]|[1-2][0-9]{3})$" + } + }, + "properties": { + "$schema": { + "type": "string", + "description": "link to the version of the schema that can validate the resume", + "format": "uri" + }, + "lang": { + "type": "string", + "description": "language code" + }, + "basics": { + "type": "object", + "additionalProperties": true, + "properties": { + "name": { + "type": "string" + }, + "label": { + "type": "string", + "description": "e.g. Web Developer" + }, + "image": { + "type": "string", + "description": "URL (as per RFC 3986) to a image in JPEG or PNG format" + }, + "email": { + "type": "string", + "description": "e.g. thomas@gmail.com", + "format": "email" + }, + "phone": { + "type": "string", + "description": "Phone numbers are stored as strings so use any format you like, e.g. 712-117-2923" + }, + "url": { + "type": "string", + "description": "URL (as per RFC 3986) to your website, e.g. personal homepage", + "format": "uri" + }, + "summary": { + "type": "string", + "description": "Write a short 2-3 sentence biography about yourself" + }, + "location": { + "type": "object", + "additionalProperties": true, + "properties": { + "address": { + "type": "string", + "description": "To add multiple address lines, use \n. For example, 1234 Glücklichkeit Straße\nHinterhaus 5. Etage li." + }, + "postalCode": { + "type": "string" + }, + "city": { + "type": "string" + }, + "countryCode": { + "type": "string", + "description": "code as per ISO-3166-1 ALPHA-2, e.g. US, AU, IN" + }, + "region": { + "type": "string", + "description": "The general region where you live. Can be a US state, or a province, for instance." + }, + "shortAddress": { + "type": "string" + } + } + }, + "profiles": { + "type": "array", + "description": "Specify any number of social networks that you participate in", + "additionalItems": false, + "items": { + "type": "object", + "additionalProperties": true, + "properties": { + "network": { + "type": "string", + "description": "e.g. Facebook or Twitter" + }, + "username": { + "type": "string", + "description": "e.g. neutralthoughts" + }, + "url": { + "type": "string", + "description": "e.g. http://twitter.example.com/neutralthoughts", + "format": "uri" + } + } + } + } + } + }, + "work": { + "type": "array", + "additionalItems": false, + "items": { + "type": "object", + "additionalProperties": true, + "properties": { + "name": { + "type": "string", + "description": "e.g. Facebook" + }, + "location": { + "type": "string", + "description": "e.g. Menlo Park, CA" + }, + "description": { + "type": "string", + "description": "e.g. Social Media Company" + }, + "position": { + "type": "string", + "description": "e.g. Software Engineer" + }, + "url": { + "type": "string", + "description": "e.g. http://facebook.example.com", + "format": "uri" + }, + "startDate": { + "$ref": "#/definitions/iso8601" + }, + "endDate": { + "$ref": "#/definitions/iso8601" + }, + "summary": { + "type": "string", + "description": "Give an overview of your responsibilities at the company" + }, + "highlights": { + "type": "array", + "additionalItems": false, + "items": { + "type": "object", + "additionalProperties": true, + "properties": { + "title": { + "type": "string", + "description": "e.g. Facebook" + }, + "items": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "volunteer": { + "type": "array", + "additionalItems": false, + "items": { + "type": "object", + "additionalProperties": true, + "properties": { + "organization": { + "type": "string", + "description": "e.g. Facebook" + }, + "position": { + "type": "string", + "description": "e.g. Software Engineer" + }, + "url": { + "type": "string", + "description": "e.g. http://facebook.example.com", + "format": "uri" + }, + "startDate": { + "$ref": "#/definitions/iso8601" + }, + "endDate": { + "$ref": "#/definitions/iso8601" + }, + "summary": { + "type": "string", + "description": "Give an overview of your responsibilities at the company" + }, + "highlights": { + "type": "array", + "additionalItems": false, + "items": { + "type": "object", + "additionalProperties": true, + "properties": { + "title": { + "type": "string", + "description": "e.g. Facebook" + }, + "items": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "education": { + "type": "array", + "additionalItems": false, + "items": { + "type": "object", + "additionalProperties": true, + "properties": { + "institution": { + "type": "string", + "description": "e.g. Massachusetts Institute of Technology" + }, + "url": { + "type": "string", + "description": "e.g. http://facebook.example.com", + "format": "uri" + }, + "area": { + "type": "string", + "description": "e.g. Arts" + }, + "studyType": { + "type": "string", + "description": "e.g. Bachelor" + }, + "startDate": { + "$ref": "#/definitions/iso8601" + }, + "endDate": { + "$ref": "#/definitions/iso8601" + }, + "score": { + "type": "string", + "description": "grade point average, e.g. 3.67/4.0" + }, + "courses": { + "type": "array", + "description": "List notable courses/subjects", + "additionalItems": false, + "items": { + "type": "string", + "description": "e.g. H1302 - Introduction to American history" + } + } + } + } + }, + "awards": { + "type": "array", + "description": "Specify any awards you have received throughout your professional career", + "additionalItems": false, + "items": { + "type": "object", + "additionalProperties": true, + "properties": { + "title": { + "type": "string", + "description": "e.g. One of the 100 greatest minds of the century" + }, + "date": { + "$ref": "#/definitions/iso8601" + }, + "awarder": { + "type": "string", + "description": "e.g. Time Magazine" + }, + "summary": { + "type": "string", + "description": "e.g. Received for my work with Quantum Physics" + } + } + } + }, + "certificates": { + "type": "array", + "description": "Specify any certificates you have received throughout your professional career", + "additionalItems": false, + "items": { + "type": "object", + "additionalProperties": true, + "properties": { + "name": { + "type": "string", + "description": "e.g. Certified Kubernetes Administrator" + }, + "date": { + "type": "string", + "description": "e.g. 1989-06-12", + "format": "date" + }, + "url": { + "type": "string", + "description": "e.g. http://example.com", + "format": "uri" + }, + "issuer": { + "type": "string", + "description": "e.g. CNCF" + } + } + } + }, + "publications": { + "type": "array", + "description": "Specify your publications through your career", + "additionalItems": false, + "items": { + "type": "object", + "additionalProperties": true, + "properties": { + "name": { + "type": "string", + "description": "e.g. The World Wide Web" + }, + "publisher": { + "type": "string", + "description": "e.g. IEEE, Computer Magazine" + }, + "releaseDate": { + "$ref": "#/definitions/iso8601" + }, + "url": { + "type": "string", + "description": "e.g. http://www.computer.org.example.com/csdl/mags/co/1996/10/rx069-abs.html", + "format": "uri" + }, + "summary": { + "type": "string", + "description": "Short summary of publication. e.g. Discussion of the World Wide Web, HTTP, HTML." + } + } + } + }, + "skills": { + "type": "array", + "description": "List out your professional skill-set", + "additionalItems": false, + "items": { + "type": "object", + "additionalProperties": true, + "properties": { + "name": { + "type": "string", + "description": "e.g. Web Development" + }, + "level": { + "type": "string", + "description": "e.g. Master" + }, + "keywords": { + "type": "array", + "description": "List some keywords pertaining to this skill", + "additionalItems": false, + "items": { + "type": "string", + "description": "e.g. HTML" + } + } + } + } + }, + "languages": { + "type": "array", + "description": "List any other languages you speak", + "additionalItems": false, + "items": { + "type": "object", + "additionalProperties": true, + "properties": { + "language": { + "type": "string", + "description": "e.g. English, Spanish" + }, + "fluency": { + "type": "string", + "description": "e.g. Fluent, Beginner" + } + } + } + }, + "interests": { + "type": "array", + "additionalItems": false, + "items": { + "type": "object", + "additionalProperties": true, + "properties": { + "name": { + "type": "string", + "description": "e.g. Philosophy" + }, + "keywords": { + "type": "array", + "additionalItems": false, + "items": { + "type": "string", + "description": "e.g. Friedrich Nietzsche" + } + } + } + } + }, + "references": { + "type": "array", + "description": "List references you have received", + "additionalItems": false, + "items": { + "type": "object", + "additionalProperties": true, + "properties": { + "name": { + "type": "string", + "description": "e.g. Timothy Cook" + }, + "reference": { + "type": "string", + "description": "e.g. Joe blogs was a great employee, who turned up to work at least once a week. He exceeded my expectations when it came to doing nothing." + } + } + } + }, + "projects": { + "type": "array", + "description": "Specify career projects", + "additionalItems": false, + "items": { + "type": "object", + "additionalProperties": true, + "properties": { + "name": { + "type": "string", + "description": "e.g. The World Wide Web" + }, + "description": { + "type": "string", + "description": "Short summary of project. e.g. Collated works of 2017." + }, + "highlights": { + "type": "array", + "description": "Specify multiple features", + "additionalItems": false, + "items": { + "type": "string", + "description": "e.g. Directs you close but not quite there" + } + }, + "keywords": { + "type": "array", + "description": "Specify special elements involved", + "additionalItems": false, + "items": { + "type": "string", + "description": "e.g. AngularJS" + } + }, + "startDate": { + "$ref": "#/definitions/iso8601" + }, + "endDate": { + "$ref": "#/definitions/iso8601" + }, + "url": { + "type": "string", + "format": "uri", + "description": "e.g. http://www.computer.org/csdl/mags/co/1996/10/rx069-abs.html" + }, + "roles": { + "type": "array", + "description": "Specify your role on this project or in company", + "additionalItems": false, + "items": { + "type": "string", + "description": "e.g. Team Lead, Speaker, Writer" + } + }, + "entity": { + "type": "string", + "description": "Specify the relevant company/entity affiliations e.g. 'greenpeace', 'corporationXYZ'" + }, + "type": { + "type": "string", + "description": " e.g. 'volunteering', 'presentation', 'talk', 'application', 'conference'" + } + } + } + }, + "meta": { + "type": "object", + "description": "The schema version and any other tooling configuration lives here", + "additionalProperties": true, + "properties": { + "canonical": { + "type": "string", + "description": "URL (as per RFC 3986) to latest version of this document", + "format": "uri" + }, + "version": { + "type": "string", + "description": "A version field which follows semver - e.g. v1.0.0" + }, + "lastModified": { + "type": "string", + "description": "Using ISO 8601 with YYYY-MM-DDThh:mm:ss" + } + } + } + }, + "title": "Resume Schema", + "type": "object" +}