Gymnastic Competition

Link to the repository on GitHub

Rhythmic Gymnastics Competition Manager:

Rhythmic gymnastics is a sports discipline that requires great coordination, flexibility and expressiveness. It involves performing exercises with different apparatus (rope, hoop, ball, clubs and tape) following the rhythm of the music and meeting certain requirements technical and artistic To organize and evaluate the competitions of this sport, a system that allows to manage the data of the tests, the participants and the results.

In this article we present the group project that we have carried out in the second quarter of the first year of the higher level training cycle Multiplatform Application Development (DAM) at IES Francisco de los Ríos. Is about a rhythmic gymnastics competition manager based on Java and XML, which we have developed between Jose Javier Galan, Isabel Roldán and me. Our objective has been to create an application that facilitate the organization and monitoring of sporting events of this modality.

Manager Features

Our rhythmic gymnastics competition manager has the following characteristics:

  • Allows you to create the tests and the participants of each competition, entering the necessary data such as name, category, device and difficulty.
  • It allows assigning the schedule of each performance according to the order established by the organization, taking into account the estimated time of each exercise and possible breaks.
  • Allows you to consult the results and classifications of each test and category, showing the scores obtained by each participant in the technical and artistic aspects, as well as as the final note.
  • It uses XML as a data storage and transfer format, which makes it easy to interoperability with other systems and persistence of information.
  • It uses Java as a programming language, taking advantage of its advantages such as portability, robustness and object orientation.

Methodology and tools used

To develop our project we have followed an agile methodology based on the principles of the agile manifesto. We have worked in short iterations, delivering working versions of the product at the end of each. We have applied the practices of continuous integration, review of code and refactoring to ensure code quality. We have used GitHub as platform to host our remote repository and facilitate collaborative work.

Also, we have applied the MVC pattern (Model-View-Controller) to separate system responsibilities into three layers:

  • The model layer is responsible for managing system data, using classes that represent the entities of the domain (test, participant, result) and that are stored in XML files.
  • The view layer is responsible for displaying the information to the user, using interfaces graphics that allow you to interact with the system through buttons, menus, tables and graphs.
  • The controller layer is responsible for coordinating user actions with the model and the view, using classes that implement business logic and that communicate with the model by using XML parsers.

To implement these layers we have used different tools and libraries:

  • For the model layer we have used JAXB (Java Architecture for XML Binding), which allows generate Java classes from XML schemas and vice versa.

Conclusiones:

To end this blog article, I would like to share with you some conclusions about the project we have done. I think it has been a very enriching experience and training, both technically and personally.

At a technical level, we have learned to use Java and XML to develop a management application for rhythmic gymnastics competitions, applying the concepts of object-oriented programming, the MVC pattern and good practices of the agile development. We have been able to verify the usefulness and versatility of these languages and tools to create a solution that responds to the needs of users and that is easy to use, modify and extend.

On a personal level, we have worked as a team in a collaborative and coordinated manner, using GitHub to share the code and communicate. We have distributed the tasks according to the abilities and preferences of each one, and we have solved the problems and doubts that have arisen during the process. We have valued the effort and work of each team member, as well as the feedback and suggestions we have given each other.

I believe that this project has helped us to improve our skills as developers and as people, and to demonstrate what we are capable of doing with our creativity and enthusiasm. I hope you liked our project and that you are encouraged to try it. thanks for reading this article and see you next time.

Collaborators: