Git Product home page Git Product logo

fullstackopen's Introduction

Helsinki University Fullstack Open Course - Coursework Repository

This repository contains all my coursework for the Fullstack Open Course offered by the University of Helsinki. Below is a brief overview of what each part of the course covered. It progresses from basic to advanced web development. Most part contains multiple subdirectories with individual projects. Many projects are revisited and and improved throughout the course.

Part 0: Fundamentals of Web Apps

This part introduces the fundamentals of web applications. It covers the basics of web development, including how the web works, basic HTML and CSS, and how to set up a simple web page.

Part 1: Introduction to React

  • JavaScript
  • Creating React applications with Vite
  • Components and props
  • State and event handling
  • Debugging

Part 2: Communicating with Server

This part dives into communicating with a server from a React application. Key concepts include:

  • REST APIs
  • HTTP methods (GET, POST, PUT, DELETE)
  • Asynchronous operations using promises and async/await

Part 3: Programming a Server with NodeJS and Express

This part covers backend development using Node.js and Express. Topics include:

  • Setting up an Express server
  • Handling different routes
  • Middleware
  • Deploying apps to the internet
  • MongoDB as database
  • ESLint

Part 4: Testing Express Servers, User Administration

Part 4 is about testing and user administration in Express servers. The main topics are:

  • Writing unit and integration tests
  • Backend integration testing with Supertest
  • User authentication and authorization
  • References across MongoDB collections

Part 5: Testing React Apps

  • End to end testing: Playwright
  • Unit testing: Vitest & React Testing Library
  • Mocking dependencies

Part 6: Advanced State Management

Advanced state management in React applications, including:

  • Managing data on server: React Query/Tanstack
  • Managing data on the client (simple): useReducer & useContext
  • Managing data on client (advanced): Redux and the flux architecture
  • Handling side effects with Redux Thunk

Part 7: React Router, Custom Hooks, Styling with CSS and Webpack

Part 7 covers additional React features and tools, including:

  • Routing with React Router
  • Creating custom hooks
  • Styling components with CSS
  • Bundling applications with esbuild or Webpack
  • Loaders, transpiling & minification

Part 8: GraphQL

This part introduces GraphQL.

  • Setting up a GraphQL server
  • Writing queries and mutations
  • Using Apollo Client with React
  • Cache invalidation

Part 9: TypeScript

Part 9 focuses on TypeScript, a typed superset of JavaScript. We cover:

  • Basic TypeScript syntax and types
  • Using TypeScript in Express and React apps
  • TypeScript features like interfaces and generics
  • Using type guards
  • Type narrowing

Part 11: CI/CD

Part 11 introduces Continuous Integration and Continuous Deployment (CI/CD). We learn about:

  • Setting up CI/CD pipelines
  • Automated testing and deployment
  • Tools like GitHub Actions and Docker

fullstackopen's People

Contributors

jaco4873 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.