Web technologies are constantly evolving, offering developers powerful tools to create dynamic and responsive applications. This course leverages open source technologies to build dynamic web applications with React and Next.js, leveraging Supabase for backend services, and crafting stylish, responsive interfaces with TailwindCSS.
Best-pratices principles and tools including Git, unit tests, security and database modeling are covered. Most important, you will learn how to search, assess and integrate new ideas, libraries, and concepts from the Open Source community.
Follow the requirements for the course.
CM:
- Class presentation / Evaluation
- Syllabus
- Languages used for the web
- Stack/architecture definition
- Architecture of the webtech project
TP: get basic skills
- Computing fundamentals: Linux, networking, shell.
- Basic usage of the most common tools: SSH, SFTP, Git, password managers.
- Confortable in JavaScript, CSS, HTML.
- Master the Markdown format, be ready to respect its syntax with care.
CM:
- Structure of a web application (Back / Front / Microservices)
- Node.js / Server-side JavaScript
- JSON / JS types / YAML
- NPM / Yarn /
package.json
- CommonJS / ECMAScript
- SemVer
- Javascript event loop
- Asynchronous JavaScript (
async
/await
) - Routing
TP: getting started with Node.js & Git
- Getting up and ready with Node.js
- Project and repository initialization
- Web server in Node.js
CM:
- What’s an API?
- REST API and its methods
- GraphQL
- Express and request routing
- Unit testing and assertion
TP:
- Server-side programming with Node.js
- Web server with Express
- Practice unit tests and learn about GraphQL
CM:
- Library / Framework
- Points of using a framework
- Common libs and frameworks for the web
- React
- Next.js
- Demo: Next.js abstractions (basic HTML file > manual package import > NPM > Webpack > Babel > React > Next.js)
TP: getting started with React and Next.js
- Next.js application initialization
- Build a website skeleton for blogging
- Build dynamic routes
CM:
- Problems with CSS and solutions
- CSS-in-JS
- Inline styling, with an object, with CSS modules
- Mixing multiple classes with conditions
- Tailwind CSS, ecosystem and examples
TP: getting started with TailwindCSS
- CSS usages
- Tailwind usage and customization
CM:
- Rendering at Build-time and Run-time
- Re-hydratation
- CSR - Client-Side Rendering
- SSR - Server-Side Rendering
- SSG - Static Site Generation
- ISR – Incremental Static Regeneration
- CI/CD GitOps demo
TP: data fetching and rendering with Next.js
- Understanding the various fetching strategies
- Practicing React and Next.js
CM:
- About state
- State in React
- Local component state with
useState
- Application state with
useContext
- Prop drilling
- Context API and examples
- Form management in React
- Native elements
- Controlled elements
TP: user local and application state, form manipulation
- Form manipulation
- State management in react
CM:
- What is a database and types
- PostgreSQL
- Row-level security (RLS) and its usages
- Supabase
TP: install and use Supabase
- Supabase installation and integration
- PostgreSQL and row-level security
CM:
- OAuth basics and actors
- OAuth flows and scopes
- Tokens and JWT
- Usage of OAuth and OpenID Connect
- PKCE
TP: Supabase Auth UI, Dex and OAuth integration
- Setup authentication with login/password and OAuth
- Learn and practice the AOuth flow
CM:
- Ways to deploy to the web (Bare metal / VPS, PaaS, etc.)
TP:
- Project: Next.js deployment on Vercel
- Project: API deployment on Heroku
- Have fun