Ayer termine mi proyecto de fin de curso, una aplicacion con la que puedes manejar el calendario de un grupo de personas en un hospital o clinica.
Despues de mucho pensar, decidi crearlo en Java con JavaFX por dos razones:
1) Queria dar el paso a crear una aplicacion con un GUI en Java.
2) No tenia muchas ganas de ponerme con React, etc para hacer una aplicacion web.
El desarrollo del proyecto me ha parecido tremendamente interesante y sobre todo muy dificil, por el hecho de no haber estudiado ningun tipo de framework en Java que utilice una interfaz de usuario.
Pero como esa era una de las partes del proyecto, aprender, he seguido adelante y he entregado una aplicacion en la que el usuario puede interactuar con la pantalla, hay conexiones a una base de datos y puedes pedir vacaciones o dias libres.
Como curiosidad, he sido el unico de mi clase que ha desarrollado un programa en Java, el resto han hecho los suyos en Javascript con algunos componentes de React (cosas que tampoco hemos estudiado pero hay tutoriales de sobra en Internet).
Cosas que mas me han costado:
1) La conexion a la base de datos desde el IDE. Como use IntelliJIdea Community Edition, parece ser que la navegacion a la base de datos no es automatica y me costo UN MONTON descubrir que tenia que bajarme un plugin llamado DB Navigator e incluir la base de datos.
Una vez que la meti en el proyecto todo funciono perfectamente, y lo mejor de todo es que puedes interactuar con la base de datos directamente desde IntelliJ!
2) El calendario. Por alguna razon no hay un objeto "Calendario" en JavaFX, asi que me tuve que inventar uno en el que apareciese el nombre del usuario que ha entrado en el programa junto con las tareas del dia y los espacios donde tiene que trabajar.
- Pagina de entrada.
- Pagina de registro de usuario.
- Dashboard.
Idealmente me habria encantado que el calendario fuese tipo GoogleCalendar.. pero no sabia como hacerlo
.
Intente llamar a la API de GoogleCalendar pero la documentacion me dejo con mas dudas que soluciones.
Tambien encontre una libreria con un calendario que era perfecto (CalendarFX
CalendarFX Developer Manual) pero, de nuevo, no tenia ni idea como integrarlo en el proyecto porque habia que modificar el pom y no estaba muy bien escrito que modificar y que no. Si alguno sabe como hacerlo.. soy todo oidos
.
Igual tocando el .fxml podria hacer que la tableview se comportase de manera parecida, pero con el tiempo limitado que tenia era impensable.
La estructura del proyecto.
Al final me quedo con todo lo aprendido. Hace dos años no habria ni siquiera soñado que podria hacer una cosa asi. Querer es poder!
.