This is my course submission repository for The Full Stack Open 2022 by The University of Helsinki!
- 💡 What I Learnt
- Part 1 - Introduction to React
- Part 2 - Communicating with server
- Part 3 - Programming a server with NodeJS and Express
- Part 4 - Testing Express servers, user administration
- Part 5 - Testing React apps
- Part 6 - State management with Redux
- Part 7 - React router, custom hooks, styling app with CSS and webpack
- Part 8 - GraphQL
- Part 9 - TypeScript
- 💌 Other Full Stack Open Repositories
- Javascript ES6.
- Component architecture.
- Helper functions.
- Page re-rendering.
- Stateful components.
- React hooks.
- Event handling.
- Debugging React applications and React devtools.
- Rendering a collection.
- Using HTML forms.
- Controlled components.
- Handling data stored in a remote server.
- JavaScript Promises.
- REST API.
- Single responsibility principle and modularizing backend communication.
- Adding CSS to React.
- HTTP verbs and resource oriented architecture.
- curl and Postman.
- HTTP safety and idempotence standards.
- Using middlewares.
- Same origin policy and CORS.
- Deploying to Heroku.
- Debugging Node applications and Chrome dev tools.
- Validating received data using mongoose custom validators.
- Configuring ESLint.
- Unit and Integration tests.
- User authentication and authorization.
- Node.js project directory structure best practices.
- jest.
- supertest to test backend API.
- Using async/await and express-async-errors to refactor tests.
- Introduction to database modelling.
- Token based authentication and it's limitations.
- Testing the React code.
- Component references with useRef.
- Integrating prop-types.
- Rendering test components using react-testing-library.
- Debugging tests.
- End to End testing using cypress.
- Bypassing the UI.
- Introduction to Flux-architecture.
- Moving app state to the Redux store.
- Pure functions and immutability.
- Introduction to test driven development.
- Action creators and forwarding Redux-Store.
- Complex state and combined reducers.
- Trimming redux configuration using Redux Toolkit.
- Redux DevTools.
- Asynchronous actions and Redux Thunk.
- Using react-redux's connect-function for older projects that do not use the hook-api (Legacy code maintainance ⚔️).
- Presentational, container, and higher order components. A brief breakdown of design choices.
- React router and application navigation structure.
- Custom hooks.
- React UI libraries comparision and the styled components library.
- Bundling with webpack.
- Babel loader to transpile JSX into regular JavaScript.
- Loading CSS with css-loader and injecting a merged style element with style-loader.
- Incorporating hot reload with webpack-dev-server.
- Generating source-map to trace errors during execution and enable Chrome debugger.
- Minification using UglifyJS.
- Adding polyfill for browser compatibility.
- Class components.
- An overview of React-Node app security, Server-side rendering and Universal code, PWAs, Microservice architecture, and Serverless computing.
- GraphQL Schemas and Queries.
- Apollo server and Apollo studio explorer.
- Mutations and their resolvers.
- Error handling and GraphQL validation.
- Enums and Query filtering.
- Named queries and parameters.
- Handling cache.
- Management of application state by Apollo client.
- Fragments.
- Subscriptions.
- Key features - type annotations, structural typing, type inference - and why one should use TypeScript.
- Initializing an express app using tsc.
- Union types and interfaces.
- Utility types.
- Proofing received data and type guards.
- React components with TypeScript.
- Exhaustive type checking.
Annnnnnd, a lot more!!
- Full Stack Open 2022 - mitulagr2/phonebook-fullstackopen
- Full Stack Open React Native 2021 - mitulagr2/fso-rate-repository-app
- Full Stack Open CI/CD - mitulagr2/full-stack-open-pokedex
- Full Stack Open Containers - mitulagr2/fso-containers-and-orchestration
Open to any suggestions on how to make this better! Much appreciated!