Issues for Software Engineering Courses

This pages lists issues intended to be addressed by Software Engineering students to foster their knowlege on open source development. See https://devdocs.jabref.org/teaching for more information.

# Issue Id Title Main Focus Issue Understanding Effort Implementation Effort Testing Effort Note
1 JabRef#8808 Merge some (or all) of the “new entry” related buttons UI low medium medium UI testing is very difficult in JabRef. Leave it out. One could, nevertheless, test the ViewModel class behavior.
2 JabRef#8893 Support Citation Style Language (CSL) Styles in LibreOffice/OpenOffice UI medium medium n/a This is a highly-demanded feature of JabRef. One has to run LibreOffice to understand that feature request. Testing is nearly impossible, because it involves a third-party tool.
3 JabRef#8645 Refine handling of “empty entries” logic medium low medium The linked issue comment contains the necessary steps to undertake
4 koppor#571 File folders: Move between global and user-specific folder logic medium medium medium JabRef’s file handling is sophisticated. JabRef offers three directories to store PDFs. This has to be understood - and then this issue should be doable.
5 koppor#543 Add user-specific comment field logic medium high medium The implementation involves both JavaFX code (for the entry editor) and working on the logic of BibEntries. The tests should cover the logic of comment reading and writing. The tests do not need to contain tests for the UI
6 koppor#521 and koppor#530 “drag’n’drop to another library should be possible” and “Enable drag’n’drop of groups to new library” UI medium low n/a UI testing is nearly impossible in this feature. Just leave it out.
7 koppor#12 Merge entries should be able to merge keywords logic medium low medium The critical thing in this issue is to understand the difference between a choice of content. There should be test cases written.
8 koppor#520 When copying and pasting an entry to another bib file - the .pdf should also be copied logic medium low high JabRef’s file handling is sophisticated. JabRef offers three directories to store PDFs. The PDF needs to be placed in the correct folder. That code exists, but has to be found.
9 koppor#295 Merge libraries logic low medium high The development should really be done in a test-driven way. There should always be JUnit tests for the implementation to enable easier “code-and-fix” development.
10 koppor#578 Add (simple) git support logic low medium high This is a very useful user feature. Since it interplays with loading and saving, the functionality should be thoroughly tested.
11 koppor#386 Add LOBID fetcher logic medium high high Adding a new fetcher is a hard task, because one a) has to understand the code infrastructure of JabRef and b) understand the external API
12 JabRef#1065 Support Worldcat.org as fetcher logic medium medium medium One of the first actions should be to try whether oneself has access to Worldcat data. Howe to retrieve an API key etc. If that is not possible, another issue should be chosen.
13 koppor#375 Add support for scite.ai UI+logic low high medium The UI implementation could be tricky. First a UI concept needs to be developed
14 koppor#360 Have abbreviations also working for conferences UI+logic high high low For the first step, plain text lists can be used. The next step should be mv files, which are binary databases containing the abbreviations
15 koppor#575 Generate BibTeX key should always work logic high medium medium The issue is to understand where in the code BibEntry objects are generated based on retrieved data. At all places, the preference to generate keys on fetching should be respected.
16 JabRef#7906 Record search history UI+logic low medium medium Just the logic part can be tested.
17 JabRef#8055 Do not save password in Preferences logic low medium low Implementation hints are given at https://github.com/JabRef/jabref/issues/8055#issuecomment-954615417.
18 koppor#94 Better support for managing annotated PDFs UI+logic medium medium medium The effort will be in a proper UI implementation. The logic part should not be too hard.

Legend

Term Description
Issue Understanding Effort Effort to understand the issue (when having only some experience with JabRef)
Implementation Effort Denotes the estimated effort to implement the feature
Testing Effort Denotes the effort to implemented automated test cases