This is the fifth and final part of my week-long presentation of the Football Match Result Database project. Here are the previous articles:
Part I: Selected screenshots
Part II: Motivation, design and implementation histories
Part III: Database objective, design, and features
Part IV: Code release
Now that my codebase for the FMRD has been made public, this will be the last post I make on the project on the blog. There will still be development, of course, and if there is a major release it will be announced here, but I will confine discussion to the project to the project website and the mailing lists.
In this post I will my outline of the development roadmap for the database and formalize my call for contributors.
So where is this going? The ultimate goal is to develop a database that works well for clubs and national teams across all types of competitions. It might be possible to develop an application that accommodates both clubs and national teams, but there are some UIs that will have to be modified. Implementing the database applications is easier for national teams in that one can tie the team (nation) to the player explicitly, but it is more work in that the logic for displaying players in the Match Event dialogs will have to be altered.
The version labeling X.y.z will be consistent with common practice: X is for major changes to the application or database design, y for extensions to the database and/or app, and z for minor changes to the database and/or app. People will differ on the definition of a minor or major change, of course, and these version numbers are not yet set in stone.
Here are the major features that I would like to incorporate in future versions of the FMRD and its applications:
- Tie clubs to national associations
- Rearrange sort_name in lineup list
- Include "Save" button: write record to database, but not navigate
- Pressed close button: save/discard option
- Venues Linking Table (track surface/capacity changes)
- Player Linking Table (track height/weight changes)
- League competitions for National Teams
- Hybrid competitions for Club Teams
- Hybrid competitions for National Teams
This version roadmap applies to any web-based application, but it's possible that some features up to 1.0.5 would be merged into version 1.0.0 of the web-based app.
If there is a version 2.0.0 of the application, major changes to either the application or the database design would be made.
I've revealed my database design to the world, so now it's time to make the call to those who want to contribute. I've received several inquiries from people over the past two years and I wasn't in a position to accept offers, but I am now. So here's what I need (not at all exhaustive):
- Users! The more users of the database and its data-entry apps, the more bugs that can be found and the better the database will become.
- A more formal test suite. I tested all of the modules and methods to confirm that I could read and write data from and to the database, but it wasn't a formal procedure and I can't guarantee that I've caught everything. I am not very comfortable with the art of writing test cases, so the contributions of those who have more experience with formal testing procedures would be great.
- Internationalization. The numerical and date inputs to the database follow broad international conventions already (metric and ISO notation), but translation of the application into multiple languages would be great. Admittedly this is not a high priority right now.
- More complete documentation. I am pretty good with writing documentation as I develop code, and I completed a database design specifications document and a user's manual. I converted the comments at the heads of the modules, classes, and methods to docstrings which will make automated code documentation easier, but I have not implemented anything yet. There are provisions in the code repository for a Wiki, and a FAQ can be developed with time (this would be folded into the Wiki).
Well that's about it. I am looking forward to future collaborations on this project, and on future projects that I choose to release to open source.