miércoles, 19 de abril de 2023

PROYECTO: JAVA+SPRING BOOT+MYSQL+PHPMYADMIN

Hola a todos siguiendo con el proceso de desarrollo backend, les traigo este ejercicio que consta de mostrar una base de datos utilizando MYSQL+PHPMYADMIN+JAVA+SPRING BOOT. 

  1. MYSQL y PHPMYADMIN: Crear una base de datos llamada empleado. Esta base debe tener los siguientes atributos: id, name, email,empresa,rol y agrega datos, los cuales son los que vamos a mostrar más adelante en nuestro navegador.
    Puedes crear esta BD usando directamente MySQL o  PHPMyAdmin, recuerda que esta configuración se hizo descargando XAMPP. (¿Qué diferencias notaste entre la creación de tablas entre MySQL y PHPMyAdmin?). Para poder utilizar el PHPMyAdmin debe estar corriendo nuestro servidor Apache.


    2. SPRINGBOOT: Generar un proyecto con la siguiente configuración y las 3 dependencias.


3. JAVA: Utilizando el editor IntelliJ IDEA iniciamos revisando nuestro archivo pom.xml y verificando que todas nuestras dependencias hayan sido cargadas.

Crear 3 packages: 
  • Entity: Dentro de este package crea una clase llamada Empleado:
package com.example.demo.Entity;

import jakarta.persistence.*;

@Entity
@Table(name = "empleado")
public class Empleado {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long Id;
@Column(name = "name")
private String name;
@Column(name = "email")
private String email;

@Column(name = "empresa")
private String empresa;

@Column(name = "rol")
private String rol;

public Empleado(){

}

public Empleado(String name, String email, String empresa, String rol) {
this.name = name;
this.email = email;
this.empresa = empresa;
this.rol = rol;
}

public Long getId() {
return Id;
}

public void setId(Long id) {
Id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public String getEmpresa() {
return empresa;
}

public void setEmpresa(String empresa) {
this.empresa = empresa;
}

public String getRol() {
return rol;
}

public void setRol(String rol) {
this.rol = rol;
}
}
Repository

package com.example.demo.Repository;

import com.example.demo.Entity.Empleado;
import org.springframework.data.jpa.repository.JpaRepository;

public interface EmpleadoRepository extends JpaRepository<Empleado, Long> {

}
Controller
package com.example.demo.Controller;

import com.example.demo.Entity.Empleado;
import com.example.demo.Repository.EmpleadoRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/empleado")
public class Controllerempleado {
@Autowired
private EmpleadoRepository empleadoRepository;
@GetMapping
public List<Empleado> getAllEmpleados(){
return empleadoRepository.findAll();
}
}


aplication.properties:
spring.datasource.url=jdbc:mysql://localhost:3306/empleado?useSSL=false
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
spring.jpa.hibernate.ddl-auto=update
RESULTADO



miércoles, 12 de abril de 2023

PROYECTO: JAVA + SPRING BOOT : HOLA MUNDO

Hola a todos

Para esta sección realizaremos la siguiente actividad para enfocarnos al desarrollo Backend. El objetivo es imprimir "hola mundo", entendiendo los conceptos vistos en las clases. Sigamos paso a paso:

1. Visita https://start.spring.io/ y descarga el archivo con las siguientes configuraciones y dependencias:


2. Abre el editor preferido, el que hemos estado trabajando es el IntelliJ IDEA, carga el proyecto y verifica que en el archivo pom.xml se haya cargado correctamente la dependencia Spring Web. (Como ejercicio adicional, realiza la generación del proyecto sin la dependencia y luego cárgala manualmente recuerda actualizar, deja comentarios con el resultado)


3. Verifica que tu archivo principal se encuentre configurado correctamente, lo puedes correr si es necesario(opcional)


4. Creación del package Controller y el archivo que contendrá las clases y métodos (ControllerSaludar.java).



5. Ejecución del proyecto: Corre tu proyecto y luego ve al navegador y copia localhost:8080.

Hemos terminado nuestra primer actividad, recuerda subir el repositorio a GIT y pendiente al BLOG para la siguiente actividad en la que realizaremos el TO DO LIST.


domingo, 3 de abril de 2022

EJERCICIOS VARIOS: LISTAS

 Hola a todos les dejo 2 ejercicios de listas:

  1. Eliminar elementos repetidos de la lista: Lista = [1, 1, 4, 4, 1, 4, 2, 3, 2, 9, 8, 7, 7, 8]

1
2
3
4
5
6
Lista = [1, 1, 4, 4, 1, 4, 2, 3, 2, 9, 8, 7, 7, 8]
data=[]
for l in Lista:
        if l not in data:
            data.append(l)
print("Nueva lista:",data)



Ejercicio2: Trabajando con listas:

Paso 1:Crear la lista animals.
Paso 2: Agregar "Leon", "Puma","Tigre". 
Paso 3: Por teclado solicitar el ingreso de 2 felinos. Ingrese "Leopardo" y "Jaguar"
Paso 4: Borra el elemento de la posición 3. 
Paso5: 
Ingresa "Lince" a la posición 0.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
animals=[]# Craer lista
print("paso 1: ",animals)
animals.append("Leon")
animals.append("Puma") 
animals.append("Tigre")
print("Paso 2:", animals)
add=int(input("Elementos a ingresar: "))
for i in range(add):# paso 3
    nombre=input("Nombre: ")
    animals.append(nombre)
print("Paso 3:", animals)

del animals[3]# paso 4
del animals[3]
print("Paso 4:", animals)

animals.insert(0,"Lince")# paso 5
print("Paso 5:", animals)

RESULTADO



¿CÓMO LEER, ESCRIBIR Y MODIFICAR VALORES .CSV EN PYTHON?

Hola a todos!!

Antes de comenzar les agradezco se suscriban a mi canal de Youtube: https://www.youtube.com/c/sramirez88

Les dejo este ejercicio que nos permita entender, el manejo de estos archivos (Creación, Lectura, Escritura y modificaciones), por lo tanto lo vamos a hacer paso a paso:

Vamos a crear un archivo que nos permita hacer las modificaciones de un archivo principal. Este archivo principal contiene información (Descarga este archivo para que iniciemos):

    • El archivo principal.csv contiene información acerca de la venta de vehículos desde el 2020 al 2022, cuyas columnas guardan la siguiente información: 

NUMERO, FECHA, MARCA,EDAD, SEXO


    • El archivo nuevo lo vamos a crear con 3 columnas (MARCA, EDAD, SEXO), tendrá el nombre: indicador.csv

ACTIVIDAD:

  • ¿Cuántas personas del sexo F compraron Toyota?
  • ¿Cuál es el promedio de edades que compraron Renault?
  • Ordene el archivo de menor edad a mayor
El archivo creado debe verse así:


CODIGO:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import csv
with open('indicador.csv','w',newline='') as csvfile: #Crear el archivo indicador.csv
    fieldnames=['MARCA;EDAD;SEXO']#Encabezados
    writer=csv.DictWriter(csvfile,fieldnames)
    writer.writeheader()#Crear el encabezado
    exam1=0 #Variable creada para conteo de compras de TOYOTA
    sumaEdad=0 #variable creada pasa suma de edad de compras de RENAULT
    cantidadEdad=0#Variable para conteo de compras de RENAULT
    archivo=open('principal.csv','r')#Abrir y leer el archivo que tiene la información
    lines=archivo.read().splitlines()#Divide el archivo en líneas
    lines.pop(0) #Borra el encabezado
    data=[]#Se crea una lista para ordenarla e incluirla al archivo indicador.csv
    for l in lines:
        linea=l.split(',')#Separa cada dato hasta la ','
        #¿Cuántas personas del sexo F compraron Toyota?
        if linea[4]=='F' and linea[2]=='TOYOTA':
            exam1 += 1
        #¿Cuál es el promedio de edades que compraron Renault?
        if linea[2]=='RENAULT':
            sumaEdad += int(linea[3])
            cantidadEdad +=1
              
        data.append([linea[2],linea[3],linea[4]])
        #Ordene el archivo de menor edad a mayor
    for i in range (-1,len(data)):
        for l in range(len(data)):
            if int(data[l][1])>int(data[i][1]):
                data[l],data[i]=data[i],data[l]
        
        #Ingresamos los datos a indicador.csv, separado por ";")
                
    for i in range(len(data)):
        csvfile.write(str(data[i][0])+";"+str(data[i][1])+";"+str(data[i][2])+"\n")
    csvfile.close()
    archivo.close()
    
    promedio=sumaEdad/cantidadEdad
    print("¿Cuántas personas del sexo F compraron Toyota?: ",exam1)
    print("¿Cuál es el promedio de edades que compraron Renault?: ",promedio)

RESULTADO:


RETO:

  • ¿Cuál fue la marca más vendida en el 2021? Comparte pantallazo del resultado.

Felicitaciones!!! Ya sabes leer, escribir y modificar datos CSV desde Python.



viernes, 10 de abril de 2020

¿CÓMO CALCULAR LA NÓMIMA DE UN TRABAJADOR EN PYTHON? PARTE 1



Saludos

Este ejercicio será la base para el cálculo de la nómina de una empresa, pasaremos de conceptos básicos y a futuro crear un software que nos permita integrar excel o mysql para crear la nómina de una empresa, Por este motivo esta será la parte 1.

Este ejercicio recibirá los datos ingresados de forma manual, pero en la segunda parte utilizaremos excel o mysql para realizar un cálculo general, espero que al iniciar este proyecto les pueda generar ideas para crear las suyas.

Se adaparán conceptos en pagos con respecto a las leyes colombianas:

Antes de empezar

Hora Ordinaria:
Es el valor de la hora con respecto a la cantidad de tiempo laborado, por ejemplo, un trabajador gana al mes 1'200.000 COP lo que equivale al valor por trabajar 240 horas mensuales. Para calcular el valor por hora:

1'200.000/240=$5.000

RN: Recargo Nocturno (Valor hora ordinaria + 35%)
Esta novedad se presenta cuando el horario de un trabajador está entre las 21:00 y 6:00, por ejemplo. Sneyder Ramírez fue programado en horario de 14:00-22:00. Lo que quiere decir que se debe pagar 1 RN debido al trabajo realizado desde las 21:00 a 22:00. Esta novedad se paga al 35% del valor de una hora ordinaria

$5.000 + $1.750 = $6.750

HED: Hora extra diurna (Valor hora ordinaria + 25%)
Se presenta cuando un trabajador cumple su horario de trabajo, y se requiere que se quede un tiempo adicional, estas horas se encuentran entre las 6:00-21:00. Por ejemplo: Sneyder ramírez fue programado a trabajar el día martes de 6:00am a 14:00, la empresa requiere que trabaje hasta las 16:00, por lo tanto se deben pagar 2 HED:
  
$5.000 + $1.250= $6.250 


HEN: Hora extra nocturna (Valor hora ordinaria+ 75%)
Se presenta cuando un trabajador cumple su horario de trabajo, y se requiere que se quede un tiempo adicional, estas horas se encuentran entre las 21:00-6:00. Por ejemplo: Sneyder ramírez fue programado a trabajar el día martes de 13:00am a 21:00, la empresa requiere que trabaje hasta las 23:00, por lo tanto se deben pagar 2 HEN y no aplicaría RN.


$5.000 + $3.750= $8.750



HFD: Hora festiva diurna (Valor hora ordinaria + 75%)
Se presenta cuando te han programado a trabajar un domingo o un día festivo, Aplica cuando su turno de trabajo fue programado dentro del rango 6:00-21:00 y dentro del horario programado cada hora se debe pagar:
$5.000 + $3.750= $8.750


HEFD: Hora extra festiva diurna (Valor hora ordinaria + 75%+25%)
Se presenta cuando un trabajador cumple su horario de trabajo, y se requiere que se quede un tiempo adicional, estas horas se encuentran entre las 6:00-21:00. Por ejemplo: Sneyder ramírez fue programado a trabajar el día domingo de 6:00am a 14:00, la empresa requiere que trabaje hasta las 16:00, por lo tanto se deben pagar 2 HEFD, las cuales tendran un costo de:

 $5.000 + $3.750 +$1.250 = $10.000

HFN: Hora festiva Nocturna (Valor hora ordinaria + 75% + 35%)
Se presenta cuando te han programado a trabajar un domingo o un día festivo, Aplica cuando su turno de trabajo fue programado dentro del rango 21:00-6:00

 $5.000 + $3.750 +$1.750 = $10.500

HEFN: Hora extra festiva Nocturna(Valor hora ordinaria + 75% + 75%)
Se presenta cuando un trabajador cumple su horario de trabajo, y se requiere que se quede un tiempo adicional, estas horas se encuentran entre las 21:00-6:00. Por ejemplo: Sneyder ramírez fue programado a trabajar el día domingo de 13:00am a 21:00, la empresa requiere que trabaje hasta las 23:00, por lo tanto se deben pagar 2 HEFN y no aplicaría RN.
las cuales tendran un costo de:

 $5.000 + $3.750 + $3.750 = $12.500

Teniendo en cuenta todas las novedades, este será el código base en el que se trabajará para crear nuestro software de nómina. Lo llamaré nomina.py


print("Calculadora pago de horas extras")
    
salario=int(input("Ingrese su salario: "))

HO=salario/240


RN=int(input('ingresa cantidad de RN: '))
RN=RN*HO*0.35

HED=int(input('ingresa cantidad de HED: '))
HED=HED*(HO*1.25)

HEN=int(input('ingresa cantidad de HEN: '))
HEN=HEN*HO*1.75

HFD=int(input('ingresa cantidad de HFD: '))
HFD=HFD*HO*1.75

HEFD=int(input('ingresa cantidad de HEFD: '))
HEFD=HEFD*HO*2

HFN=int(input('ingresa cantidad de HFN: '))
HFN=HFN*HO*2.1

HEFN=int(input('ingresa cantidad de HEFN: '))
HEFN=HEFN*HO*2.5


print('\n \nSus pagos en horas extras seran:\nRECARGO NOCTURNO: ',RN)
print('HORA EXTRA DIURNA: ',HED,'\nHORA EXTRA NOCTURNA: ',HEN)
print('HORA FESTIVA DIURNA: ',HFD,'\nHORA EXTRA FESTIVA DIURNA: ',HEFD,'\nHORA FESTIVA NOCTURNA: ',HFN,'\nHORA EXTRA FESTIVA NOCTURNA: ',HEFN)
print('TOTAL: ',RN+HED+HEN+HFD+HEFD+HFN+HEFN)

Esta será la salida:

Calculadora pago de horas extras
Ingrese su salario: 1200000
ingresa cantidad de RN: 8
ingresa cantidad de HED: 16
ingresa cantidad de HEN: 0
ingresa cantidad de HFD: 16
ingresa cantidad de HEFD: 0
ingresa cantidad de HFN: 0
ingresa cantidad de HEFN: 0

 
Sus pagos en horas extras seran:
RECARGO NOCTURNO:  14000.0
HORA EXTRA DIURNA:  100000.0 
HORA EXTRA NOCTURNA:  0.0
HORA FESTIVA DIURNA:  140000.0 
HORA EXTRA FESTIVA DIURNA:  0.0 
HORA FESTIVA NOCTURNA:  0.0 
HORA EXTRA FESTIVA NOCTURNA:  0.0
TOTAL:  254000.0

Esto es todo por ahora, cada semana mostraré un avance hasta que lleguemos al aplicativo final.

¿CÓMO CALCULAR PERÍMETROS DE FIGURAS GEOMÉTRICAS EN PYTHON?


Buenas tardes para este ejercico vamos a calcular el perímetro de algunas figuras geómetricas en el lenguaje de programación Python

Primero que todo el perímetro se define como el conjunto de líneas que forman el contorno de una superficie o una figura, se calcularán para figuras como:

1. Cuadrado
2. Rectángulo
3.Círculo
4. Triángulo

Se van a crear 2 archivos

Software:

Python 3.8.2

El siguiente código realizará los calculos:

perimetro.py

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
import math

def per_cuadrado(l):
    per=4*l
    return print('el perimetro del cuadrado es: ',per)

def per_rectangulo(x,y):
    per=2*(x+y)
    return print('el perimetro del rectangulo es: ',per)

def per_circulo(r):
    per=2*math.pi*r
    return print('el perimetro del circulo es: ',per)

def per_traingulo(x,y,z):
    per=x+y+z
    return print('el perimetro del triangulo es: ',per)

calculo.py

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import perimetro

print("Calcular perímetro de figuras Geométricas.\n")
print("1.Cuadrado.\n2.Rectángulo.\n3.Circulo.\n4.Triángulo.\n")

x=int(input("Escoja la figura: "))
y=0
h=0
r=0
a=0
b=0
c=0

if x==1:
    y=int(input('Ingrese el lado: '))
    perimetro.per_cuadrado(y)
    

if x==2:
    y=int(input('Ingrese la base: '))
    h=int(input('Ingrese la altura: '))
    perimetro.per_rectangulo(y,h)

if x==3:
    r=int(input('Ingrese el radio del circulo: '))
    perimetro.per_circulo(r)


if x==4:
    a=int(input('Ingrese el lado 1: '))
    b=int(input('Ingrese el lado 2: '))
    c=int(input('Ingrese el lado 3: '))
    perimetro.per_traingulo(a,b,c)



jueves, 18 de abril de 2019

¿CÓMO GANAR DINERO EN INTERNET? PARTE II

Hola a todos

Si te encuentras en esta entrada es porque leíste la primera parte, sino lo hiciste te dejo el link. Es necesario que lo hayas leído o sino no entederás nada de lo que te voy a mostrar.

Primero felicitaciones por haber creado tu blog, ahora vamos a generar dinero por medio de el.

Acortador de enlaces: A veces muchas personas los confunde con virus, pero no es así. Actualmente utilizo la página Adf.ly, pero existen demasiados. Mientras llega el mensaje de aprobación de google Adsense puedes utilizar un acortador de enlaces en tu blog y te generará ingresos adicionales. adf.ly te ofrece 5 dólares por cada 10 mil visitas.


https://join-adf.ly/19419422


¿Cómo funciona? 
Para hacer este ejercicio vamos a hacer la suscripción a mi canal de Youtube (más adelante te voy a enseñar a ganar dinero también por ese medio)

El acortador de enlaces primero te lleva a una página de publicidad antes de redireccionarte a la página de interés que es mi canal de Youtube.

Por ejemplo: Por medio del siguiente link ingresarás a mi canal de youtube. Pero primero te aparecerá una ventana de publicidad así:

Debes esperar 5 segundos después de dar click al link, esperar que que cambie a saltar publicidad y luego te suscribes a mi canal (así apoyas a que siga creciendo mi blog y poder compartir más información y así me ayudas para el siguiente paso)

Con ese proceso se generó una visita, con lo cual Adf.ly te estaría pagando por eso. Ponte la meta mínima de las 10mil visitas, ya que por 10 mil visitas Adf.ly te pagará 5 dólares.

Inscríbete:






Ahora vamos con Youtube

https://www.youtube.com/

Youtuber: Una persona que sube videos a Youtube. Para este caso enlacé mi blog con Youtube, realizando videos a partir de las entradas del Blog, para generar ingresos por parte de Google Adsense debes tener al menos mil suscriptores.

¿Si no tengo los mil suscriptores? Mientras los consigues puedes ir adelantando el acortador de enlaces, Realicé videosdemostrando el funcionamiento de los códigos de programación del blog en Youtube, y en la descripción del video dejé el enlace, ese enlace asocia adf.ly con mi blog. Más adelante estaría recibiendo dinero por 3 fuentes (Blogger, Adfly, Youtube)

Muchas gracias por haberse tomado el tiempo de leer, ha sido todo y si decides realizar o seguir este camino, sólo es de constancia, paciencia y dedicación, traza la meta. Exitos!


Recuerda que si necesitas asesoría para seguir mi método, con mucho gusto deja tu comentario y te lo responderé en breve. Con esto ayudarás a darle más solidez a esta entrada.

Saludos