alireza_hadizadeh started a new conversation+100 XP
5mos ago
I have an existing Laravel e-commerce project that uses an external SMS provider for sending OTP codes and notifications. The provider offers a full API for its own panel, and I want to integrate parts of that panel directly into my e-commerce admin dashboard to improve convenience for my clients (companies and start-ups who buy the project).
Inside my app I already send SMS through a simple service class using pattern/template codes triggered by events. But now I want to add additional features from the provider’s panel into my dashboard, such as:
- Reports of sent messages
- Checking SMS balance
- Sending marketing SMS
- Managing pattern/template codes
- Other API-based features
My question is about project structure. Since this is becoming a complete “SMS panel” inside my dashboard, what is the best architectural approach?
Should I:
- Create a separate package so I can reuse it in other projects?
- Use a module system like nwidart/laravel-modules to organize it as an isolated module?
- Apply Domain-Driven Design and treat SMS as its own domain?
- Or build it as a separate project and use a subdomain (though this defeats my goal of keeping everything in the same dashboard)?
If anyone has integrated a third-party service panel into their Laravel admin before, how did you structure it?
Also, for future projects where a feature is fully API-based: Is Laravel still a good choice for building the dashboard for such features, or is it better to use a frontend framework like React or Vue (even though I don’t currently have experience with them)?