Gsoc 2019 — Implementing user mentions feature for Apache Allura

Apache Allura is an open source implementation of a software forge, a site that manages source code repositories, bug reports, discussions, and more for projects. Allura is having a well-featured markdown editor. It offers many features such as artifact short-coding with the help of the markdown extensions. Whereas, there was no mechanism to mention other users in a specific artifact or comment. That feature is offered by many modern-type web applications because it is a very useful feature in group discussions.

I was implementing an user mentioning system for Apache Allura during this year’s Google Summer of Code.

Deliverables

Allura converts plain text into markdown format using markdown library. I have added a new extension for the library to detect user mentions (Eg: @shalithasuranga ).

When user press @ sign there will be a user list as suggestions.

Auto-completion for user mentions

SimpleMDE is used as the global markdown editor in Allura and it uses CodeMirror for syntax highlighting. Therefore, I wrote a helper script to display the autocomplete list.

An info card will be appeared with mouse hover event on user mentions.

Info card for an user mention

User(s) will be notified via email if their user names were mentioned somewhere. Allura has separate task service for handling long running functions. I have implemented a new task to deliver emails when the artifact identifier and content were passed as the parameters.

An example for user mention notification email

Users will be able to control user notifications preference of course.

Contributions log

All contributions were not submitted via merge requests and those were merged to master via several branches with ss/ prefix (Eg: ss/8284).

https://github.com/apache/allura/commits?author=shalithasuranga

Unit tests were added and can be seen in some commits.

Conclusion

You are very lucky if you were selected to Apache Software Foundation for Gsoc because it gives a chance to play with complex and well designed software code bases. Thus, ASF mentors are perfect!. My Gsoc mentor was Dave Brondsema

Happy coding everyone!

Programmer | Author of Neutralinojs | Technical Writer

Programmer | Author of Neutralinojs | Technical Writer