{"id":20465918,"url":"https://github.com/fernandocalmet/java-login-layered-skeletor","last_synced_at":"2025-03-05T12:26:41.978Z","repository":{"id":104177516,"uuid":"235458773","full_name":"FernandoCalmet/java-login-layered-skeletor","owner":"FernandoCalmet","description":"♨️ Aplicación simple de escritorio en Java que permite operaciones CRUD aplicando Patrones de Arquitectura de Aplicaciones Empresariales (PEAA) y Diseño Orientado al Dominio (DDD)","archived":false,"fork":false,"pushed_at":"2022-04-30T15:23:33.000Z","size":3934,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-16T01:16:21.386Z","etag":null,"topics":["crud-application","ddd-architecture","java","jdbc","mysql","mysql-database","peaa-architecture","sql"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FernandoCalmet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":"fernandocalmet","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2020-01-21T23:04:37.000Z","updated_at":"2022-11-26T09:36:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"7029cda7-ca3c-4a52-a79e-83621ac2dde1","html_url":"https://github.com/FernandoCalmet/java-login-layered-skeletor","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FernandoCalmet%2Fjava-login-layered-skeletor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FernandoCalmet%2Fjava-login-layered-skeletor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FernandoCalmet%2Fjava-login-layered-skeletor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FernandoCalmet%2Fjava-login-layered-skeletor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FernandoCalmet","download_url":"https://codeload.github.com/FernandoCalmet/java-login-layered-skeletor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242025763,"owners_count":20059795,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["crud-application","ddd-architecture","java","jdbc","mysql","mysql-database","peaa-architecture","sql"],"created_at":"2024-11-15T13:20:27.590Z","updated_at":"2025-03-05T12:26:41.940Z","avatar_url":"https://github.com/FernandoCalmet.png","language":"Java","readme":"# Java Login Layered Skeletor\n\n[![Github][github-shield]][github-url]\n[![Kofi][kofi-shield]][kofi-url]\n[![LinkedIn][linkedin-shield]][linkedin-url]\n[![Khanakat][khanakat-shield]][khanakat-url]\n\n## 📓 TABLA DE CONTENIDO\n\n* [Acerca del proyecto](#acerca-del-proyecto)\n* [Características](#características)\n* [Instalación](#instalación)\n* [Licencia](#licencia)\n\n## 🔥 ACERCA DEL PROYECTO\n\nEste proyecto es una muestra de una solución base de `CRUD Layered + Swing UI` utilizando `Java + JDBC + MySQL`.  \nFuncionalidades del proyecto CRUD, Login, Swing UI, Programación Orientada a Objetos (POO). Arquitectura tradicional en Capas, Basado en Patrones de Arquitectura de Aplicaciones Empresariales (PEAA) y Diseño Orientado al Dominio (DDD).\n\nIDE utilizado: `Intellij IDEA`\n\nEsta simple **Aplicación Java Swing**, permite que las operaciones **CRUD** administren recursos como: `Usuarios Tareas y Notas`.\n\n## ✔️ CARACTERÍSTICAS\n\n- [x] Servicios Base de Datos (CRUD)\n- [x] Formularios con Swing UI, Only-Window\n- [x] Iniciar sesión, Cerrar Sesión y Mostrar datos del usuario\n- [x] Roles y Privilegios de usuarios\n- [x] Editar Perfil de Usuario + Validaciones de seguridad de datos\n\n### Solo Usuarios Administradores de sistema (SA)\n\n- Mostrar datos de Usuarios\n- Buscar / Filtrar datos de Usuarios\n- Agregar Usuarios\n- Editar Usuarios\n- Eliminar Usuarios\n\n### Característica del proyecto\n\n- Arquitectura tradicional en capas (DDD)\n- Basada en algunos patrones de software de PEAA y DDD\n- Programación Orientada a Objetos\n- Base de datos JDBC / MySQL\n- Java\n- Intellij IDEA\n\n## Descripción general de la estructura (MODELO-ARQUITECTURA)\n\n### Capa Interfaz de Usuario\n\nLa capa de interfaz de usuario es responsable de presentar la información al usuario e interpretar los comandos del usuario asignándolos a los servicios de la capa de aplicación.\n\n### Capa de Dominio\n\nLa capa de dominio contiene los modelos de dominio y objetos de valores independientes.Esta capa contiene información sobre el dominio empresarial. Es responsable de los conceptos de dominio de negocios, información sobre los casos de uso de negocios y las reglas de negocios. Los objetos de dominio encapsulan el estado y el comportamiento de las entidades comerciales .\n\n### Capa de Infraestructura\n\nEsta capa actúa como una biblioteca de apoyo, también transversal para todas las demás capas, facilitando la comunicación entre todas las capas.Sus responsabilidades incluyen; Proporcionar comunicación entre capas, Implementa persistencia para objetos de negocio (Comunicación con la base de datos), proporcionar caché de registro y servicios de seguridad.\n\n### Descripción detallada de la estructura\n\n![diagrama de estructura](/extra/img/structure_diagram.png)\n\n## Abstracciones\n\nEn este componente solo debe contener Interfaces, una interfaz contiene las definiciones de un grupo de funcionalidades relacionadas que una clase o una estructura pueden implementar. Mediante las interfaces puede incluir, un comportamiento de varios orígenes en una clase. Esta capacidad es importante, porque Java entre otros, no admiten la herencia múltiple de clases. Además, debe usar una interfaz si desea simular la herencia de estructuras, porque no pueden heredar de otra estructura o clase. Te recomiendo investigar la importancia de Interfaces y Clases Abstractas.\n\n### Interfaz Repositorio Genérico\n\nEsta interfaz declara todos los métodos (CRUD) genéricos  de los objetos de acceso datos (Dao), tales como: Agregar, Editar, Eliminar, Obtener todos los datos, y Obtener datos por Valor (Búsqueda/ Filtro).\n\n### Interfaz Repositorio de Usuarios\n\nImplementa la interfaz repositorio genérico, por lo tanto implementa todos los métodos CRUD Genéricos, aquí adiciona otras funcionalidades de User Dao, por ejemplo método login (Establecida en el proyecto).\n\n## Repositorio\n\nEste componente es responsable de persistir los datos de la aplicación en la base de datos.\n\n### Clase Repositorio (Clase Abstracta / Base)\n\nEsta clase establece la comunicación con la base de datos, la cadena de conexión esta definida en la misma clase.\n\n### Clase Repositorio de Usuarios\n\nClase objeto de acceso a datos del usuario (User Dao), es responsable de realizar las peticiones y operaciones CRUD del usuario en la base de datos, en esta clase se establece los parámetros. (Implementa la Interfaz Repositorio de Usuarios)\n\n### Clase Repositorio de Notas\n\nClase objeto de acceso a datos de notas (Note Dao), es responsable de realizar las peticiones y operaciones CRUD de notas en la base de datos, en esta clase se establece los parámetros. (Implementa la Interfaz Repositorio de Notas)\n\n### Clase Repositorio de Tareas\n\nClase objeto de acceso a datos de tareas (Task Dao), es responsable de realizar las peticiones y operaciones CRUD de tareas en la base de datos, en esta clase se establece los parámetros. (Implementa la Interfaz Repositorio de Tareas)\n\n## Entidades\n\nEn este componente se Mapea todas las tablas de la base de datos, es decir, tendrás una clase por cada tabla (Entidad).\n\n## ⚙️ INSTALACIÓN\n\nClonar el repositorio.\n\n```bash\ngh repo clone FernandoCalmet/java-login-layered-skeletor\n```\n\nEjecutar aplicación.\n\n```bash\ndotnet run\n```\n\n## 📄 LICENCIA\n\nEste proyecto está bajo la Licencia (Licencia MIT) - mire el archivo [LICENSE](LICENSE) para más detalles.\n\n## ⭐️ DAME UNA ESTRELLA\n\nSi esta Implementación le resultó útil o la utilizó en sus Proyectos, déle una estrella. ¡Gracias! O, si te sientes realmente generoso, [¡Apoye el proyecto con una pequeña contribución!](https://ko-fi.com/fernandocalmet).\n\n\u003c!--- reference style links ---\u003e\n[github-shield]: https://img.shields.io/badge/-@fernandocalmet-%23181717?style=flat-square\u0026logo=github\n[github-url]: https://github.com/fernandocalmet\n[kofi-shield]: https://img.shields.io/badge/-@fernandocalmet-%231DA1F2?style=flat-square\u0026logo=kofi\u0026logoColor=ff5f5f\n[kofi-url]: https://ko-fi.com/fernandocalmet\n[linkedin-shield]: https://img.shields.io/badge/-fernandocalmet-blue?style=flat-square\u0026logo=Linkedin\u0026logoColor=white\u0026link=https://www.linkedin.com/in/fernandocalmet\n[linkedin-url]: https://www.linkedin.com/in/fernandocalmet\n[khanakat-shield]: https://img.shields.io/badge/khanakat.com-brightgreen?style=flat-square\n[khanakat-url]: https://khanakat.com\n","funding_links":["https://ko-fi.com/fernandocalmet"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffernandocalmet%2Fjava-login-layered-skeletor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffernandocalmet%2Fjava-login-layered-skeletor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffernandocalmet%2Fjava-login-layered-skeletor/lists"}