/workshop

Craft Academy - Learn To Code Workshop

Primary LanguageRubyMIT LicenseMIT

Learn To Code

Welcome to the Learn To Code Workshop. For the upcoming 4 days we will spend together, we will explore some techniques used by professional developers during their development process. The idea with this workshop is to showcase some of those techniques and put them in to practice.

The application we will build is a tool to administrate, issue and verify course certificates.

Problem definition

As an education institution/company, I face a growing problem with aggregating course and student's information, and issue appropriate course certificates. I also want to make sure that certificates I issue are not tampered with by bad people, that want to take credit for a course they actually did not attend.

The Learning Experience

What makes this application interesting as a learning experience is that it solves a relatively simple problem but requires implementation of several technologies in order to be completed. We are going to use:

  • A database for storing data (PostgreSQL)
  • Data import functionality
  • A back-end framework (Sinatra)
  • A library to generate pdf files
  • A library to generate images
  • An encryption library
  • A cloud storage service (Amazon Web Services)
  • A Platform as a Service provider (Heroku)
  • Email functionality and service to distribute documents (Gmail)
  • JavaScript (jQuery) to add functionality and to enhance the user experience on the front-end
  • A CSS framework (Foundation) to style the front-end
  • And more...

We will be moving in a rather fast pace but we will take good time to explain everything we do. The most important thing is that you follow us as we move forward. The best way to start to learn to code is.. to code! Even if you don't understand everything, we'd like you to do your best to actually go through the steps in this guide. There's no bigger joy than to see code you've written pass all the tests and come to life in your browser.

Tests? Yes! We will be practicing Behavior Driven Development with a mix of Unit tests. This is to ensure that our application meets the requirements (more on that later).

Open Source

This publication contains the course materials we ask all our future students to go through. You are free to use it for your personal learning needs even if you are not attending our workshop, we encourage that.

It is however not allowed to use this material in a commercial context without our written consent. It is not okay and it is against the very meaning of open source.

We hope that you will enjoy this material and that the learning experience will be valuable to you. We continuously develop this step-by-step guide to improve it so please give us feedback by dropping us an email or opening a ticket on the GH repository CraftAcedemy/workshop.

Also, please have a look at other publications from us and visit our site at craftacademy.se.

If you have any questions, feel free to contact us at info@craftacademy.se

Thomas Ochman
Gothenburg, December 2015
www.craftacademy.se

Disclaimer: This is very much a Work In Progress (WIP) and we will be pushing content regularly so please use the online version if you can or make sure you download/update the pdf, mobi or epub versions regurarly.

Logo

Creative Commons License
Craft Academy Learn To Code Workshop by Pragmatic Sweden is licensed under a
Creative Commons Attribution-NonCommercial 4.0 International License.