Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
Web-Interface Refactoring #1320
As started to being discussed here, we will attempt to rewrite the web interface in Vue.js.
I suggest starting with the very basics: proper definition of all API routes as well as their improvements, followed by a click-dummy prototype as a Vue project. I can definitely do the latter. Maybe you're open to an interface refresh. I like the look and modular use of Bulma quite a lot. Regarding tooling, Webpack is pretty much set. Besides that, I'd like to use Single File Components as they are one of the core strengths of Vue.
Regarding coordination and collaboration, we could work in one or more new repos, either public or private ones, according to your preference. Maybe it would be better to first start private, as we're probably shuffling things around quite a bit, breaking and rebuilding as we go. I suggest running a private development instance of the Modoboa API you push to and run your intended changes on so I can test the routes and their functionality on.
If you have a paid GitHub account that allows for private repos, that would be nice since I don't have one. I run a private GitLab installation for my closed work and client projects. We could use that for the initial work if you prefer. As far as communication is concerned, I also run a private Mattermost instance (Slack-like open source chat) we could leverage for a quicker turnaround.
Let me know what you think.
Your suggestion looks fine. A separated (private or public) repository is a good idea for a start, we could also work on a dedicated branch. Don't know what's best... If we go for a private one, I don't have any paid plan so your Gitlab instance would be appreciated ;-) We can indeed use Mattermost for communication.
About the interface, I agree it needs a refresh. I was thinking about CoPilot which is based on BS3 and AdminLTE but suggestions like Bulma are welcome.
Still talking about the interface, I think it could be simplified too. For example, 'domains', 'identities' and modoboa sections could be merged into a single 'administration' one.
I think the current url structure of Modoboa is good, it's very clean and the urls are clear about what they do i.e.
As far as the actual graphical layout goes I do like the look of CoPilot. I agree the menu should be simplified. If you used something like CoPilots vertical menu on the left I think following the existing url structure would be a good base for the menu layout:
for simple users
It would be nice to see better separation between the business logic and the UI. I would have Vue get all its data through the REST API, the current REST API would need extended to fully support this.
Current structure (without extensions)