Section 6: Lab: Strapi 5 with PostgreSQL on Docker
- What a headless CMS is, and how Strapi speeds up backend work
- Create a Strapi 5 project connected to PostgreSQL
- Run Strapi and PostgreSQL together with Docker Compose
- Keep secrets in a .env file and data in volumes
- Lab: open the admin panel and create the first administrator
Section 7: Designing Content Types and Relations
- Collection types, single types and field types
- Relations between products, categories and suppliers
- Draft and publish, and managing images in the Media Library
- Components and dynamic zones for flexible data
- Lab: the inventory content types with sample data
Section 8: Lab: REST API, Permissions and JWT
- The Strapi 5 REST API: the new response format and documentId
- Filtering, sorting, pagination and populating related data
- Users and Permissions roles, and opening access endpoint by endpoint
- Registering and signing in through /api/auth/local to receive a JWT
- Lab: test public and authenticated API calls with Postman
Section 9: Calling the API from React
- Manage the API URL with Vite environment variables
- Write a typed API client with fetch
- TanStack Query: useQuery, useMutation and refreshing data
- Showing loading and error states consistently
- Lab: a product list page that loads real data from Strapi
Section 10: Lab: Sign-in and Protected Routes
- Register and sign-in pages that call the Strapi API
- Storing the token carefully: localStorage versus cookies, and the XSS risk
- An auth context that attaches the token to every request
- Protected routes with React Router, and signing out
- Lab: keep signed-out users away from the product management pages