hummel009 / Modern-Programming-Platforms

СПП - лабораторные работы, курсовая БГУИР

Repository from Github https://github.comhummel009/Modern-Programming-PlatformsRepository from Github https://github.comhummel009/Modern-Programming-Platforms

Code Smells Maintainability Rating Security Rating Bugs Vulnerabilities Duplicated Lines (%) Reliability Rating Quality Gate Status Technical Debt Lines of Code

Мои лабораторные работы для BSUIR/БГУИР (белорусский государственный университет информатики и радиоэлектроники).

Предмет - SPP/СПП (современные платформы программирования).

Условия

Курсовая работа

Интернет-магазин книг с бэкендом Kotlin Ktor и фронтендом React. Есть деплоймент на докерхаб.

Лабораторная работа 1

Разработать простое приложения с рендерингом на сервере. Например, список задач со статусом их выполнения, фильтрацией по статусу и выставлением ожидаемой даты завершения, а также возможностью прикреплять файлы к каждой задаче. Сервер должен отдавать клиенту готовую разметку, отправка данных серверу должна осуществляться через отправку форм. Обязательно использование NodeJS , конкретные библиотеки могут отличаться. Например, подойдут Express + EJS.

Лабораторная работа 2

Простое приложение, как в лабораторной работе №1, но с другой архитектурой. На сервере должен быть реализован REST API , на клиенте - Single Page Application . Обмен данных должен осуществляться путем отправки/принятия HTTP-запросов с данными в формате JSON или файлов в формате multipart/form-data . Обновление данных на клиенте не должно приводить к перегрузке страницы. Серверный REST API должен поддерживать ожидаемую семантику: правильно использовать HTTP-методы ( GET для чтения данных, POST/PUT для изменения, DELETE для удаления и т.п.) и возвращать правильные коды ответов (200 в случае успешного чтения/изменения данных, 404 если ресурс не найдет и т.п.). Обязательно использование NodeJS на сервере. На клиенте можно использовать что угодно, React/Angular/Vue или вообще без библиотеки.

Лабораторная работа 3

Добавить к приложению из лабораторной №2 аутентификацию на базе JWT-токенов . Токен должен передаваться через httponly cookie на клиент и так же отправляться на сервер. При попытке прочитать/изменить данные на сервере без валидного токена, клиенту должен возвращаться 401 код. При получении кода 401 клиент должен потребовать от пользователя ввода логина/пароля. Для формирования JWT-токена можно использовать только пакеты jsonwebtoken и bcrypt . Логику аутентификации нужно описать в виде отдельного middleware той библиотеки, на которой написан сервер (например, Express )

Лабораторная работа 4

Как лабораторная работа №3, но заменить REST API на обмен данных через WebSockets. Можно использовать библиотеку Socket.IO.

Лабораторная работа 5

Как лабораторная работа №3, но на сервере сделать API на GraphQL.

Лабораторная работа 6

Как лабораторная работа №3, но сервера теперь два, и один с другим общается посредством GRPC.

Приложения

В папке docs лежит пояснительная записка к курсовой работе.

About

СПП - лабораторные работы, курсовая БГУИР

License:GNU General Public License v3.0


Languages

Language:Kotlin 48.9%Language:JavaScript 36.0%Language:CSS 8.1%Language:HTML 6.0%Language:EJS 0.9%Language:Batchfile 0.1%Language:Dockerfile 0.1%