# BaseApp BootCamp

# Web Application Developer



# Week 1 - Setup and Tools

The first week we will learn about setting up the work Envoirnment and setup various tools which will be used during your daily routine. You can either use Linux and Windows for Dvelopement 

For linux we recommend Ubuntu 20.04 LTS 
Windows use whatever is > Windows 7 

[Web Devlopment in 2021]:(https://www.youtube.com/watch?v=VfGW0Qiy2I0)



### Hardware 

* Please make sure to have a Full HD ( 1080p ) monitor 
* SSD as a storage setup 
* 8GB + Ram 

### Console - *Use it when possible*

Console is your firend so get comfortable with console based tools , to get a console on Windows please install Git SCM , use its console. Please learn to use the following commands 

* **cd**
* **ls** 
* **grep** - Regex searching , recursive searching , listing files , piping seached files 
* **head** and **tail**
* **vim** - Command mode and Insert , ! , wq , dd , w , %s , searching 
* **ln** 
* **find** - File Searching 
* **xargs** 
* **tar** 
* **zip** 
* **curl**
* **weget** 
* **ssh**
* **scp**  

### Source Control

In most cases you will be working in a team so you will be useing Git as the main source control tool , Install git and learn to do the following operations , you can use github to create a dummy account - 

* **init** , **clone** , **commit** , **push** ,  **brach** , **merge** , **stash** 

As a exercise create a repo , edit a text file and push to the repo then do the following operations

* Create a Repo on github and clone it locally 
* Make changes to a text file and push it to cloud 
* Create a brach and edit text file 
* Edit text file in branch and merge to main branch 
* Clone repo in a seprate directory and edit the file at multiple similar locations
* Merge and resolve conflict  

### Editor

Though you can use vim for editing , we recommend using VSCode for editing and development. Its lightweight , free and maintaned by Microsoft with logs of addons availbile. 


### Package Managers 

For different setups different package managers will be used , Depending on your install you will use one of the following -

* apt
* yarn 
* pip 
* composer 

### Virtual Machines

**vagrant** - Vagrant is a tool focused on providing a consistent development environment workflow across multiple operating systems.

Please install vagrant for your setup , this will help have a consistent work envoirnmnt acorss multiple platforms . 

### Misc tools 

Some other misc tools we find helpful 

* **Clipboard managers** - Development is a lot of copy paste so a Clipboard manager helps ( W:Ditto )
* **Launchers** - These tools help you quickly launch application / perform small operations in a small launchable app ( W:Launchy )
* **Text Editors** - Small text editors to edit config files / hex editing etc ( W:pspad )

# Week 2 - HTML , CSS , Javascript

This week we will start with working on basic Web Technologies , This does not involve any programming but mainly how things are rendered . Use the editor VSCode for all your work , it support live viewing which is quite helpful.

[VSCode Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer)

#### Web Server
Learn about what is a web server, what are the vaious type of requests and what are status codes. 

#### HTML 

The HyperText Markup Language, or HTML is the standard markup language for documents designed to be displayed in a web browser. Mainly a few basic tags are to be covered as most can be reffered to later on. Main idea is to cover the following 
* What is a standard Markup
* Basic concepts
  * Block vs Inline Elements
  * Forms
  * Divs and Spans
  * HTML 5 
* Knowledge of common tags and their attributes
    * Head
    * Body
    * Meta
    * div / span - 
    * a - links , anchors , open in new page 
    * ul / ol / li - lists 
    * form / input  - Varios form input types

[Basics HTML Beginners Video]:(https://www.youtube.com/watch?v=UB1O30fR-EE)

#### CSS

Cascading Style Sheets is a style sheet language used for describing the presentation of a document written in a markup language such as HTML. Following is to be covered and explored - 

* What is CSS And why its used
* Knowledge of variosu tags and how to use them 


#### Javascript