1. Загальний опис
Необхідно розробити вебзастосунок на базі Yii2 з базовим функціоналом управління користувачами та їх ролями.
2. Функціональні вимоги
2.1. Система аутентифікації та реєстрації
- Реєстрація користувачів із валідацією введених даних.
- Вхід у систему за допомогою email і пароля.
- Відновлення пароля через email.
- Вихід із системи.
2.2. Управління користувачами
- Перегляд списку користувачів.
- Перегляд детальної інформації про користувача.
- Редагування даних користувача.
- Видалення користувача (soft delete).
2.3. Ролі та права доступу
- Створення та редагування ролей.
- Призначення ролей користувачам.
- Контроль доступу на основі ролей (RBAC).
2.4. Адміністративна панель
- Панель керування для адміністратора з можливістю:
- Додавати/видаляти користувачів.
- Призначати ролі.
- Керувати правами доступу.
2.5. REST API
- Реалізація REST API для інтеграції з іншими сервісами.
- Авторизація через API-токени (наприклад, Passport або Sanctum).
- Документування API (наприклад, за допомогою Swagger).
3. Нефункціональні вимоги
- Використання MVC-архітектури.
- Дотримання сучасних стандартів кодування (PSR).
- Безпечне збереження паролів (bcrypt або Argon2).
- Використання Eloquent ORM для роботи з базою даних.
- Валідація введених даних на серверному рівні.
- Дружній інтерфейс адміністративної панелі.
4. Документація
- Інструкція з налаштування та запуску проєкту.
- Опис структури БД та основних компонентів.
- Документація API.
5. Технічні деталі
- Yii2 версія 2+.
- База даних MySQL або PostgreSQL.
- Використання Docker (опціонально).
- Контроль версій через Git.
6. Вимоги до розробника
- Рівень: Middle.
- Досвід роботи з Yii2, REST API, базами даних.
- Знання принципів SOLID, патернів проєктування.