Skip to content

Learning React, Redux, Node.js, MongoDB, GraphQL, and TypeScript as a part of Full Stack Open 2022.

Notifications You must be signed in to change notification settings

mitulagr2/fullstackopen

Repository files navigation

Full Stack Open 2022 🔥

This is my course submission repository for The Full Stack Open 2022 by The University of Helsinki!

certificate-fullstack

Table of contents

💡 What I Learnt

Part 1 - Introduction to React

  • Javascript ES6.
  • Component architecture.
  • Helper functions.
  • Page re-rendering.
  • Stateful components.
  • React hooks.
  • Event handling.
  • Debugging React applications and React devtools.

Part 2 - Communicating with server

  • Rendering a collection.
  • Using HTML forms.
  • Controlled components.
  • Handling data stored in a remote server.
  • JavaScript Promises.
  • REST API.
  • Single responsibility principle and modularizing backend communication.
  • Adding CSS to React.

Part 3 - Programming a server with NodeJS and Express

  • HTTP verbs and resource oriented architecture.
  • curl and Postman.
  • HTTP safety and idempotence standards.
  • Using middlewares.
  • Same origin policy and CORS.
  • Deploying to Heroku.
  • Debugging Node applications and Chrome dev tools.
  • Validating received data using mongoose custom validators.
  • Configuring ESLint.

Part 4 - Testing Express servers, user administration

  • Unit and Integration tests.
  • User authentication and authorization.
  • Node.js project directory structure best practices.
  • jest.
  • supertest to test backend API.
  • Using async/await and express-async-errors to refactor tests.
  • Introduction to database modelling.
  • Token based authentication and it's limitations.

Part 5 - Testing React apps

Part 6 - State management with Redux

  • Introduction to Flux-architecture.
  • Moving app state to the Redux store.
  • Pure functions and immutability.
  • Introduction to test driven development.
  • Action creators and forwarding Redux-Store.
  • Complex state and combined reducers.
  • Trimming redux configuration using Redux Toolkit.
  • Redux DevTools.
  • Asynchronous actions and Redux Thunk.
  • Using react-redux's connect-function for older projects that do not use the hook-api (Legacy code maintainance ⚔️).
  • Presentational, container, and higher order components. A brief breakdown of design choices.

Part 7 - React router, custom hooks, styling app with CSS and webpack

  • React router and application navigation structure.
  • Custom hooks.
  • React UI libraries comparision and the styled components library.
  • Bundling with webpack.
  • Babel loader to transpile JSX into regular JavaScript.
  • Loading CSS with css-loader and injecting a merged style element with style-loader.
  • Incorporating hot reload with webpack-dev-server.
  • Generating source-map to trace errors during execution and enable Chrome debugger.
  • Minification using UglifyJS.
  • Adding polyfill for browser compatibility.
  • Class components.
  • An overview of React-Node app security, Server-side rendering and Universal code, PWAs, Microservice architecture, and Serverless computing.

Part 8 - GraphQL

  • GraphQL Schemas and Queries.
  • Apollo server and Apollo studio explorer.
  • Mutations and their resolvers.
  • Error handling and GraphQL validation.
  • Enums and Query filtering.
  • Named queries and parameters.
  • Handling cache.
  • Management of application state by Apollo client.
  • Fragments.
  • Subscriptions.

Part 9 - TypeScript

  • Key features - type annotations, structural typing, type inference - and why one should use TypeScript.
  • Initializing an express app using tsc.
  • Union types and interfaces.
  • Utility types.
  • Proofing received data and type guards.
  • React components with TypeScript.
  • Exhaustive type checking.

Annnnnnd, a lot more!!

💌 Other Full Stack Open Repositories

- Full Stack Open 2022 - mitulagr2/phonebook-fullstackopen

- Full Stack Open React Native 2021 - mitulagr2/fso-rate-repository-app

- Full Stack Open CI/CD - mitulagr2/full-stack-open-pokedex

- Full Stack Open Containers - mitulagr2/fso-containers-and-orchestration

Thank you very much!

Open to any suggestions on how to make this better! Much appreciated!

About

Learning React, Redux, Node.js, MongoDB, GraphQL, and TypeScript as a part of Full Stack Open 2022.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published