What did I do this week?
As it was planned the previous week, I worked on tests for GUI of mscolab's main window. Here is the link to pull-request with the tests and autosave synchronization feature.
Next important thing I worked on is the project window, which has collaborators-listing, chat feature, and 'change' listings. I've finished almost all of the features, with some finishing touches remaining for UX improvements(colorize the UI). I'll make a pull-request for this module after writing some features on Tuesday(2019-07-24). If you want to test features, please look into 'GSOC19-plant99' branch in my fork.
What's coming up next?
Next up, is writing tests for features of project window, and improving the GUI. Then this PR's review might take upto 1.5 working days, considering the amount of new changes and code introduced.
If there's still time, the next feature is to introduce version control in mscolab server's storage. This essentially means, moving from a 'file' based storage to a 'project' based storage. Why are we doing this? To introduce undo/redo functionality, basically the whole 'mss project' would be a git enabled directory with a linear-commit history. If one wants to undo a change, we checkout to the commit before, and write this text to the file, commit in front of HEAD. Thus 'undo'ing the changes introduced after that commit.
Did I get stuck anywhere?
I had a little difficult time figuring out the Widgets I had to use to build the GUI. I ended up using QListWidgets, even for chat-log, and change-log. I doubt if it's the right tool to use. But since it has not obstructed development of other modules, it is not a very big issue, and I will fix this later.
Non-technical note: This week was where every bit of work from the past two months were bundled together and put to use. I realized the importance of writing tests, especially for APIs. I could reuse the clients I wrote for tests, and could get done with things quicker. I'd recommend writing extensive tests, I know I still am missing out on more benefits of them. The note is to express a tiny bit of overjoy I feel when I see everything working nice, and makes me more confident about finishing up for the first release of mscolab.