Lectures:
Introduction to Web Programming
- World Wide Web, Internet, client/server architecture, full-stack development, development methodology, Git,
- Web standards HTML, CSS and Bootstrap,
JavaScript – Web programming language on the client and server side
- Language development, higher order functions, regular expressions, modules, JavaScript and web browser, DOM, event handling, HTTP,
- Node.js, npm, file server, MVC and various environments (Docker, cloud hosting),
Backend and data access
- Database model, schema, local and hosted database, REST API, method, response, status of a request, (geographic) qury with GET,
- Adding data with POST, updating with PUT and deleting data with DELETE, documenting with Swagger and OpenAPI,
User interface
- TypeScript, Angular (modules, components, services, pipes, expressions), backend communication,
- Angular SPA, routing, navigation, nested components, geolocation, trasnfer data between components, security exceptions, working with forms, modal window, two-way binding,
- Identity verification, one-way password encryption, JWT token, authentication API, securing API access point, authorization when updating, Swagger documentation update, authentication service at the client side, registration and login, browsing history, user settings in browser,
Decentralised applications and blockchain
- DApps, blockchain, Ethereum network, Ether, gas, calls, transactions, EVM, smart contracts,
- Solidity (state variable, constructor, functions, testing, multiple inheritance), libraries, interfaces, ERC20, Truffle,
- Web3 (user interface, testing with Ganache, deploying smart contract, MetaMask),
Additional functionalities
- Web application security, OWASP, the trend of top security risks of web applications, recommendations for developers, security check with OWASP ZAP,
- Testing, functional tests with Selenium, review with Lighthouse, Pregressive Web Applications (PWA), offline browsing, caching remote data.
Tutorials:
Laboratory project: programming of distributed full stack web application, divided into individual phases (static pages, client-side code, server-side code, services). The students will develop the projects that will be introduced with the final presentation.