Gsoc 2019 — Implementing user mentions feature for Apache Allura

Image for post
Image for post

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.

Image for post
Image for post
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.

Image for post
Image for post
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.

Image for post
Image for post
An example for user mention notification email
Image for post
Image for post

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!

Written by

Software Engineer at 99x | Apache PMC member | Open Source Contributor (Author of Neutralinojs) | Technical Writer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store