Welcome to my repository for the Full Stack open course offered by the Department of Computer Science at the University of Helsinki.
This repository contains the solutions for parts 0 to 9, and parts 10 to 13 are in separate repositories (links are in the sections below).
The complete solutions demonstrate proficiency across the following technologies:
- JavaScript & TypeScript
- React (with Hooks, Router, Redux, React Query)
- E2E Testing (Cypress / Playwright)
- Node.js & Express
- MongoDB (via Mongoose)
- PostgreSQL
- GraphQL (via Apollo)
- Jest/Vitest (Unit & Integration Testing)
- Docker & Docker Compose
- CI/CD (GitHub Actions)
Topics: HTML/CSS, JavaScript libraries, HTTP requests, JSON, DOM manipulation.
Projects:
- Sequence Diagrams - Illustrates network communication flow for single-page applications versus traditional web apps.
Topics: React components and JSX, Props and state management, Event handlers, React hooks (useState).
Projects:
- Course Info - Simple application to display course information using React components.
- Unicafe - Feedback collection system demonstrating state management with React hooks.
- Anecdotes - Platform for voting on and displaying random anecdotes.
Topics: HTTP requests with Axios, REST APIs consumption, Forms and user input handling, Rendering collections, Effect hook (useEffect).
Projects:
- Course Info - Refactored version of Part 1 project with improved component structure.
- Countries App - Search and display country information with data fetched from REST Countries API.
- PhoneBook Frontend - Contact management application with CRUD operations, using JSON Server as a mock backend.
Topics: Node.js and Express, REST API development, MongoDB with Mongoose, Middleware error handling, ESlint, Deployment.
Projects:
- PhoneBook Backend - Express-based phonebook backend for the Part 2 frontend, using Mongoose and MongoDB for data storage, validation.
Topics: Backend testing with Jest/Supertest, User authentication (JWT), Password hashing (bcrypt), Async/await.
Projects:
- Bloglist Backend - Backend built with Express to create, read, and update blog posts, with some endpoints requiring authentication and tests written using Jest and SuperTest.
Topics: React component testing (Jest and React Testing Library), End-to-end testing with Playwright, Frontend authentication, PropTypes.
Projects:
- Bloglist Frontend and Playwright - Full frontend for the Bloglist application with login functionality, blog management, and comprehensive end-to-end testing using Playwright.
Topics: Redux fundamentals, Redux Thunks for async actions.
Projects:
- Query Anecdotes - Anecdotes application using React Query for server state management.
- Redux Anecdotes - Anecdotes application rebuilt with Redux for global state management.
- Unicafe Redux - Unicafe feedback system reimplemented using Redux.
Topics: React Router, Custom Hooks, Styling (CSS, Material-UI), Webpack configuration, Class components.
Projects:
- Bloglist - Bloglist application with routing, custom hooks, and improved UI.
- Routed Anecdotes - Anecdotes application with React Router for navigation between views.
- Country Hook - Country search application demonstrating custom hooks for API calls.
- Ultimate Hooks - Collection of custom React hooks for various use cases.
Topics: GraphQL queries and mutation, Apollo Client and Server, DataLoader, Subscriptions.
Projects:
- Library App - Book library application with GraphQL backend and frontend, featuring real-time updates.
Topics: TypeScript, Form Validation (Formik), Semantic UI React.
Projects:
- Course Info - Course information application rewritten in TypeScript.
- Flight Diary - Flight diary application with TypeScript backend and frontend.
- Patientor - Medical records management application with full TypeScript stack.
- TypeScript Exercises - Collection of TypeScript practice exercises.
Topics: React Native development, Expo framework, Mobile app styling, Form handling on mobile.
Projects:
- Rate Repository App - Mobile application for rating and reviewing GitHub repositories.
Topics: GitHub Actions, Continuous Integration pipelines, Automated testing and deployment.
Projects:
- CI/CD pipeline for the Pokedex App - Complete CI/CD pipeline for a Pokedex application.
- CI/CD pipeline for the Phonebook App - CI/CD implementation for the Phonebook application.
Topics: Docker containerization, Docker Compose.
Projects:
- ToDo App - Todo application containerized with Docker.
- Flight Diary - Flight diary application deployed using Docker containers.
Topics: Sequelize, PostgreSQL, Database migrations.
Projects:
- Bloglist SQL - Bloglist application rebuilt with PostgreSQL and Sequelize ORM.