# Deep Dive Into Modern Web Development ## [Full Stack Open](https://fullstackopen.com/en/) Learn React, Redux, Node.js, MongoDB, GraphQL and TypeScript in one go! This course will introduce you to modern JavaScript-based web development. The main focus is on building single page applications with ReactJS that use REST APIs built with Node.js. ## Notes: This repository contains the answers to the [Full Stack Open version 2024](https://fullstackopen.com/en/) course from the University of Helsinki. Throughout the repository I made an effort to treat each exercise as a commit with the # of the exercise, this was complicated in some cases but I did it this way so that those who review the answers do not have to work.During part 0 and 1 I was studying and solving the exercises from the Spanish version. But from [part 2](https://fullstackopen.com/en/part2) onwards I started using the English version because it is more updated in some details from what I could see. During the course I made several "auxiliary repos", you can find some of the exercises solved with some of my notes about the course in: [this repo](https://github.com/fernargdev/full-stack-open-notes). Also the repos I made to deal with specific modules of this course are the urls in the readme of the specific module. ## Modules ### [Part 0 - Fundamentals of Web apps](https://fullstackopen.com/en/part0) - General Info - Fundamentals of Web apps [See the answers](https://github.com/fernargdev/full-stack-open/tree/main/part_0) ### [Part 1 - Introduction to React](https://fullstackopen.com/en/part1) - Introduction to React - JavaScript - Component State, event handlers - A more complex state, debugging React apps [See the answers](https://github.com/fernargdev/full-stack-open/tree/main/part_1) ### [Part 2 - Communicating with server](https://fullstackopen.com/en/part2) - Rendering a collection, modules - Forms - Getting data from server - Altering data in server - Adding style to React apps [See the answers](https://github.com/fernargdev/full-stack-open/tree/main/part_2) ### [Part 3 - Programming a server with NodeJS and Express](https://fullstackopen.com/en/part3) - Node.js and Express - Deploying app to internet - Saving data to MongoDB - Validation and ESLint [See the answers](https://github.com/fernargdev/full-stack-open/tree/main/part_3) ### [Part 4 - Testing Express servers, user administration](https://fullstackopen.com/en/part4) - Structure of backend application, introduction to testing - Testing the backend - User administration - Token authentication - Legacy: Testing with Jest [See the answers](https://github.com/fernargdev/full-stack-open/tree/main/part_4) ### [Part 5 - Testing React apps](https://fullstackopen.com/en/part5) - Login in frontend - props.children and proptypes - Testing React apps - End to end testing: Playwright - End to end testing: Cypress [See the answers](https://github.com/fernargdev/full-stack-open/tree/main/part_5) ### [Part 6 - Advanced state management](https://fullstackopen.com/en/part6) - Flux-architecture and Redux - Many reducers - Communicating with server in a Redux application - React Query, useReducer and the context [See the answers](https://github.com/fernargdev/full-stack-open/tree/main/part_6)