Skip to content

LIU0611/fullstackopen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Full Stack Open - University of Helsinki - 2024

About the course

The course focuses on Modern JavaScript-based Web Development, particularly on building single-page applications with ReactJS that interact with REST APIs created using Node.js.

The course also covers additional topics, including:

  • GraphQL: A modern alternative to REST APIs.
  • TypeScript: An open-source, typed superset of JavaScript that compiles to plain JavaScript.
  • React Native: An open-source UI software framework for creating native mobile applications using JavaScript.
  • CI/CD: Continuous Integration (CI) and Continuous Delivery (CD).
  • Docker Containers: An open platform for developing, shipping, and running applications by virtualizing the operating system on which it is installed.

Course Exercise

Part 0: Fundamentals of Web Apps

Covers the basics of web applications, their architecture, and the role of the browser and server. Introduces HTML, CSS, and JavaScript.

  • New note - Diagram of browser-server communication when adding a note with JavaScript.
  • Single page app - Diagram of browser-server communication for a single page app.
  • New note (single page app) - Diagram of browser-server communication when adding a note to a single page app.

Part 1: Introduction to React

Focuses on the basics of React, including components, props, state, and event handling. Introduces JSX and the concept of a component tree.

  • Course Information - React component displaying a course name, its parts, and total exercises.
  • Unicafe - React component for feedback collection and statistics display.
  • Anecdotes - React component for displaying and voting on random anecdotes.

Part 2: Communicating with Server

Teaches how to interact with servers using REST APIs, Axios for HTTP requests, and handling asynchronous operations with Promises and async/await.

  • Course Information - React component displaying a web development curriculum.
  • Phonebook - React component managing a phonebook application with add, update, delete, and filter functionalities, fetching initial data from a server, and handling form submissions and notifications.
  • Countries with Weather: React component for searching and displaying country details and current weather for the capital.

Part 3: Programming a Server with NodeJS and Express

Introduces backend development with Node.js and Express, covering routing, middleware, and building RESTful APIs. Emphasizes creating a full-stack application by connecting the front end to the back end.

  • Phonebook - Comprehensive phonebook application using Node.js and Express for server-side logic and MongoDB for data storage. Features include adding, updating, and deleting contacts, with a React front end and server-side validation and ESLint integration for data integrity and code consistency.

Part 4: Testing Express Servers, User Administration

Discusses testing Node.js applications using Jest and Supertest. Covers user authentication and authorization, including hashing passwords and handling user sessions.

Part 5: Testing React Apps

Focuses on testing React applications with React Testing Library and Jest. Covers unit tests, integration tests, and end-to-end tests to ensure application reliability.

Part 6: Advanced State Management

Introduces Redux for state management in larger applications. Covers actions, reducers, and the Redux store, as well as using Redux Toolkit for simplifying state logic.

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

Enhances React applications with React Router for navigation, custom hooks for reusable logic, advanced CSS techniques, and Webpack for bundling assets.

Part 8: GraphQL

Teaches the basics of GraphQL, a query language for APIs. Covers defining a schema, writing queries and mutations, and using Apollo Client for integrating GraphQL in React applications.

Part 9: TypeScript

Introduces TypeScript, a statically-typed superset of JavaScript. Covers types, interfaces, and using TypeScript with React and Node.js for improved code quality and developer experience.

Part 10: React Native

Focuses on building mobile applications with React Native, covering components, styling, navigation, and accessing device capabilities.

Part 11: CI/CD

Covers Continuous Integration and Continuous Deployment practices, including setting up CI/CD pipelines with tools like GitHub Actions and deploying applications to various environments.

Part 12: Containers

Introduces containerization using Docker. Covers creating Docker images, writing Dockerfiles, and managing containers for development and production environments.

Part 13: Using Relational Databases

Teaches how to work with SQL databases. Covers database design, writing SQL queries, and integrating databases with backend applications using ORMs like Sequelize.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published