Html5bootcamp
Globant's HTML5 Boot Camp is a hands on training course covering a wide number of topics, from the basics of HTML/CSS, JavaScript and AJAX to Design Patterns in JavaScript, MVC frameworks, CSS3 & Responsive Web Design.
Install / Use
/learn @globant-ui/Html5bootcampREADME
HTML5 Boot Camp
The future of Web Applications is here!
Are you ready for it?
Index
Objective
This course teaches the basics of modern Web UI development. We want to help you create the best of breed user experiences, gaming, and mobile applications.
→ index
Who Should Attend
The training will start at a low level, and does not require in depth knowledge of the platform in question. Desirable participant profile: trainees and outside Globant candidates. A basic knowledge on HTML, CSS, and JavaScript is desired, though.
→ index
Duration
Five weeks total.
Three weeks for guided learning and two weeks for app development.
→ index
Technical Assistance
You can contact other bootcamp participants or any available tutor if you need technical assistance. We will create one chat for bootcamp members only, and another one for boot camp members and tutors when boot camp starts.
Performance Measurement
-
Code review after each practice and sprint
-
Checkpoint completion after Learning stage with your assigned tutor
→ index
Handling Advanced Developers
Developers that move faster than average can go ahead and complete as much exercises as wanted.
→ index
Tools
-
At least, three different browsers installed on the developer machine.As Example:
- Chrome
- Firefox
- Android browser using Android's emulator
-
Any IDE available for Web Development.
-
Google Hangouts for calls. Skype might be required too.
-
Create your own GitHub account. Follow this guideline to setup your account.
-
NodeJS server.
- Install
http-serverglobally, by runningnpm install -g http-server. - To start the server, from a command line interface, run
http-serverin the directory where you will clone the startup repo. - Open your web browser and point to localhost:PORT (the
http-servershould have outputted the number of PORT you should use)
- Install
-
Fork Startup repository to use as a base to host the project code.
→ index
General Guidelines
The boot camp is organized in the following way:
-
The first three weeks will be used for intensive self learning. Each topic will have reading and practices parts. Tutors will be available to answer technical questions.
-
The next week will be used to develop an application following a life process.
-
All the exercises must work within a mobile environment.
-
Team play is encouraged but the work will be evaluated per person.
-
All code and documentation must be in English.
-
Code must adhere to Globant’s UI HTML, CSS and JavaScript coding guidelines.
→ index
Learning Days
Each day you will grab the fundamentals of the key building blocks for the next generation mobile apps: yeah, web apps! Web apps powered by the latest, and coolest toolkits, and techniques.
On each learning day you will have to:
-
Read: We will provide you with documentation related with current sprint content so you can have a background reference, guide and examples to complete the following practice.
-
Practice: You will implement the previously gathered knowledge in simple coding activities. Most important task numbers are listed in the "Key Points" section for each day and they should get most of your attention. If you feel you don’t have enough time to complete all tasks, start with these ones when possible.
-
Commit: YOu will commit all your code as soon as you finish each exercise. If not you must commit your work in a daily basis.
Introduction
At high level you could see the keys as:

HTML describes the content semantics and structure of a web page. It was designed as a markup language, if you know XML, you could consider HTML as a subset of XML with a predefined semantic.
On the other hand, CSS allows to define the look and feel of the content. It's used to set colors on HTML elements, customize sizes, define the layout of the document content, among others. (e.x. "The following list of elements must be shown as a menu", "The main title of the page should use this particular font").
JavaScript is a programming language that runs in all Web Browsers. Using JavaScript we can create full-fledge web applications.
Now that you know which are the three pilars of a web application's UI, it's time to dive into them.
<h4 id="topic0">Topic 0 - HTML & CSS Basics</h4>This topic is hosted in a different repository, you can find it in HTML & CSS Basics
→ index
<h4 id="topic1">Topic 1 - JavaScript, and DOM APIs</h4>Reading
-
Beginner: Eloquent JavaScript 2nd Edition basic tutorial (in case you need it!)
-
Beginner to advance: Speaking JavaScript: An In-Depth Guide for Programmers
-
Recommended: devdocs.io to check Web platform documentation around JavaScript, frameworks, Browser APIs, etc
Extra documentation
-
Web Platform Documentation Project: http://www.webplatform.org/
-
MDN JavaScript Reference: https://developer.mozilla.org/en/JavaScript/Reference
-
Understanding ECMAScript 6: https://leanpub.com/understandinges6/read
-
ECMAScript® 2015 Language Specification For really advanced developers
-
JSONP and CORS: http://json-p.org/ - http://www.html5rocks.com/en/tutorials/cors/
-
Using Chrome console to debug JavaScript https://developer.chrome.com/devtools/docs/console
Practice
Latest IE, Chrome and Firefox browser should be used. All exercises must be done with ECMAScript 6 syntax.
-
Creating our index page with some sections.
-
Create a file called
index.htmlwith the correct doctype and some random content. -
Add a stylesheet to the HTML file and use it to center the texts of all
sectionelements. -
Add a hidden
sectionwithHello Worldinside of it. -
When the page finished loading the section must fade in.
-
-
Adding some events
-
Add a button below the
sectionto your index page. -
Create a function that showcases an alert message when called.
-
Attach a click event to the created button which calls the function previously created.
-
-
Data fetching
-
Create a function to get the response from http://api.icndb.com/jokes/random.
-
Replace the button's click event with this new function.
-
Write the response inside the
sectionelement. -
Create a reusable function to perform AJAX calls. This function must accept a
configobject and return an ES6 Promise. -
If a server error occurs
sectioncontent must turn red. -
Hint: Use the XMLHttpRequest to fetch data from the service.
-
-
Data fetching with parameters
-
Create a function to get the response from https://api.github.com/search/repositories with parameters
q = 'JavaScript'. -
Showcase a list of repositories, provided by the service, in the right side of the screen.
-
Hint:
ulmust be used to list the repositories. -
Add an input with
type="text"to perform a search for any value.
-
-
W3C
- Validate your page using W3C validator: https://addons.mozilla.org/en-US/firefox/addon/web-developer/
-
DOM manipulation
-
Write a function that takes as input a matrix of data and outputs a DOM structure representing a table. Attach it to the body of a given page.
-
Hint: use
document.createElement,document.createTextNode, andNode.appendChildmethods.
-
Key Points:
1, 3, 4, 6
→ index
<h4 id="topic2">Topic 2 - Design Patterns and OOP in JavaScript</h4>In this Topic we will focus on learning how JavaScript approaches Object-Oriented programming.
If you come from Java, or .NET you will find yourself a little bit lost at the beggining. ECMAScript6 provides a layer of syntactic sugar over the previous version (5.1) that is expected to simplify the language.
Reading
- Understand how prototypes works in ECMAScript 5.1 [http://yehudakatz.com/2011/08/12/understanding-prototypes-in-javascript/](http://yehudakatz.com/2011/08/12/understanding-pr
