FiTargetTool es una herramienta para administrar una serie de clientes, donde de cada uno podremos ir administrando su progreso en los pesos de levantamiento y su peso, además de la rutina que este posee. También podremos crear nuestras rutinas personalizadas.
El proyecto FiTargetTool posee una arquitectura MVC (Model, View, Controler) donde separamos por capas el código del mismo. En el modelo encontramos las clases que usamos para modelar los datos extraídos de la Base de Datos, usamos SQLite.
La base de datos posee tablas como:
Tabla | Campos | Funcion |
---|---|---|
Cliente | id, Nombre, Edad, Rutina(id), Progreso(id), Pesos(id), Foto | Esta tabla se encarga de guardar los datos mas importantes del cliente. |
Pesos | id, pesos(txt json) | Esta tabla guarda una lista de pesos en forma de texto en formato json. |
Progreso | id, Pecho, Trapecio, Romboides, Dorsal, EspaldaBaja, Biceps, Triceps, AnteBrazo, DeltoidePosterior, DeltoideLateral, DeltoideAnterior, Cuadriceps, Isq, Gluteos, Pantorrillas | Esta tabla guarda los pesos levantados por cada grupo muscular en texto en formato json. |
Rutina | id, Nombre, Lunes, Martes, Miercoles, Jueves, Viernes, Sabado, Domingo | Esta tabla guarda la lista de ejercicios que se realizaran en los dias establecidos, cada uno con un texto en formato json. |
En la carpeta models, encontraremos todas las clases de cada tabla de la DB. Donde esto nos facilitara la manipulacion de los valores y objetos retornados para cada funcion.
Clase | Descripcion |
---|---|
Cliente | Esta clase almacenara los datos de los clientes, con atributos: id, nombre, edad, rutina, progreso, pesos y foto para futura implementacion. |
Dia | Esta es una enumaracion que nos ayuda en la manipulacion de los dias para los demas modelos. |
Ejercicios | Esta clase usada para los ejercicios de las rutinas, posee: nombre del ejericio, lista de repeticiones y lista de pesos, estas dos listas deben de coincidir. |
Peso | Esta clase almacenara los pesos en forma de lista donde lo identificaremos con su id respectivo. |
Progreso | Esta clase tendra una lista de valores de PR (personal records) por cada grupo muscular. |
Rutina | Esta clase tendra un nombre y almacenara por cada dia de la semana una lista de objetos de la clase Ejercicios. |
Estas funciones se encuentran en la carpeta Controler, donde se podran apreciar archivos que contienen funciones para un destino determinado:
Este archivo nos proporciona funciones que ayudaran a obtener u establecer valores de la DB. Funciones como:
Funcion | Descripcion |
---|---|
get_rutine | Esta funcion retornara un objeto de la clase Rutina, este tendra el id, el nombre de la rutina y luego para cada dia, su lista de ejercicios correspondientes. |
get_progress | Esta extraera el progreso con un id en especifico y nos lo retornara en un objeto de la clase Progreso. |
get_pesos | Esta funcion retorna un objeto de la clase Peso, en donde almacena el id y lista de valores de los pesos almacenados. |
get_client | Esta funcion retorna un objeto de la clase Ciente, localizandolo con el nombre del mismo, estableciendo en ese objeto el id, nombre, edad, rutina y demas datos guardados acerca del usuario en la DB. |
get_list_names | Esta funcion nos retorna una lista de todos los nombres de los usuarios que estan en la DB. |
get_all_data | Esta funcion nos retorna una lista con todos los clientes guardados en la base de datos. |
get_list_id_rutines | Esta funcion nos retornara una lista de todos los id de las rutinas almacenadas. |
Esta archivo proporciona las funciones necesarias para eliminar cualquier dato en el momento propuesto, podemos encontrar funciones como:
Funcion | Descripcion |
---|---|
delete_client | Esta funcion elimina un cliente en espeifico. |
delete_routine | Esta funcion elimina una rutina en especifica. |
delete_peso | Esta funcion elimina un registro de pesos en especifico. |
delete_progress | Esta funcion elimina un registro de progresos en los pesos levantados por cada grupo muscular. |
Este archivo proporciona las funciones necesarias para crear automaticamente un objeto y guardarlo en la DB, esto incluye convertirlo a un string en formato json para trabajar con ello.
Funcion | Descripcion |
---|---|
create_client | Esta funcion creara e insertara en la DB un nuevo objeto de la clase Cliente. |
create_pesos | Esta funcion creara e insertara una lista con los registros de los pesos, teniendo en cuenta una lista inicial. |
create_routine | Esta funcion creara e insertara una nueva rutina con un nombre en espefifico. |
create_progress | Esta funcion creara e insertara un nuevo registro de progresos del cliente. |
Este archivo proporciona funciones para actualizar los valores de cualquier campo requerido, en este tenemos funciones como:
Funcion | Descripcion |
---|---|
update_client | Esta funcion actualiza los valores de un cliente en especifico. |
update_rutina | Esta funcion actualiza los valores de una rutina en especifico. |
update_peso | Esta funcion actualiza los valores de un registro de pesos. |
update_progress | Esta funcion actualiza los valores de un registro de progresos de un cliente. |
change_rutine | Esta funcion cmabia cual sera la rutina de un cliente. |
update_client_data | Esta funcion es similar a update_client, pero solo actualiza los campos de: nombre y edad. |
update_routine_full_day | Esta funcion actualiza la lista completa de ejercicios de un cliente en un dia en especifico. |
update_full_routine | Esta funcion actualiza los valores de una rutina a partir 8000 de otra. |
En la carpeta Utils de podran encontrar archivos que proporcionen utilidades para funciones requeridas muy especificas.
Funcion | Descripcion |
---|---|
generate_models_json | Esta funcion crea un diccionario, compatible con la biblioteca JSON, en la misma se almacenan valores de la clase de ejercicios. |
En la carpeta View encontraremos varias funciones que nos permitiran cargar determinados componentes o view completas para cada ruta del programa.
En este archivo encontraremos funciones para el uso de los componentes "AutoCompleteSuggestion", los cuales son usados para tener ayuda a la hora de introducir valores y ir directo a los requeridos.
Funcion | Descripcion |
---|---|
auto_complete_suggestion_data | Esta funcion retorna un objeto de la clase AutoCompleteSuggestion, el cual contiene una lista de los posibles nombres de usuario que se pueden insertar para buscar. |
auto_complete_suggestion_id_rutines | Esta funcion retorna un objeto de la clase AutoCompleteSuggestion, el cual contiene una lista de los posibles id de rutinas que se pueden insertar para buscar. |
Este archivo contiene la funcion unica "show_client_view", la cual retorna una columna que contiene la unico de muchas informaciones y formas de interacciones proporcionadas por otras funciones, mostrando la rutina completa y acciones como cambiarla o eliminar u editar algun ejercicio.
Este archivo cuenta con funciones que ejecutan AlertDialogs los cuales ayudan a editar datos, ya sea de los clientes o de algun otro elemento.
Funcion | Descripcion |
---|---|
alert_invalid_data | Esta funcion retorna un AlertDialog el cual nos informa si se a insertado un valor invalido. |
create_client_view | Esta funcion a traves de un componente AlertDialog, nos crea un usuario, donde se agregaran los primeros datos del mismo. |
list_edit_clients (en desuso) | Esta funcion nos retorna una lista detallada de informacion del cliente y formas para interactuar con esta informacion. |
add_peso | Esta funcion agrega un valor de peso a las estadisticas de un cliente. |
add_progreso | Esta funcion agrega un valor de progreso a cada grupo muscular de un cliente. |
create_routine_view | Esta funcion crea una rutina. |
change_rutine_view | Esta funcion cambia la rutina de un cliente por otra ya existente. |
change_client_view | Esta funcion nos permite modificar el nombre u edad de un cliente. |
modify_rutine | Esta funcion, en conjunto con las siguientes, permiten la visualizacion y modificacion de los ejercicios de una rutina en forma de tabla. |
list_textfields_rutine | Esta funcion permite retornar una columna de la tabla dada en "modify_rutine", esta columna contiene el dia y luego los ejercicios de ese dia en forma de TextFields, osea que se pueden modificar ahi mismo, sino tiene ningun ejercicio ese dia, se agrega un texto unico diciendo "Vacio". |
extract_routine_values | Esta funcion extrae los valores de los TextFields de la tabla y los convierte en una instancia de la clase Rutina, donde ya en la funcion "modify_rutine" se hace uso de "update_full_routine" para actualizar la rutina por los nuevos valores. |
En este archivo se encontraran funciones las cual nos serviran para usar componentes para mostrar informacion de los clientes guardados en la DB.
Funcion | Descripcion |
---|---|
info_cliente_view | Funcion que retorna un componente el cual muestra el nombre y edad del cliente. |
create_datatable_clients | Funcion que crea una tabla donde muestra la informacion de los clientes. |
rows_table_clients | Funcion que crea las filas de la tabla creada en la funcion "create_datatable_clients". |
show_full_datatable | Esta funcion muestra un AlertDialog, donde su contenido es la tabla retornada por la funcion "rows_table_clients". |
En este archivo estan las funciones que facilian el muestreo de los graficos de los registros de progresos de los clientes ingresados en la DB.
Funcion | Descripcion |
---|---|
open_graphic | Esta funcion se encarga de cargar el grafico en un AlertDialog para poder ser visualizado. |
show_graphic | Esta funcion retorna el grafico totalmente construido. |
create_linechartdata_points | Esta funcion crea la lista de valores que se van a ir viendo punto por punto. |
create_left_chart_axis | Esta funcion retorna los elementos en la parte izquierda de la grafica. |
create_bottom_chart_axis | Esta funcion retorna los elementos en la parte inferior de la grafica. |
collection_graphics_view | Esta funcion muestra una seccion la cual muestra informacion de cada grupo muscular a traves de las graficas, ademas de poder editarlas directamente. |
En este archivo se encuentra la clase "RoutineRouteUpdateView", donde esta proporciona una View en la ruta "/routine_update" la cual permite a traves de su interfaz la modificacion de la lista de ejercicios en un dia determinado.
En este archivo se encuentra la clase "RoutineRouteView", donde esta permite la creacion de una instancia de la clase "Ejercicio", donde el mismo sera agregado a un dia determina de la rutina del cliente.
En este archivo se encuentra varias funciones para la interaccion con rutinas. El uso de las clases "RowActionRoutine" y "PanelExercise" ayuda a que no se dupliquen los elementos mostrados.
Funcion | Descripcion |
---|---|
routine_list_view | Esta funcion muestra una lista de las rutinas creadas con su id. |
get_rows_table_view | Esta funcion crea las filas que se muestran en la tabla retornada por la funcion "routine_list_view", haciendo uso de la clase "RowActionRoutine" ubicada en el mismo archivo. |
routine_data | Esta funcion crea una lista entre todos los dias, donde haciendo uso de la clase "PanelExercise" se colocan "ElevatedButton" en cada ejercicio para poder mostrar informacion a traves de un "AlertDialog" de cada ejercicio. |
routine_view | Esta funcion retorna un "Row" con el contenido generado por la funcion "routine_data", mostrandolo de manera organizada. |