{"id":23250519,"url":"https://github.com/fabo2303/springboot-aws-dynamodb-postgresql","last_synced_at":"2026-04-24T20:36:19.861Z","repository":{"id":268827884,"uuid":"905557801","full_name":"Fabo2303/springboot-aws-dynamodb-postgresql","owner":"Fabo2303","description":"Task and climate data management app on AWS, using Spring Boot, WebSockets, DynamoDB, and PostgreSQL for real-time updates and global climate data.","archived":false,"fork":false,"pushed_at":"2024-12-19T05:47:26.000Z","size":108,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-06T02:14:43.637Z","etag":null,"topics":["aws-dynamodb","aws-ec2","aws-rds","html-css-javascript","java","spring-boot","springboot","websocket"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Fabo2303.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-12-19T04:31:27.000Z","updated_at":"2024-12-19T05:50:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"e73f1216-d956-47a3-9646-5a1ba05b29a7","html_url":"https://github.com/Fabo2303/springboot-aws-dynamodb-postgresql","commit_stats":null,"previous_names":["fabo2303/springboot-aws-dynamodb-postgresql"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fabo2303%2Fspringboot-aws-dynamodb-postgresql","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fabo2303%2Fspringboot-aws-dynamodb-postgresql/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fabo2303%2Fspringboot-aws-dynamodb-postgresql/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fabo2303%2Fspringboot-aws-dynamodb-postgresql/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Fabo2303","download_url":"https://codeload.github.com/Fabo2303/springboot-aws-dynamodb-postgresql/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247423521,"owners_count":20936626,"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":["aws-dynamodb","aws-ec2","aws-rds","html-css-javascript","java","spring-boot","springboot","websocket"],"created_at":"2024-12-19T09:12:33.087Z","updated_at":"2026-04-24T20:36:19.825Z","avatar_url":"https://github.com/Fabo2303.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Aplicación de Gestión de Tareas y Datos Climáticos en AWS\n\nEste proyecto fue propuesto para el curso de Sistemas Distribuidos del ciclo VIII de la carrera de Ingeniería de Sistemas de la Universidad Nacional Mayor de San Marcos.\n\nLa finalidad de este proyecto fue aplicar los conocimientos adquiridos en sistemas distribuidos, utilizando herramientas y tecnologías avanzadas para el desarrollo y despliegue de aplicaciones en la nube, específicamente en Amazon Web Services (AWS).\n\n## Índice\n\n1. [Características principales](#características-principales)\n2. [Tecnologías utilizadas](#tecnologías-utilizadas)\n3. [Prerrequisitos](#prerrequisitos)\n3. [Requisitos](#requisitos)\n4. [Instrucciones de uso](#instrucciones-de-uso)\n   - [Paso 1: Clonar el repositorio](#clonar-el-repositorio-en-tu-máquina-local)\n   - [Paso 2: Importar el proyecto](#importar-el-proyecto-en-tu-ide-de-desarrollo)\n   - [Paso 3: Configurar el archivo de propiedades](#crear-un-archivo-env-o-modificar-el-archivo-aplicationproperties-con-las-credenciales-de-acceso-a-la-base-de-datos-dynamodb-y-postgresql)\n   - [Paso 4: Ejecutar el proyecto](#ejecutar-el-proyecto-en-tu-ide-de-desarrollo)\n   - [Paso 5: Acceder a la aplicación](#acceder-a-la-aplicación-en-tu-navegador-web)\n5. [Capturas de pantalla](#capturas-de-pantalla)\n   - [Página principal](#página-principal)\n   - [Crear tarea](#crear-tarea)\n   - [Tareas](#tareas)\n   - [Datos climáticos](#datos-climáticos)\n   - [Cargar Datos Climáticos](#cargar-datos-climáticos)\n6. [Consideraciones](#consideraciones)\n\n## Características principales\nLa aplicación permite a los usuarios gestionar tareas mediante una interfaz donde se puede crear una tarea, proporcionando un título, descripción y los entregables relacionados. Además, se hace uso de WebSockets para mantener una conexión en tiempo real entre el cliente y el servidor.\n\nA través de esta tecnología, la aplicación consume datos provenientes de una base de datos NoSQL (DynamoDB), y también recupera datos climáticos desde el catálogo de datos del Grupo Banco Mundial. Los datos climáticos son presentados en tiempo real a los usuarios para obtener información relevante sobre el clima de diferentes ubicaciones del mundo.\n\n## Tecnologías utilizadas\n- **Spring Boot** para la creación del backend y las API REST.\n- **WebSockets** para la comunicación en tiempo real entre el cliente y el servidor.\n- **DynamoDB (NoSQL)** para la gestión de tareas y datos relacionados.\n- **PostgreSQL** para almacenamiento de información relacional.\n- **AWS EC2** para el despliegue de la aplicación en la nube.\n- **Ubuntu** como sistema operativo para el servidor en AWS.\n- **Catálogo de Datos del Grupo Banco Mundial** para la obtención de información climática.\n\n## Prerrequisitos\nComo se mencionó anteriormente, la aplicación está desplegada en AWS, por lo que es necesario contar con una cuenta de AWS para poder acceder a ella. Además, para que la aplicación funcione correctamente, es imprescindible tener una base de datos DynamoDB y PostgreSQL configurada en AWS.\nToda la información necesaria para la creación de estas bases de datos en AWS está disponible en el siguiente archivo:\n\n[Guía para la creación de AWS](https://github.com/user-attachments/files/18193097/guia.para.la.creacion.de.aws.pdf)\n\nEste archivo incluye instrucciones detalladas sobre cómo configurar las bases de datos en AWS y conectar la aplicación de manera adecuada.\n\n## Requisitos\n- **Java 17**\n- **Maven**\n- **Un IDE de desarrollo (Eclipse, IntelliJ, NetBeans, etc.)**\n- **PostgreSQL**\n- **Crear una cuenta de aws y crear las bases de datos DynamoDB y RDS**\n\n## Instrucciones de uso\n1. ##### Clonar el repositorio en tu máquina local.\n    ````shell\n    git clone https://github.com/Fabo2303/springboot-aws-dynamodb-postgresql.git\n    ````\n2. ##### Importar el proyecto en tu IDE de desarrollo.\n3. ##### Crear un archivo .env o modificar el archivo aplication.properties con las credenciales de acceso a la base de datos DynamoDB y PostgreSQL.\n    ````properties\n    # modelo para el archivo .env\n    SPRING_DATABASE_URL=YOUR_DATABASE_URL\n    SPRING_DATABASE_USERNAME=YOUR_DATABASE_USERNAME\n    SPRING_DATABASE_PASSWORD=YOUR_DATABASE_PASSWORD\n    DYNAMODB_ENDPOINT=YOUR_DYNAMODB_ENDPOINT\n    DYNAMODB_REGION=YOUR_DYNAMODB_REGION\n    DYNAMODB_ACCESS_KEY=YOUR_DYNAMODB_ACCESS_KEY\n    DYNAMODB_SECRET_KEY=YOUR_DYNAMODB_SECRET_KEY\n    ````\n4. ##### Ejecutar el proyecto en tu IDE de desarrollo.\n5. ##### Acceder a la aplicación en tu navegador web.\n    ````shell\n    http://localhost:8080\n    ````\n\n## Capturas de pantalla\n### Página principal\n1. Ingresar a la aplicación en tu navegador web.\n![Página principal](https://github.com/user-attachments/assets/2c171bbd-4e10-458d-b94f-2f88fdc255cf)\n\n### Crear tarea\n1. Seleccionar la opción \"Ver tareas\" en el menú.\n![Menú Crear tarea](https://github.com/user-attachments/assets/7ab6cc44-bbdc-4a40-bbd4-64714f84046b)\n2. Completar los campos del formulario y hacer clic en el botón \"Crear\".\n![Crear tarea](https://github.com/user-attachments/assets/631960ca-4b3c-499f-a0a7-0d2db5926750)\n\n### Tareas\n1. Visualizar las tareas creadas.\n![Tareas](https://github.com/user-attachments/assets/fbd14475-f322-44ea-89bf-a4358be3ab41)\n\n### Datos climáticos\n1. Seleccionar la opción \"Ver clima\" en el menú.\n2. La pantalla mostrará los datos climáticos cada minuto.\n![Datos climáticos](https://github.com/user-attachments/assets/312c368c-5346-4a8f-939d-c099391fd1e5)\n\n### Cargar Datos Climáticos\n1. Seleccionar la opción \"Cargar datos\"\n2. Subir el csv con los datos climáticos\n3. Hacer clic en el botón \"Subir Datos Meteorológicos\"\n![Cargar Datos Climáticos](https://github.com/user-attachments/assets/b54a3e9f-b66c-4a43-8983-ceeb354b56a4)\n\n## Consideraciones\n\nDebido a los costos asociados con el uso de AWS, la aplicación no se encuentra desplegada actualmente en la nube. Sin embargo, si desea probar la aplicación en su entorno local, puede seguir los siguientes pasos: primero, deberá crear las bases de datos en AWS (tanto DynamoDB como PostgreSQL), y luego configurar el proyecto de Spring Boot en su máquina local. Al completar estos pasos, podrá ejecutar y probar la aplicación en su propio sistema.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffabo2303%2Fspringboot-aws-dynamodb-postgresql","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffabo2303%2Fspringboot-aws-dynamodb-postgresql","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffabo2303%2Fspringboot-aws-dynamodb-postgresql/lists"}