{"id":27393917,"url":"https://github.com/cats256/full-stack-open","last_synced_at":"2026-04-11T05:04:34.877Z","repository":{"id":173179076,"uuid":"649971618","full_name":"cats256/full-stack-open","owner":"cats256","description":"Exercise solutions for Full Stack Open","archived":false,"fork":false,"pushed_at":"2023-07-07T23:06:54.000Z","size":47578,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-03T11:58:43.312Z","etag":null,"topics":["docker","express","javascript","mongodb","mooc","moocs","node","react","rest-api","typescript","university-of-helsinki"],"latest_commit_sha":null,"homepage":"https://fullstackopen.com/en","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cats256.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-06-06T03:43:27.000Z","updated_at":"2023-09-02T06:27:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"9f9c6aa5-50cd-45bb-9b21-fe98f5241dfc","html_url":"https://github.com/cats256/full-stack-open","commit_stats":null,"previous_names":["cats256/full-stack-open"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cats256/full-stack-open","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cats256%2Ffull-stack-open","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cats256%2Ffull-stack-open/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cats256%2Ffull-stack-open/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cats256%2Ffull-stack-open/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cats256","download_url":"https://codeload.github.com/cats256/full-stack-open/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cats256%2Ffull-stack-open/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31669118,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T17:19:37.612Z","status":"online","status_checked_at":"2026-04-11T02:00:05.776Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","express","javascript","mongodb","mooc","moocs","node","react","rest-api","typescript","university-of-helsinki"],"created_at":"2025-04-13T22:16:18.058Z","updated_at":"2026-04-11T05:04:34.871Z","avatar_url":"https://github.com/cats256.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Deep Dive Into Modern Web Development\n\n## [Full Stack Open](https://fullstackopen.com/en/)\n\nLearn React, Redux, Node.js, MongoDB, GraphQL, TypeScript, React Native, GitHub Actions and Docker 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.\n\nThe course also contains a section on GraphQL, a modern alternative to REST APIs. The course covers testing, configuration and environment management, the use of databases for storing the application’s data amongst other things.\n\nThe course is totally free of charge. You can get a certificate and even the University of Helsinki ECTS credits for free.\n\n### [Part 0 - Fundamentals of Web apps](https://fullstackopen.com/en/part0)\n\n    a. General Info\n\n    b. Fundamentals of Web apps\n\n### [Part 1 - Introduction to React](https://fullstackopen.com/en/part1)\n\n    a. Introduction to React\n\n    b. JavaScript\n\n    c. Component State, event handlers\n\n    d. A more complex state, debugging React apps\n\n### [Part 2 - Communicating with server](https://fullstackopen.com/en/part2)\n\n    a. Rendering a collection, modules\n    \n    b. Forms\n    \n    c. Getting data from server\n    \n    d. Altering data in server\n    \n    e. Adding style to React apps\n\n### [Part 3 - Programming a server with NodeJS and Express](https://fullstackopen.com/en/part3)\n\n    a. Node.js and Express\n    \n    b. Deploying app to internet\n    \n    c. Saving data to MongoDB\n    \n    d. Validation and ESLint\n\n### [Part 4 - Testing Express servers, user administration](https://fullstackopen.com/en/part4)\n\n    a. Structure of backend application, introduction to testing\n    \n    b. Testing the backend\n    \n    c. User administration\n    \n    d. Token authentication\n\n### [Part 5 - Testing React apps](https://fullstackopen.com/en/part5)\n\n    a. Login in frontend\n    \n    b. props.children and proptypes\n    \n    c. Testing React apps\n    \n    d. End to end testing\n\n### [Part 6 - Advanced state management](https://fullstackopen.com/en/part6)\n\n    a. Flux-architecture and Redux\n    \n    b. Many reducers\n    \n    c. Communicating with server in a redux application\n    \n    d. React Query, useReducer and the context\n\n    e. connect (the old part)\n\n### [Part 7 - React router, custom hooks, styling app with CSS and webpack](https://fullstackopen.com/en/part7)\n\n    a. React Router\n    \n    b. Custom hooks\n    \n    c. More about styles\n    \n    d. Webpack\n    \n    e. Class components, Miscellaneous\n    \n    f. Exercises - extending the bloglist\n\n### [Part 8 - GraphQL](https://fullstackopen.com/en/part8)\n\n    a. GraphQL-server\n    \n    b. React and GraphQL\n    \n    c. Database and user administration\n    \n    d. Login and updating the cache\n    \n    e. Fragments and subscriptions\n\n### [Part 9 - TypeScript](https://fullstackopen.com/en/part9)\n\n    a. Background and introduction\n    \n    b. First steps with TypeScript\n    \n    c. Typing an express app\n    \n    d. React with types\n\n    e. Grande finale: Patientor\n\n    f. Legacy patientor (the old material)\n\n### [Part 10 - React Native](https://fullstackopen.com/en/part10)\n\n    a. Introduction to React Native\n    \n    b. React Native basics\n    \n    c. Communicating with server\n    \n    d. Testing and extending our application\n\n### [Part 11 - CI/CD](https://fullstackopen.com/en/part11)\n\n    a. Introduction to CI/CD\n    \n    b. Getting started with GitHub Actions\n    \n    c. Deployment\n    \n    d. Keeping green\n    \n    e. Expanding Further\n\n### [Part 12 - Containers](https://fullstackopen.com/en/part12)\n\n    a. Introduction to containers\n    \n    b. Building and configuring environments\n    \n    c. Basics of Orchestration\n\n### [Part 13 - Using relational databases](https://fullstackopen.com/en/part13)\n\n    a. Using relational databases with Sequelize\n    \n    b. Join tables and queries\n    \n    c. Migrations, many-to-many relationships\n\n## Course Certificates\n\n    - Not available\n    \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcats256%2Ffull-stack-open","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcats256%2Ffull-stack-open","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcats256%2Ffull-stack-open/lists"}