Personal solutions for Full Stack open: React, Node/Express, testing, Redux, React Router, GraphQL, and related tooling. Parts 0–8 live under partN/; parts 9–13 follow the MOOC sites linked in SUBMISSION.txt.
- Node.js (current LTS) and npm
- MongoDB for Part 3 phonebook and Part 4 bloglist (e.g. Atlas URI or local
mongod/ Docker) - Optional: OpenWeather API key as
VITE_OPENWEATHER_API_KEYfor Part 2countries
| Directory | Content |
|---|---|
part0/ |
Fundamentals, HTML, sequence diagrams |
part1/ |
courseinfo, unicafe, anecdotes (Vite + React) |
part2/ |
courseinfo, phonebook (+ json-server), countries |
part3/phonebook/ |
Express + Mongoose API; UI in frontend/ |
part4/bloglist/ |
Blog API + tests (npm test uses in-memory MongoDB) |
part5/bloglist-frontend/ |
Blog UI; Vitest + Cypress |
part6/ |
Redux unicafe, RTK anecdotes (+ json-server for anecdotes) |
part7/routed-anecdotes/ |
React Router + custom hooks |
part8/ |
Apollo GraphQL server (backend/) + React client (frontend/) |
Install dependencies inside each app you use:
cd part1/courseinfo && npm install && npm run devPart 2 phonebook: in one terminal npm run server (port 3001), in another npm run dev (Vite).
Part 3 phonebook: copy part3/phonebook/.env.example to .env, set MONGODB_URI. From part3/phonebook/: npm run build:ui then npm start (default API 3001; do not run Part 2’s json-server on 3001 at the same time). For UI-only dev with hot reload, use frontend/ + npm run dev (proxy targets the API port in vite.config.js).
Part 4 + 5: set part4/bloglist/.env from .env.example, then npm start in part4/bloglist and npm run dev in part5/bloglist-frontend (frontend proxies to the blog API port in Vite config).
Part 6 anecdotes: npm run server in part6/anecdotes (port 3002), then npm run dev.
Part 8: npm start in part8/backend (see backend/.env for PORT), then npm run dev in part8/frontend.
University of Helsinki flow, exam, and MOOC parts are summarised in SUBMISSION.txt. Official material: General info.
Course material is CC BY-NC-SA 3.0; your own exercise code is yours—respect the course plagiarism rules when submitting.