nest-permissions-seed

Шаблонный (boilerplate) проект на NestJS с JWT, Guards и разрешениями.

Контекст появления

В общем, когда NestJS только появился, никто не знал, как на нём писать приложения, а информации в интернете было очень мало.

У меня уже был опыт работы с разными технологиями:

  • Backend: .NET Core, Java Spring
  • Frontend: Angular
  • Домашние проекты: Django на Python

Я искал информацию в интернете и собрал шаблонный проект (бойлерплейт), который начал использовать, чтобы показывать, как нужно писать на NestJS.

Сейчас эти все практики не актуальны, мои подходы поменялись, но проект всё ещё полезен для новичков, так как демонстрирует основы NestJS без переусложнений — всё сделано в лоб.

Назначение проекта

nest-permissions-seed — это демо-шаблон / boilerplate:

  • Показывает базовую архитектуру NestJS приложения
  • Демонстрирует permissions и роли пользователей (admin, user)
  • Содержит JWT авторизацию и Guards для проверки прав
  • Подключена база данных и миграции
  • Swagger UI для тестирования API
  • Seed-данные для быстрого старта

Цель: дать готовую стартовую точку для новичков и показать правильные подходы к структуре и организации кода.

Структура бойлерплейта

Проект минималистичный, типичный для NestJS, но упрощённый для обучения:

  • src/ — исходный код приложения
    • modules/ — модули (permissions, auth, users)
    • guards/ — Guards для проверки ролей и разрешений
    • entities/ — сущности базы данных (User, Role, Permission)
    • services/ — бизнес-логика и работа с данными
    • controllers/ — REST API контроллеры
  • config/ — настройки приложения и JWT
  • scripts/ — миграции и инициализация базы
  • main.ts — точка входа приложения

Проект сделан наглядно и просто, без лишних абстракций.

Технические особенности

  • TypeScript и стандартные возможности NestJS (модули, DI, Guards)
  • JWT авторизация и проверка ролей через Guards
  • Реляционная база данных (PostgreSQL/MySQL)
  • Swagger UI локально и онлайн для тестирования API
  • Seed-данные пользователей:
    • admin@admin.com / 12345678 (admin)
    • user1@user1.com / 12345678 (user)
    • user2@user2.com / 12345678 (user)

Инструкция по использованию шаблона

  1. Клонировать репозиторий:
    git clone --recursive https://github.com/EndyKaufman/nest-permissions-seed.git
  2. Установить Node.js ≥6 и NPM ≥3
  3. npm install — установка зависимостей
  4. Скопировать _env в .env и настроить окружение
  5. npm run schema:sync — создать таблицы базы данных
  6. npm run migrate:run — выполнить миграции
  7. npm run start:prod — запустить продакшн-сервер
    (npm run start:watch — dev-сервер)
  8. Swagger: https://nest-permissions-seed.herokuapp.com/swagger

Временные затраты на создание бойлерплейта

Этап Примерное время
Инициация проекта и настройка NestJS 2–4 часа
Реализация модели Permissions + Guards 4–8 часов
JWT авторизация и seed-данные 3–6 часов
Настройка Swagger и база данных 2–5 часов
Тестирование, документация, примеры 2–4 часа

Итого: ~12–27 человекочасов для опытного разработчика.

Актуальность

  • Сейчас эти все практики не актуальны, мои подходы поменялись
  • Проект ориентирован на новичков — демонстрирует основы NestJS без переусложнений
  • Всё сделано максимально просто, как шаблон/бойлерплейт, чтобы наглядно показать структуру и подходы
  • Отличная стартовая точка для изучения и дальнейшего расширения

Итог

nest-permissions-seed — это боилерплейт / шаблон проекта, созданный для обучения и быстрого старта на NestJS. Он показывает базовую архитектуру, работу с permissions, Guards и JWT, предоставляя готовый пример для дальнейшего использования.