The task is to create a web application, which is capable to help the users analysing his performance in any kind of activity. My plan is to implement this is the following:
The user after some authentication (logging in) can create a new profile. The profile in this context means defining the activity he want measure. In detail, in a dynamic form he can define the entities of the profile describing his activity. For example in case of running he can add length (in metre) as an entity, which is an integer, type (cross-country, flat) as an enumeration, and a comment as a free text, maximizing its length (60 characters). The application generates a descriptor, which defines the profile’s entities, and their parameters.
The user can view any profile, and all result in, modify his own results, and add new ones. The program generates a form from the metamodel, and the user can add new results through it. The application validates the data given through the form, guaranteeing the data’s consistency.
It is possible to add new external source to an existing profile. This can be done through a well-defined interface. On the web UI the user has to define the mapping between the external source and the profile. If the source has been added, the user can define the search parameters’ value. Reading the external source and add the result to the database can be done by hand, or it will run as a scheduled job.
A web application’s last function, that it can display diagrams. On a simple UI the user can add new statistic by defining its profile, entity and type. With the help of the diagrams we can analyse our performance and compare it to other users.