Web Programming
Osnovni podatki
Opis predmeta
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.
Cilji
The main course objective is to introduce the students of computer and information science the technologies, connected with the full stack development of web applications (on the server and the client-side). The students shall be equipped with knowledge to independently develop such applications.
The competences that students gain are:
- knowledge of static technologies HTML, CSS, XML,
- knowledge of JavaScript programming language for client-side development
- knowledge of Node.js technology (JavaScript proramming languae) for server-side development,
- knowledge of MongoDB NoSQL database
- web service development,
- employment of the model-view-controller architecture,
- consideration of security principles,
- knowledge of decentralized application development with blockchain communication.
Metode poučevanja in učenja
Lectures with practical examples/demonstrations, making of laboratory project (guided by the assistant).