Skip to content

This repository contains my work (lectures and assignments) for the [University of Helsinki's Full Stack Open curriculum.](https://fullstackopen.com/en)

Notifications You must be signed in to change notification settings

penguinness/FullStackOpen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FullStackOpen

This repository contains my work (lectures and assignments) for the University of Helsinki's Full Stack Open curriculum.

Part 0: Fundamentals of Web apps

These are some preliminary diagrams to understand how web applications work under the hood

Part 1: Introduction to React

In Part 1, I made some React apps which interactively render information on the browser.

What I learned: Event handling, component handling, state handling (useState, useEffect), conditional rendering.

Part 2: Communicating with server

In Part 2, I made some React apps which communicate with JSON objects/servers.

What I learned: Array handling, forms handling, server communication (GET, PUT, POST, DELETE), error handling, exception handling, API fetching.

Note: Part 2's CourseInfo is an improvement of Part 1's CourseInfo

Part 3: Programming a server with NodeJS and Express

In Part 3, I made some backend servers using Node and Express.

What I learned: Node JS, Express JS, morgan, cors, nodemon, Postman, middleware, deployment, MongoDB, validation, linting.

Note: Part 3's Notes is a slightly modified version of Part 2's Notes for integration purposes.

Part 4: Testing Express servers, user administration

In Part 4, I made some backend applications, wrote unit tests for them, and integrated user administration and token authentication.

What I learned: Project structuring, lodash, supertest, backend unit testing, asynchronous operation (async/await), user administration, bcrypt, token authentication (jsonwebtoken), populate.

Note: Part 4's Notes project is a vastly extended version of Part 3's Notes project.

Part 5: Testing React apps

In Part 5, I integrated user administration and token authentication into the frontend of some applications, wrote unit tests for them, and wrote end-to-end tests using Playwright.

What I learned: Login on frontend (with token authentication), local storage, props.children, proptypes, useRef, forwardRef, useImperativeHandle, state lifting, frontend unit testing (vitest), render, screen, mock functions, end-to-end testing (Playwright).

Note: Part 5's Notes project is a vastly extended version of Part 4's Notes project.

Part 6: Advanced state management

In Part 6, I created several front-end applications using Redux, React Query, and the Context API, and made them communicate with json-servers.

What I learned: Redux, Redux Toolkit, Redux Thunk, React Query, Context API (useReducer, createContext, useContext).

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

In Part 7, I created several front-end applications, integrated routing with React Router, created custom hooks, integrated Redux and React Query to two frontend applications and styled them with Material UI. I also practiced manually bundling a simple app with Webpack.

What I learned: React Router, custom hooks, React Bootstrap, Material UI, styled-components, Webpack.

Note: ReduxBloglist is the most advanced project I've worked on so far. It builds on the bloglist project from Part 5 by incorporating advanced state management with Redux, adding a comments feature, and utilizing Material UI for styling.

About

This repository contains my work (lectures and assignments) for the [University of Helsinki's Full Stack Open curriculum.](https://fullstackopen.com/en)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published