{"id":22873383,"url":"https://github.com/juanescacha/fullstackopen","last_synced_at":"2025-05-06T18:14:55.515Z","repository":{"id":151478995,"uuid":"600483851","full_name":"Juanescacha/FullStackOpen","owner":"Juanescacha","description":"React, Node, MongoDB, REST, GraphQL, TypeScript, React Native, CI/CD, Databases and Containers exercises for Full Stack Open course","archived":false,"fork":false,"pushed_at":"2024-11-18T05:29:51.000Z","size":3998,"stargazers_count":12,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-06T18:14:49.076Z","etag":null,"topics":["ci-cd","cypress","docker","express","fullstack","fullstackopen","graphql","helsinki-university-mooc","javascipt","mongodb","node","react","react-native","react-query","react-redux","react-router-dom","restful-api","typescript","webdev"],"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/Juanescacha.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}},"created_at":"2023-02-11T16:30:49.000Z","updated_at":"2024-12-19T18:09:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"4d9e6c30-1a55-4fa7-b207-50ca11199c65","html_url":"https://github.com/Juanescacha/FullStackOpen","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Juanescacha%2FFullStackOpen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Juanescacha%2FFullStackOpen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Juanescacha%2FFullStackOpen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Juanescacha%2FFullStackOpen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Juanescacha","download_url":"https://codeload.github.com/Juanescacha/FullStackOpen/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252741473,"owners_count":21797027,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["ci-cd","cypress","docker","express","fullstack","fullstackopen","graphql","helsinki-university-mooc","javascipt","mongodb","node","react","react-native","react-query","react-redux","react-router-dom","restful-api","typescript","webdev"],"created_at":"2024-12-13T14:18:43.083Z","updated_at":"2025-05-06T18:14:55.493Z","avatar_url":"https://github.com/Juanescacha.png","language":"JavaScript","readme":"# Full Stack Open Exercises\n\nExercises for the course: Full Stack Open.\nUsing Javascript, React, Node, Express, REST API, Typescript and more technologies by Juan Esteban Camargo.\n\nSubmission for the [Full Stack Open](https://fullstackopen.com/) by the [University of Helsinki's Department of Computer Science](https://www.mooc.fi/en).\n\n## Overview\n\n-   **[Certificate of Completion](#certificate-of-completion)**\n-   **[Status](#status)**\n-   **[About](#about)**\n-   **[Course Content](#course-content)**\n\n## Certificate of Completion\n\n![certificate-till-the-moment-of-the-current-module-on-the-course](/certificate/certificate-part7.png)\n\n## Status\n\n| Part | Status |\n| ---- | ------ |\n| 0    | ✅     |\n| 1    | ✅     |\n| 2    | ✅     |\n| 3    | ✅     |\n| 4    | ✅     |\n| 5    | ✅     |\n| 6    | ✅     |\n| 7    | ✅     |\n| 8    | ✅     |\n| 9    | ✅     |\n| 10   |        |\n| 11   |        |\n| 12   |        |\n| 13   |        |\n\n## About\n\nLearn React, Redux, Node.js, MongoDB, GraphQL and TypeScript 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\n## Course Content\n\n### Part 0: Fundamentals of Web apps\n\n\u003col type=\"a\"\u003e\n \u003cli\u003eGeneral info\u003c/li\u003e\n \u003cli\u003eFundamentals of Web apps\u003c/li\u003e\n\u003c/ol\u003e\n\n### Part 1: Introduction to React\n\n\u003col type=\"a\"\u003e\n  \u003cli\u003eIntroduction to React\u003c/li\u003e\n  \u003cli\u003eJavascript\u003c/li\u003e\n  \u003cli\u003eComponent state, event handlers\u003c/li\u003e\n  \u003cli\u003eA more complex state, debugging React apps\u003c/li\u003e\n\u003c/ol\u003e\n\n### Part 2: Communicating with server\n\n\u003col type=\"a\"\u003e\n  \u003cli\u003eRendering a collection, modules\u003c/li\u003e\n  \u003cli\u003eForms\u003c/li\u003e\n  \u003cli\u003eGetting data from server\u003c/li\u003e\n  \u003cli\u003eAltering data in server\u003c/li\u003e\n  \u003cli\u003eAdding styles to React app\u003c/li\u003e\n\u003c/ol\u003e\n\n### Part 3: Programming a server with NodeJS and Express\n\n\u003col type=\"a\"\u003e\n  \u003cli\u003eNode.js and Express\u003c/li\u003e\n  \u003cli\u003eDeploying app to internet\u003c/li\u003e\n  \u003cli\u003eSaving data to MongoDB\u003c/li\u003e\n  \u003cli\u003eValidation and ESLint\u003c/li\u003e\n\u003c/ol\u003e\n\n### Part 4: Testing Express servers, user administration\n\n\u003col type=\"a\"\u003e\n  \u003cli\u003eStructure of backend application, introduction to testing\u003c/li\u003e\n  \u003cli\u003eTesting the backend\u003c/li\u003e\n  \u003cli\u003eUser administration\u003c/li\u003e\n  \u003cli\u003eToken authentication\u003c/li\u003e\n\u003c/ol\u003e\n\n### Part 5: Testing React apps, custom hooks\n\n\u003col type=\"a\"\u003e\n  \u003cli\u003eLogin in frontend\u003c/li\u003e\n  \u003cli\u003eprops.children and proptypes\u003c/li\u003e\n  \u003cli\u003eTesting React apps\u003c/li\u003e\n \u003cli\u003eEnd to end -testing\u003c/li\u003e\n\u003c/ol\u003e\n\n### Part 6: Advanced state management\n\n\u003col type=\"a\"\u003e\n \u003cli\u003eFlux-architecture and Redux\u003c/li\u003e\n \u003cli\u003eMany reducers\u003c/li\u003e\n \u003cli\u003eCommunicating with server in a redux application\u003c/li\u003e\n \u003cli\u003eReact Query, useReducer and the context API\u003c/li\u003e\n\u003c/ol\u003e\n\n### Part 7: React router, styling app with CSS and webpack\n\n\u003col type=\"a\"\u003e\n \u003cli\u003eReact-router\u003c/li\u003e\n \u003cli\u003eCustom hooks\u003c/li\u003e\n \u003cli\u003eMore about styles\u003c/li\u003e\n \u003cli\u003eWebpack\u003c/li\u003e\n \u003cli\u003eClass components, E2E-testing\u003c/li\u003e\n \u003cli\u003eExercises: extending the bloglist\u003c/li\u003e\n\u003c/ol\u003e\n\n### Part 8: GraphQL\n\n\u003col type=\"a\"\u003e\n \u003cli\u003eGraphQL-server\u003c/li\u003e\n \u003cli\u003eReact and GraphQL\u003c/li\u003e\n \u003cli\u003eDatabase and user administration\u003c/li\u003e\n \u003cli\u003eLogin and updating the cache\u003c/li\u003e\n \u003cli\u003eFragments and subscriptions\u003c/li\u003e\n\u003c/ol\u003e\n\n### Part 9: Typescript\n\n\u003col type=\"a\"\u003e\n \u003cli\u003eBackground and Introduction\u003c/li\u003e\n \u003cli\u003eFirst Steps with Typescript\u003c/li\u003e\n \u003cli\u003eTyping express app\u003c/li\u003e\n \u003cli\u003eReact with types\u003c/li\u003e\n\u003c/ol\u003e\n\n### Part 10: React Native\n\n\u003col type=\"a\"\u003e\n \u003cli\u003eIntroduction to React Native\u003c/li\u003e\n \u003cli\u003eReact Native basics\u003c/li\u003e\n \u003cli\u003eCommunicating with server\u003c/li\u003e\n \u003cli\u003eTesting and extending our application\u003c/li\u003e\n\u003c/ol\u003e\n\n### Part 11: CI/CD\n\n\u003col type=\"a\"\u003e\n \u003cli\u003eIntroduction to CI/CD\u003c/li\u003e\n \u003cli\u003eGetting started with GitHub Actions\u003c/li\u003e\n \u003cli\u003eDeployment\u003c/li\u003e\n \u003cli\u003eKeeping green\u003c/li\u003e\n \u003cli\u003eExpanding Further\u003c/li\u003e\n\u003c/ol\u003e\n\n### Part 12: Containers\n\n\u003col type=\"a\"\u003e\n \u003cli\u003eIntroduction to Containers\u003c/li\u003e\n \u003cli\u003eBuilding and configuring environments\u003c/li\u003e\n \u003cli\u003eBasic Orchestration\u003c/li\u003e\n\u003c/ol\u003e\n\n### Part 13: Using relational databases\n\n\u003col type=\"a\"\u003e\n \u003cli\u003eUsing relational databases with Sequelize\u003c/li\u003e\n \u003cli\u003eJoin tables and queries\u003c/li\u003e\n \u003cli\u003eMigrations, many-to-many relationships\u003c/li\u003e\n\u003c/ol\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuanescacha%2Ffullstackopen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuanescacha%2Ffullstackopen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuanescacha%2Ffullstackopen/lists"}