Portal Manager Interface

Added an interface for the portal manager, should make testing easier for the future

- [x] test coverage
- [x] finish the code
- [ ] gather feedback for my changes
- [ ] submit changes to the documentation


| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| Tests pass?   | yes
| Fixed tickets | no
| Doc           | none