diff --git a/README.md b/README.md
index bae6dcf..e37aa56 100644
--- a/README.md
+++ b/README.md
@@ -6,6 +6,7 @@ use Git at BlackSky. The resources are as follows:
+ `slides.md` - A simple set of slides to accompany the lesson plan above
+ `crash_course.html` - The file you open in the browser to view the slides
+ `index.html` - The playground in which we will practice our git-fu
+ - `resources/generator.js` - The Javascript file to accompany our playground
+ `great_commit_messages.html` - Another set of slides + speaking notes on the
importance of writing great commit messages.
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..c7e135c
--- /dev/null
+++ b/index.html
@@ -0,0 +1,26 @@
+
+
+ Jerb Title Generator
+
+
+
+
+
+
+
+
+
+
+
Jerb Title Generator
+
Press the button below to generate your jerb title.
+
Jerb Me
+
+
+
+
+
+
diff --git a/resources/generator.js b/resources/generator.js
new file mode 100644
index 0000000..032d3eb
--- /dev/null
+++ b/resources/generator.js
@@ -0,0 +1,104 @@
+var adjs = [
+ 'Principal',
+ 'Head',
+ 'Senior',
+ 'Chief',
+ 'Agile',
+ 'DevOps',
+ 'Release',
+ 'Lead',
+ 'Junior',
+ 'Former',
+ 'Global',
+ 'Dynamic',
+ 'Human',
+ 'Scaled',
+ 'Legacy',
+ 'Deputy',
+ 'Master'
+];
+
+var nouns = [
+ 'Cloud',
+ 'DevOps',
+ 'Release',
+ 'Innovation',
+ 'Entrepreneurial',
+ 'Expansion',
+ 'Scalability',
+ 'Legacy',
+ 'Automation',
+ 'Application',
+ 'Software',
+ 'Infrastructure',
+ 'Network',
+ 'Optimization',
+ 'Quality',
+ 'Marketing',
+ 'Business',
+ 'Agile',
+ 'Data',
+ 'Information',
+ 'Security',
+ 'Metrics',
+ 'Test',
+ 'Quality'
+];
+
+var titles = [
+ 'Architect',
+ 'Evangelist',
+ 'Specialist',
+ 'Ninja',
+ 'Pirate',
+ 'Engineer',
+ 'Technician',
+ 'Officer',
+ 'President',
+ 'Swashbuckler',
+ 'Prophet',
+ 'Entrepreneur',
+ 'Hacker',
+ 'Curator',
+ 'Researcher',
+ 'Scientist',
+ 'Jedi',
+ 'Button-pusher',
+ 'Mouse-clicker',
+ 'Bean Counter',
+ 'Agent',
+ 'Facilitator',
+ 'Manager',
+ 'Meeting Attender',
+ 'Intern',
+ 'President',
+ 'Assistant',
+ 'Automator',
+ 'Facilitator'
+];
+
+/**
+ * Returns a random integer between min (inclusive) and max (inclusive)
+ * Using Math.round() will give you a non-uniform distribution!
+ **/
+function getRandomInt(min, max) {
+ return Math.floor(Math.random() * (max - min + 1)) + min;
+}
+
+function generateJobTitle() {
+ var index1 = getRandomInt(0, adjs.length - 1);
+ var index2 = getRandomInt(0, nouns.length - 1);
+ var index3 = getRandomInt(0, titles.length - 1);
+
+ var adjective = adjs[index1];
+ var noun = nouns[index2];
+ var title = titles[index3];
+
+ return adjective + ' ' + noun + ' ' + title;
+};
+
+function jerbMe() {
+ var jobTitle = generateJobTitle();
+ console.log('Setting job title to', jobTitle);
+ $('#jerb').text( jobTitle );
+}
diff --git a/resources/generator_styles.css b/resources/generator_styles.css
new file mode 100644
index 0000000..f8fcf5d
--- /dev/null
+++ b/resources/generator_styles.css
@@ -0,0 +1,89 @@
+body {
+ padding-top: 20px;
+}
+
+.footer {
+ padding-top: 40px;
+ padding-bottom: 40px;
+ margin-top: 40px;
+ border-top: 1px solid #eee;
+}
+
+/* Main marketing message and sign up button */
+.jumbotron {
+ text-align: center;
+ background-color: transparent;
+}
+.jumbotron .btn {
+ padding: 14px 24px;
+ font-size: 21px;
+}
+
+/* Customize the nav-justified links to be fill the entire space of the .navbar */
+
+.nav-justified {
+ background-color: #eee;
+ border: 1px solid #ccc;
+ border-radius: 5px;
+}
+.nav-justified > li > a {
+ padding-top: 15px;
+ padding-bottom: 15px;
+ margin-bottom: 0;
+ font-weight: bold;
+ color: #777;
+ text-align: center;
+ background-color: #e5e5e5; /* Old browsers */
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e5e5e5));
+ background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e5e5e5 100%);
+ background-image: -o-linear-gradient(top, #f5f5f5 0%, #e5e5e5 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(top), color-stop(0%, #f5f5f5), to(#e5e5e5));
+ background-image: linear-gradient(top, #f5f5f5 0%, #e5e5e5 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5f5f5', endColorstr='#e5e5e5',GradientType=0 ); /* IE6-9 */
+ background-repeat: repeat-x; /* Repeat the gradient */
+ border-bottom: 1px solid #d5d5d5;
+}
+.nav-justified > .active > a,
+.nav-justified > .active > a:hover,
+.nav-justified > .active > a:focus {
+ background-color: #ddd;
+ background-image: none;
+ -webkit-box-shadow: inset 0 3px 7px rgba(0,0,0,.15);
+ box-shadow: inset 0 3px 7px rgba(0,0,0,.15);
+}
+.nav-justified > li:first-child > a {
+ border-radius: 5px 5px 0 0;
+}
+.nav-justified > li:last-child > a {
+ border-bottom: 0;
+ border-radius: 0 0 5px 5px;
+}
+
+@media (min-width: 768px) {
+ .nav-justified {
+ max-height: 52px;
+ }
+ .nav-justified > li > a {
+ border-right: 1px solid #d5d5d5;
+ border-left: 1px solid #fff;
+ }
+ .nav-justified > li:first-child > a {
+ border-left: 0;
+ border-radius: 5px 0 0 5px;
+ }
+ .nav-justified > li:last-child > a {
+ border-right: 0;
+ border-radius: 0 5px 5px 0;
+ }
+}
+
+/* Responsive: Portrait tablets and up */
+@media screen and (min-width: 768px) {
+ /* Remove the padding we set earlier */
+ .masthead,
+ .marketing,
+ .footer {
+ padding-right: 0;
+ padding-left: 0;
+ }
+}