This repository serves as an educational example demonstrating the Dependency Inversion Principle through interface-based design.
Created as a teaching resource to illustrate how interfaces can be used to achieve dependency inversion. The project showcases two different authentication systems that can be swapped seamlessly by implementing a single, unified interface.
This is a learning example requested by a student to understand:
- Interface-based dependency inversion
- Swappable implementations
- Clean architecture principles
This code is for educational purposes only. Do not use this implementation in production environments. The focus is on demonstrating architectural patterns, not production-ready security or performance.
The project demonstrates how two different authentication providers can be switched without changing the consuming code, thanks to a common interface abstraction.