How liljaydi/full-stack-open works
This repository is a collection of Full Stack Open course exercises, not one integrated application. Its projects span small React feedback, anecdote, and curriculum demos; country lookup with weather; a phonebook frontend and API; and a blog-list frontend and backend. The graph keeps these as separate product branches. The country API calls and blog backend routing are evidenced; the phonebook frontend-to-backend and blog frontend-to-backend links are shown as unverified because the excerpts do not establish their endpoint wiring.
Main entry points: src/App.jsx Phonebook App · src/App.jsx Bloglist App · src/App.jsx Country Search · app.js Blog API Server
Components 34
Part 1 React Demos
- Anecdotes
part1/anecdotes/src/App.jsx - Feedback Statistics
part1/unicafe/src/App.jsx - Course Summary
part1/courseinfo/src/App.jsx
Part 2 React Apps
- Country Search
part2/countries/src/App.jsx - Country List
part2/countries/src/components/CountriesList.jsx - Country Detail
part2/countries/src/components/Country.jsx - Curriculum Viewer
part2/courseinfo/src/App.jsx - Course View
part2/courseinfo/src/components/Course.jsx - Course Header
part2/courseinfo/src/components/Header.jsx - Course Content
part2/courseinfo/src/components/Content.jsx
Phonebook Stack
- Phonebook App
part2/phonebook/src/App.jsx - Person API Client
part2/phonebook/src/services/persons.js - Contact Filter
part2/phonebook/src/components/Filter.jsx - Contact Form
part2/phonebook/src/components/PersonForm.jsx - Contact List
part2/phonebook/src/components/Persons.jsx - Phonebook Notices
part2/phonebook/src/components/Notification.jsx - Phonebook Errors
part2/phonebook/src/components/ErrorNotification.jsx - Phonebook API
part3/phonebook-backend/index.js - Person Model
part3/phonebook-backend/models/person.js
Bloglist Frontend
- Bloglist App
part5/bloglist-frontend/src/App.jsx - Blog API Client
part5/bloglist-frontend/src/services/blogs.js - Login Client
part5/bloglist-frontend/src/services/login.js - Blog View
part5/bloglist-frontend/src/components/Blog.jsx - Blog Form
part5/bloglist-frontend/src/components/BlogForm.jsx - Form Toggle
part5/bloglist-frontend/src/components/Togglable.jsx - Blog Notices
part5/bloglist-frontend/src/components/Notification.jsx
Bloglist Backend
- Blog API Server
part4/bloglist-backend/app.js - Blog Routes
part4/bloglist-backend/controllers/blogs.js - Login Routes
part4/bloglist-backend/controllers/login.js - User Routes
part4/bloglist-backend/controllers/users.js - Blog Model
part4/bloglist-backend/models/blog.js
Other components
- User
- REST Countries API
- OpenWeather API
Connections 32
- User → Anecdotes: votes
part1/anecdotes/src/App.jsx - User → Feedback Statistics: rates
part1/unicafe/src/App.jsx - User → Country Search: searches
part2/countries/src/App.jsx - Country Search → Country List: renders
part2/countries/src/App.jsx - Country Search → Country Detail: renders
part2/countries/src/App.jsx - Country Search → REST Countries API: requests data
part2/countries/src/App.jsx - Country Search → OpenWeather API: requests weather
part2/countries/src/App.jsx - Curriculum Viewer → Course View: renders
part2/courseinfo/src/App.jsx - Course View → Course Header: renders
part2/courseinfo/src/components/Course.jsx - Course View → Course Content: renders
part2/courseinfo/src/components/Course.jsx - User → Phonebook App: manages contacts
part2/phonebook/src/App.jsx - Phonebook App → Person API Client: calls
part2/phonebook/src/App.jsx - Phonebook App → Contact Filter: renders
part2/phonebook/src/App.jsx - Phonebook App → Contact Form: renders
part2/phonebook/src/App.jsx - Phonebook App → Contact List: renders
part2/phonebook/src/App.jsx - Phonebook App → Phonebook Notices: renders
part2/phonebook/src/App.jsx - Phonebook App → Phonebook Errors: renders
part2/phonebook/src/App.jsx - Person API Client → Phonebook API: calls API
- Phonebook API → Person Model: queries
part3/phonebook-backend/index.js - User → Bloglist App: uses
part5/bloglist-frontend/src/App.jsx - Bloglist App → Blog API Client: calls
part5/bloglist-frontend/src/App.jsx - Bloglist App → Login Client: logs in
part5/bloglist-frontend/src/App.jsx - Bloglist App → Blog View: renders
part5/bloglist-frontend/src/App.jsx - Bloglist App → Blog Form: renders
part5/bloglist-frontend/src/App.jsx - Bloglist App → Form Toggle: renders
part5/bloglist-frontend/src/App.jsx - Bloglist App → Blog Notices: renders
part5/bloglist-frontend/src/App.jsx - Blog API Client → Blog API Server: calls API
- Login Client → Blog API Server: authenticates
- Blog API Server → Blog Routes: mounts route
part4/bloglist-backend/app.js - Blog API Server → Login Routes: mounts route
part4/bloglist-backend/app.js - Blog API Server → User Routes: mounts route
part4/bloglist-backend/app.js - Blog Routes → Blog Model: queries
part4/bloglist-backend/controllers/blogs.js