## Notifications
- [ ] Implement email notifications
	- Create a notification service class
	- Add function to send email on package creation
		- Trigger email in PackageController after package is created
		- Compose email with package details
		- Configure recipient(s) and email template
	- Add function to send email on repository addition
		- Trigger email in RepositoryController after repo is added
		- Compose email with repository details
		- Configure recipient(s) and email template
	- Add tests for notification logic

# Detailed Project Todo List

## Foundation
- [x] Create .github/copilot-instructions.md
- [x] Clarify project requirements
- [x] Scaffold Yii2 STATIS emulator project
- [x] Customize project for package management
- [x] Compile project and install dependencies
- [x] Ensure documentation is complete
	- Review and update README.md
	- Add project overview and usage examples
	- Document module structure and workflow


## SatisfyManager Module
- [x] Scaffold SatisfyManager module
- [x] Create RepositoryController
- [x] Create PackageController
- [x] Create UserController
- [x] Create views (list, create, update, package, user)
	- Add form validation and error handling
	- Implement pagination for lists
	- Add edit actions for repositories/packages/users
		- Create edit forms and controller logic
		- Validate and update repository/package/user data
	- Add delete actions for repositories/packages/users
		- Add delete buttons/links in list views
		- Implement controller logic to remove entries
		- Confirm deletion with user prompt
	- Add view details actions for repositories/packages/users
		- Create detail views for each entity
		- Link from list to detail view
- [x] Integrate satis.json management
	- Add support for multiple repository types
	- Validate satis.json structure after changes
- [x] Enable satis build/update from UI
	- Show build logs and errors in UI
	- Add build status indicator
- [ ] Add UI enhancements (Bootstrap, responsive, icons)
	- Integrate Bootstrap or other CSS framework
	- Make UI mobile-friendly
	- Add icons/screenshots for repositories/packages
	- Improve navigation and layout

## User Management
- [x] Integrate Yii3 user management package
- [x] Integrate RBAC
	- Define default roles and permissions
	- Connect RBAC to controllers for access control
- [ ] Add admin UI for user/role management
	- Add user creation/editing forms
	- Add role assignment UI
	- Add password reset and authentication flows

## Security
- [x] Design Firewall middleware/component
- [x] Integrate with Yii3 application
- [x] Add configuration for allowed IPs
- [ ] Add admin UI for IP management
	- Add IP allow/deny forms
	- Show current allowed IPs
	- Add audit log for access attempts
- [x] Implement logging and feedback
	- Log all admin actions and errors

## Testing
- [ ] Add tests (unit, functional, integration)
	- Write unit tests for services and forms
	- Add functional tests for controllers and UI
	- Add integration tests for satis build and repository management
- [ ] Add tests (firewall)
	- Test IP allow/deny logic
	- Test logging and feedback

## Documentation & Release
- [ ] Update documentation (README, STATIS_DOCUMENTATION.md)
	- Add detailed setup instructions
	- Document API endpoints and UI features
	- Add troubleshooting and FAQ section
- [x] Complete release process (see RELEASE_TODO.md)
	- Review and update CHANGELOG.md
	- Tag and push release as per instructions

---

Check off each step as you complete it. Expand with subtasks as needed for clarity and progress tracking.
