Приложение на Nestjs должно работать аналогично приложению, которое было создано с помощью express. В файле readme.md должна быть таблица со сравнением производительности Nestjs express vs Nestjs fastify
Guardsдолжны использоваться для работы с авторизацией/аутентификацией +30 баллов- В приложении должны использоваться модули для разбиения структуры приложения на различные части (
User,Board,Task) +30 баллов Exception filtersдолжны использоваться для обработки исключений в приложении +30 баллов@nestjs/typeormдолжен использоваться для работы с базой данных +30 баллов- Для логирования может использоваться встроенный
Loggerили кастомная имплементация. +30 баллов - Все внешние зависимости для модулей/классов должны предоставляться с помощью механизма
dependency injection. +30 баллов - В зависисимости от env переменной
USE_FASTIFYNest.jsдолжен использовать илиexpressилиfastify+30 баллов - Необходимо сравнить производительность
Nest.jsс использованиемexpressиfastify(можно использовать для этих целей artillery) +30 баллов
- Наличие изменений в тестах либо в workflow минус 200 баллов
- Внесение изменений в репозиторий после дедлайна не считая коммиты, вносящие изменения только в
Readme.mdи другую документацию) минус 30% от максимального балла за задание (для этого задания 72 балла) - За отсутствие отдельной ветки для разработки -20 баллов
- За отсутствие
Pull Request-20 баллов - За неполную информацию в описании
Pull Request(отсутствует либо некорректен один из 3 обязательных пунктов) -10 баллов - За каждую ошибку линтера при запуске
npm run lintна основе локального конфига -5 баллов (именноerrors, неwarnings) - За каждый непроходящий тест npm run test:auth -20 баллов
- Меньше 3 коммитов (не считая коммиты, вносящие изменения только в
Readme.mdи другую документацию) — -20 баллов
- Для проведения load testing берем один модуль нашего приложения и тестриуем все CRUD методы нашего ресурса (какой ресурс вы будете тестировать вы можете выбрать сами). Если для тестируемого ендпоинта необходима авторизация, то необходимо получить токен заранее и передвать его с каждым запросом.
Вот пример репорта, полученного с помощью vegeta, который вы должны прикрепить в ваш readme.md (тулза для lead tesing может использоваться любая)
| Requests | [total, rate, throughput] | 65584, 6558.34, 6558.26 |
| Duration | [total, attack, wait] | 10s, 10s, 130.149µs |
| Latencies | [min, mean, 50, 90, 95, 99, max] | 122.225µs, 151.803µs, 147.911µs, 160.265µs, 164.189µs, 194.74µs, 3.094ms |
| Success | [ratio] | 100.00% |
| Status Codes | [code:count] | 200:65584 |
| Requests | [total, rate, throughput] | 118489, 11848.94, 11848.84 |
| Duration | [total, attack, wait] | 10s, 10s, 80.298µs |
| Latencies | [min, mean, 50, 90, 95, 99, max] | 63.858µs, 83.763µs, 81.544µs, 88.909µs, 92.922µs, 136.839µs, 8.852ms |
| Success | [ratio] | 100.00% |
| Status Codes | [code:count] | 200:118489 |