Wiki

Clone wiki

mss / Mscolab: Mission Support Collaboration Improvements - GSoC 2020

Student: Tanish Grover

Organization: Python Software Foundation

Sub-Organization: Mission Support System

Mentors: Reimar Bauer, Shivashis Padhi, Jörn Ungermann, Jens-Uwe Grooß

My full proposal.

Project link on GSoC website

Weekly check-in and blogs on PSF Website

Project Details

The Mission Support system is an application for scientists in the field of atmospheric science to help them simplify the process of planning a scientific flight in which parameters of the atmosphere are measured. It allows users to map out the possible flight paths while taking into consideration different meteorological data and forecasted parameters and viewing them along possible regions of the flight path. In Google Summer of Code 2019, the Mission Support Collaboration(mscolab) module was developed which allowed real-time collaboration and editing of flight paths of a project. However, there were some key features which were missing from the mscolab module. I worked on the following features for my GSoC project:

  • Admin Dashboard: In a flight campaign there can be multiple users who need to collaborate on a project. I worked on a new admin window which allow flight path project administrators to quickly manage all the users working on a project. With a simple tabular view and easy to user filters, administrators can now quickly add, update or delete the access levels of users. There is also a feature to import permissions from a different project to quickly get started with the same set of users on a new project.

  • Chat Service Improvements: The existing Mscolab chat only supported plain text messages. I have completely redesigned the whole chat interface and added multiple commonly used chat features like search, delete message, reply-to message, image/document upload and markdown formatting of messages making the Mscolab more robust and powerful.

  • Improved Version Management: With so many changes happening to the flight path, the ability to keep track of different versions and reverting to a previous version was a crucial feature. I extended the existing version management functionalities by creating a new window for version management where administrators can easily compare a version with the current flight track and set names for important versions.

  • Local Flight Path Editing: A new workflow for the users was added where they can work on a local copy of the flight path which stays on their machine. This allows users to try out different changes to the flighttrack without disturbing the common flight track. The user can also fetch the common flight track at any point and merge it with his/her own local one using the new merge dialog box. Once the user is done with their work they can push their changes to the server making it available to everyone.

Apart from these major components, I worked on fixing some existing Mscolab bugs, improved the UI and added a help dialog for new users to get acquainted with all the features of Mscolab.

Development

The following is the list of pull requests I have made for my project. All my pull requests are made to the branch - GSOC2020-TanishGrover. All my work has now been merged to the develop branch of MSS. The list is ordered from my first PR to last.

PR Content Link to PR
Added Admin Window https://bitbucket.org/wxmetvis/mss/pull-requests/825
Admin Window additions and bug fixes https://bitbucket.org/wxmetvis/mss/pull-requests/826
Added Permission Import functionality in admin window https://bitbucket.org/wxmetvis/mss/pull-requests/831
Added unit tests for admin window https://bitbucket.org/wxmetvis/mss/pull-requests/830
Fixed some tests and completed tests for admin window https://bitbucket.org/wxmetvis/mss/pull-requests/833
Added Markdown support in chat window https://bitbucket.org/wxmetvis/mss/pull-requests/837
Added message delete and edit in chat window https://bitbucket.org/wxmetvis/mss/pull-requests/839
UI improvements of current work https://bitbucket.org/wxmetvis/mss/pull-requests/840
Added image and document upload feature in mscolab chat https://bitbucket.org/wxmetvis/mss/pull-requests/841
Added message search and tests for chat window https://bitbucket.org/wxmetvis/mss/pull-requests/842
Added reply to message in mscolab chat https://bitbucket.org/wxmetvis/mss/pull-requests/843
Added new version history window and work locally toggle https://bitbucket.org/wxmetvis/mss/pull-requests/852
Added waypoint merge dialog and FTML file import option in mscolab main window https://bitbucket.org/wxmetvis/mss/pull-requests/858
Added tests for waypoint merge dialog https://bitbucket.org/wxmetvis/mss/pull-requests/860
Added help dialog and did minor bug fixes https://bitbucket.org/wxmetvis/mss/pull-requests/861
Fixed database setup and seed script https://bitbucket.org/wxmetvis/mss/pull-requests/862
Fixed CLI bugs and added final documentation https://bitbucket.org/wxmetvis/mss/pull-requests/864

Documentation

The updated documentation can be found here.

The documentation will be shifted to the official MSS docs when my code is prepared for the stable release.

Demonstration

All my work is demonstrated in this video.

Final Outcomes

  1. An easy to use admin window to quickly get users started on a project.

  2. A feature rich chat solution leading to improved communication and information sharing between the users.

  3. A proper version management system for flight tracks.

  4. More workflow options for users to freely try out various changes.

Future Scope

Mscolab has now become a much more complete application. It can now become the primary use-case of MSS. We can now scrap the existing startup window of MSS and merge it with the Mscolab window. Other further improvements that can be made to MSS are:

  1. Improving the configuration and setup process for Mscolab server.
  2. Improving the user interface and making it more intuitive.
  3. Moving away from file system towards proper databases for waypoint storage.
  4. Adding support for other file formats apart from FTML.

My changes would most likely be a part of MSS version 2.0.0. After the release and some feedback from MSS users, further development plan for Mscolab will be made.

Acknowledgements

I'm thankful to my mentors - Reimar, Shivashis, Jörn and Jens. They have been very kind and welcoming since the first day I started contributing to MSS. They are the key reason why I have been able to complete this project.

I would also like to thank, Python Software Foundation for giving me a chance to work on an amazing project like MSS.

Finally, a special thanks to the Google Open Source Programs team, for giving such an amazing opportunity to work on awesome open source projects to thousands of students every year through GSoC.

Updated