# Web development

## Online classes

**At the moment, due to the Covid situation, all our teaching activities happen online through** [**ZOOM**](http://zoom.us/)**. Please find some important information about our online class below:**

### Cameras

Most students don't like to connect to the camera, but please ask them in a friendly way to still enable them. Some students have good reasons to disable it - we will inform you in advance about this.

### Breakout Rooms

In each class on saturday we will create a breakout room with maximum 4 students, so they can work together in the exercises. The supporting instructors can be assigned to a group and the main mentor can switch through them.

### Support in the classes

In each class, the following people are present:

* Yogi, Vincent and/or Diana to manage
* The Main Instructor
* One or more supporting instructors

Outside the classes, there are many volunteers to further help students.

![](https://961530839-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MRVzxrxQhk2sxc6UAyx%2F-MTbj6xHWNNmPpnAD99Z%2F-MTbkhlMScmsM3DUPFi6%2F0%20\(22\)%20\(1\).jpeg?alt=media\&token=5df4e066-8655-48c1-b411-1f1033e76989)

## Weekly class structure

### Lecture Day (Weekday)

1. Introduction to the week's materials
2. Teaching/explaining the materials
3. Doing exercises now and then to practice
4. Give homework to be finished for Saturday class

### Practice Day (Saturday)

1. Finish any remaining explanations from the weekday class
2. Check together, solve doubts and fix the Homework exercises
3. List of exercises depends on the week

## Class structure

In general, we maintain the following class structure:

* 1.5 hours teaching to start with
* 10 mins break
* then 1 hour teaching
* 15 mins break
* 1 hour of teaching

### Before the class

10 minutes before the class we will share the Zoom link in the class channels (i.e. Jan2020-1). Around 18h all students will join and we will start the class then as well.

{% hint style="info" %}
If you are a new (supporting) instructor, feel free to write a quick intro about yourself in the class channel before the class starts! Or you can introduce yourself in the class, of course.
{% endhint %}

### At the beginning of the class

1. Migracode Team will manage the first 5 minutes, with an introduction
2. Then we will split the class in 2 groups: Spanish and English students
3. The Main & Supporting Instructors can do a quick introduction (Introduce yourself, explain where you work, etc.)
4. Then the main instructor will lead the class

### At the end of the class

The main instructor will explain and copy the Homework in the Trello Board. Our Head of Education will help you with this as well.

{% content-ref url="class-information/lesson-structure-example" %}
[lesson-structure-example](https://volunteers.migracode.org/coding-course/class-information/lesson-structure-example)
{% endcontent-ref %}

## Exercises Repositories in Github

All the exercises students should complete during the class, as homework and on saturday, are all inside a GitHub repository that they fork and clone every module. The structure is as follows:

* For each week of the module we have a folder with the week number week-1
* Inside each week folder, we can find 3 folders:
  * InClass: exercises they should complete during the class
  * Homework: exercises they should complete after the class and before Saturday
  * Extra: optional exercises students can complete when they want
* See a [repository example](https://github.com/Migracode-Barcelona/javascript-module-1)

## Tools that we use

As a mentor you can use the O.S. that you have, or you can use other tools not listed taking into account to not confuse students

* Slack: for main communication with students
* Trello: to find the homework and to manage the final projects
* ZOOM: to be used for the online classes and breakout rooms
* Ubuntu: most students have Ubuntu, but there are some students with Mac or Windows
* Visual Code: is the IDE we use for all the languages during the course
* Git: all the students have a GitHub account and push their exercises always using the Terminal
* Node: is the tool we use to execute by command line scripts without UI
* NPM: to install modules and to execute Web Servers
* Chrome: Browser we normally use, and we teach how to use the inspector
* PostgreSQL
* DBeaver: as an SQL client with UI

## Know your students

To see the students progress ask for access to the [Students Progress](https://docs.google.com/spreadsheets/d/1TKd_X-bsx1qbInkAv7x5d3slkJF9sEExfCnFRyjllBk) sheet.

![](https://961530839-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MRVzxrxQhk2sxc6UAyx%2F-MTaZbhayPs5hJONjQ6l%2F-MTahRaSejfNw_ycJR8i%2FDSC_0694migracode-bcn.jpg?alt=media\&token=c9380a5e-5799-4d15-86a0-2bbeb1a791a5)
