RSClone Final task in RS School course
- Описание задания RSSchool
- Техническое задание на проект
- Ссылка на деплой приложения
- Скрин приложения
- Ссылка на краткое руководство пользователя
- Оценка выполненной работы
Всего баллов 610 из 620
Архитектура приложения 30 из 30 баллов
- Использован MVC паттерн в части общей архитектуры приложения (клиентская часть View - серверная часть Controller + Model) (+20/20)
- Для сборки приложения использован Webpack (+10/10)
Серверная часть 200 из 200 баллов
- Реализована с использованием NodeJS (+20/20)
- Использован паттерн DataMapper для работы слоя Model со слоем СУБД PostgreSQL (+30/30)
- Маршрутизация запросов с использованием фреймворка Fastify (+20/20)
- Использован REST API (+20/20)
- Документирование API приложения с использованием фреймворка Swagger (+30/30)
- Корректные ответы в соответствии со спецификацией кодов ответов HTTP (+20/20)
- Авторизация пользователя (+10/10)
- Использование токенов аутентификации пользователя (+20/20)
- Регистрация пользователя (+10/10)
- Разграничение прав пользователей на выполнение действий с моделями и базой данных (+20/20)
Клиентская часть 370 из 380 баллов
- Приложение реализовано на TypeScript (+30/30)
- Использован MVC паттерн (пользовательский интерфейс View + обработка данных Controller + Model) (+20/20)
- Использован Observer паттерн для реализации оповещения подписчиков о событиях других компонентов (+20/20)
- Использован DataMapper паттерн для работы с серверной частью (+20/20)
- Использован MPA паттерн (клиентской части приложения в целом) с сохранением состояния авторизации (+20/20)
- Использован SPA паттерн (для страницы Main) (+20/20)
- Локализация приложения RU/EN (+20/20)
- Сохранение в LocalStorage настроек локализации при перезагрузке приложения (+20/20)
- Разграничение доступных вкладок для разных ролей пользователя (+30/30)
- Взаимодействие пользователей разных ролей (+30/30)
- Использование стороннего API для новостной ленты (+20/20)
- Использование библиотеки Leaflet для отображения карты OpenStreetMap (+20/20)
- Использование API OpenStreetMap для расчета отображения пути на карте (+20/20)
- Личный кабинет пользователя со статистикой данных (+10/10)
- Детализация объектов карты при клике (+20/20)
- Реализована статистика пользователей с рейтингом (+20/20)
- Реализовано не менее 2 модальных окон (+20/20)
- Не реализован онлайн чат пользователей (+0/10)
- Приложение адаптировано для телефона и десктопа (+20/20)
Дополнительная информация:
- нами используются API бесплатных открытых картографических источников, что может вызывать задержку загрузки тайлов карт и названий местоположений
- в приложении не реализовывалось автоматическое обновление данных сервера и при работе нескольких пользователей необходимо перезагружать страницу