lecturer of 2025/2026 Spring semester
Not opened for teaching. Click the study programme link below to see the nominal division schedule.
Course aims
The objective of the course is to introduce modern stack for server and client side development. Therefore the course provides needed to provide theoretical knowledge and practical skills for creating complete web applications, including testing them, publishing and managing.
Brief description of the course
The course provides an overview of the JavaScript knowledge required for React and introduces the fundamentals of React (CRA) and TypeScript through hands-on exercises. Students will learn how to deploy React applications on GitHub Pages, configure and use the Prettier code formatter, and work with UI libraries such as Material UI, Mantine, and shadcn/ui.
The course also covers building a server application with NodeJS and Express, including authentication with JWT, and implementing CRUD functionality. Later, students will be introduced to NextJS (with Vercel) and Supabase. Version control with git and GitHub will be practiced, along with writing tests and setting up a development environment (NodeJS, git, Visual Studio Code).
During the project phase, students will apply Agile methods and GitHub workflows (backlog, issues, milestones). They will practice remote stand-ups via Discord, sprint planning, using the GH Project Board, creating low-fidelity wireframes, making pull requests, performing code reviews, handling code conflicts, and collaborating in parallel development.
Throughout the course, students work in teams to develop a shared web project while following git conventions and feature branching. They will define project functionalities, document them as GitHub issues, and organize the work into week-long sprints marked with milestones. The overall goal is to give students practical experience with the full software development process as it operates in modern tech companies.
Learning outcomes in the course
Upon completing the course the student:
- is able to evaluate complexity of creating web application;
- is able to design testing schema and write tests;
- is able to enhance application by developing additional modules for both backend and frontend;
- uses style guide for writing code.