jsonresume-0.1.0.0: Parser and datatypes for the JSON Resume format

Safe HaskellNone
LanguageHaskell2010

Data.JSONResume

Description

This module provides a native Haskell representation for the JSON Resume scheme, as defined at https://github.com/jsonresume/resume-schema/blob/master/schema.json, as well as instances for Aeson's FromJSON/ToJSON classes to make parsing the files easy.

Note that nearly all the fields are wrapped in a Maybe type. This is because the JSON scheme on which this is based doesn't specify one way or the other whether a field is required, and in JSON essentially all the fields are optional.

Synopsis

Documentation

data Resume Source

This is the main datatype, representing the overall structure of the JSON Resume specification.

Instances

Read Resume 
Show Resume 
ToJSON Resume 
FromJSON Resume 

type URL = Text Source

Simple representation for URLs

type EmailAddress = Text Source

Simple representation for email addresses

data Address Source

Represents a physical address

Constructors

Address 

Fields

address :: Maybe Text

To add multiple address lines, use n. For example, 1234 Glücklichkeit StraßenHinterhaus 5. Etage li.

postalCode :: Maybe Text
 
city :: Maybe Text
 
countryCode :: Maybe Text

Code as per ISO-3166-1 ALPHA-2, e.g. US, AU, IN

region :: Maybe Text

The general region where you live. Can be a US state, or a province, for instance.

Instances

Read Address 
Show Address 
ToJSON Address 
FromJSON Address 

data Profile Source

Specify any number of social networks that you participate in

Constructors

Profile 

Fields

network :: Maybe Text

e.g. Facebook or Twitter

username :: Maybe Text

e.g. neutralthoughts

url :: Maybe URL

e.g. http:/twitter.comneutralthoughts

Instances

Read Profile 
Show Profile 
ToJSON Profile 
FromJSON Profile 

data Basics Source

Basic information

Constructors

Basics 

Fields

name :: Maybe Text
 
label :: Maybe Text

e.g. Web Developer

picture :: Maybe URL

URL (as per RFC 3986) to a picture in JPEG or PNG format

email :: Maybe EmailAddress

e.g. thomas@gmail.com

phone :: Maybe Text

Phone numbers are stored as strings so use any format you like, e.g. 712-117-2923

website :: Maybe URL

URL (as per RFC 3986) to your website, e.g. personal homepage

summary :: Maybe Text

Write a short 2-3 sentence biography about yourself

location :: Maybe Address
 
profiles :: [Profile]
 

Instances

Read Basics 
Show Basics 
ToJSON Basics 
FromJSON Basics 

data Organization Source

Information about a particular organization that you've worked or volunteered at

Constructors

Organization 

Fields

orgName :: Maybe Text

e.g. Facebook

orgPosition :: Maybe Text

e.g. Software Engineer

orgSite :: Maybe URL

e.g. http://facebook.com

orgStartDate :: Maybe UTCTime

resume.json uses the ISO 8601 date standard e.g. 2014-06-29

orgEndDate :: Maybe UTCTime

e.g. 2012-06-29

orgSummary :: Maybe Text

Give an overview of your responsibilities at the company

orgHighlights :: [Text]

Specify multiple accomplishments, e.g. Increased profits by 20% from 2011-2012 through viral advertising

newtype Work Source

Specify that you worked at a particular Organization (as opposed to volunteering there)

Constructors

Work Organization 

Instances

Read Work 
Show Work 
ToJSON Work 
FromJSON Work 

newtype Volunteer Source

Specify that you volunteered at a particular Organization (as opposed to working there)

Constructors

Volunteer Organization 

Instances

data Education Source

Educational history

Constructors

Education 

Fields

institution :: Maybe Text

e.g. Massachusetts Institute of Technology

area :: Maybe Text

e.g. Arts

studyType :: Maybe Text

e.g. Bachelor

startDate :: Maybe UTCTime

e.g. 2012-06-29

endDate :: Maybe UTCTime

e.g. 2014-06-29

gpa :: Maybe Text

grade point average, e.g. 3.67/4.0

courses :: [Text]

List notable courses/subjects, e.g. H1302 - Introduction to American history

Instances

data Award Source

Specify any awards you have received throughout your professional career

Constructors

Award 

Fields

title :: Maybe Text

e.g. One of the 100 greatest minds of the century

date :: Maybe UTCTime

e.g. 1989-06-12

awarder :: Maybe Text

e.g. Time Magazine

awardSummary :: Maybe Text

e.g. Received for my work with Quantum Physics

Instances

Read Award 
Show Award 
ToJSON Award 
FromJSON Award 

data Publication Source

Specify your publications through your career

Constructors

Publication 

Fields

pubName :: Maybe Text

e.g. The World Wide Web

publisher :: Maybe Text

e.g. IEEE, Computer Magazine

pubReleaseDate :: Maybe UTCTime

e.g. 1990-08-01

pubSite :: Maybe URL

e.g. http:/www.computer.orgcsdlmagsco199610/rx069-abs.html

pubSummary :: Maybe Text

Short summary of publication. e.g. Discussion of the World Wide Web, HTTP, HTML.

Instances

data Skill Source

List out your professional skill-set

Constructors

Skill 

Fields

skillName :: Maybe Text

e.g. Web Development

skillLevel :: Maybe Text

e.g. Master

skillKeywords :: [Text]

List some keywords pertaining to this skill, e.g. HTML

Instances

Read Skill 
Show Skill 
ToJSON Skill 
FromJSON Skill 

data Language Source

List any other languages you speak

Constructors

Language 

Fields

language :: Maybe Text

e.g. English, Spanish

fluency :: Maybe Text

e.g. Fluent, Beginner

Instances

data Interest Source

Constructors

Interest 

Fields

interestName :: Maybe Text

e.g. Philosophy

interestKeywords :: [Text]

e.g. Friedrich Nietzsche

Instances

data Reference Source

List any references you have received

Constructors

Reference 

Fields

refName :: Maybe Text

e.g. Timothy Cook

reference :: Maybe Text

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.

Instances