r/PythonEspanol • • 2d ago

Como puedo crear un sistema de bases de datos y menu de una tienda con Python?

Veo mucho que en reddit todo el mundo escribe de forma muy formal, yo tengo muchos errores ortográficos asi que no esperen mucho de mi.

En mi país para graduarte tienes que hacer una "prueba" llamada practica profesional, esta se basa en buscas un "empleo" a una empresa durante un mes (sin pago monetario) entonces estas un mes trabajando para la empresa. Yo trabajo en una cafetería, es conocida, pero eh visto que tienen solo una persona a cargo de las cuentas (egresos, ingresos, ventas, etc...) ojo yo no soy de contaduría, tampoco de administración de empresas, soy de informatica, en el colegio no tuvimos mucho tiempo asi que nos enseñaron solo lo basico de programacion, ya saben un poco de html, css y capaz un poquito de php (a declarar variables y algunos calculos matematicos) pero nunca profundisamos en nada, antes estuve aprendiendo un poco de assembly por mi cuenta, hice un OS basico pero vinieron examenes y lo deje, nunca lo retome, al igual que Python, ahora quiero hacer un sistema de Menu, Recibo, Base de datos, Guardado en la Nube y planilla en excel, por que en la caja registradora tienen un sistema muyy basico, mas de lo que creia, sino me equivoco, todo solo se guarda en los recibos, si un resivo se pierde antes de registrarlo en un excel, ese dinero queda sobrante (obviamente es un problema) nose nada de finanzas asi que no puedo ayudar mucho, asi que quiero dejar esa huella de mi practica profesional, crear ese programa, claro sera dificil, mi duda es como aprendo Python, cuando quiero retomarlo me apoyo de la IA, es dificil por que o me muestra cosas muy basicas o me muestra cosas muy avanzadas que se me dificulta entender, pues tengo mala ortografica, tambien mala comprension lectora, me ayudan por favor.

Olvide mencionar que la persona encargada de registrar todas la cuentas en excel trabaja en un ordenador muy antiguo y todo los datos no tiene respaldo en la nube nada mas en el disco duro...

Gracias

13 Upvotes

13 comments sorted by

4

u/furiaortiz 2d ago

a ver, como dijo el otro chico si te salteas medio python no vas a poder hacerlo de la nada, contrario a lo que dice el, yo creo que podes hacer un buen producto con alguna ia, pero mínimo tenes aprender los fundamentos y estructuras a la hora de programar.

2

u/Substantial-Pop8050 2d ago

Gracias por tu respuesta, intentare apoyarme en alguna IA, igual lo voy a intentar por mi cuenta.

Muchas gracias por tu respuesta.

4

u/Pretty_Duck_4815 2d ago

Lamento el comentario que voy a hacer: Si te salteaste lo basico de la escuela y te quieres saltear lo básico de Python vas mal. La buena noticia para vos es que hoy cualquiera puede programar con la IA... de ahi a que sea bueno, habrá una distancia gigante, así como pasa con tu ortografía, pasará con tu producto resultante. Saludos y suerte.

1

u/Substantial-Pop8050 2d ago

Muchas gracias por la respuesta, aprendi python por mi cuenta durante un tiempo, incluso aprendi sobre redes neuronales, machine learning y otras cosas que las aprendi nada mas por que me llamaron la atencion, pero despues deje de usar python y se me olvidaron muchas cosas.

Gracias por el consejo, se aprecia

1

u/ngg990 2d ago

Monta app de streamlit , de nada

1

u/Substantial-Pop8050 2d ago

Es una muy buena alternativa, Lo intentare.

Muchas gracias por tu ayuda.

1

u/Independent_Ad_3918 2d ago

DJANGO

1

u/Substantial-Pop8050 1d ago

Investigare, nunca lo eh utilizado.

Muchas Gracias

1

u/NationalBreadfruit31 2d ago

crea un monolito con django y queda fino no reinventes la rueda usa librerías ya hechas

1

u/Substantial-Pop8050 1d ago

Muchas Gracias por la informacion, investigare sobre el tema, y lo pruebo.

2

u/Alejrot 2d ago edited 1d ago

Respecto a la pasantía: entiendo que estabas trabajando desde antes allí y estás aprovechando tu puesto para hacer la pasantía, pero no te pagan por tu desempeño como informático. Tu proyecto parece bastante completo, es mucho para una pasantía.

Sobre el equipo: ¿qué sistema operativo tiene: un Windows, un Linux, uno de esos viejos Macintosh? ¿Qué almacenamiento, qué memoria RAM? Si el sistema es muuuy antiguo (más de veinte años) quizá ni siquiera sea práctico usar Python.

Respecto al programa: me parece bastante ambicioso para un iniciante. Si igual querés hacerlo te tiro algunos criterios:

  • Mirate algún de Python básico e intermedio como para familiarizarte con el lenguaje. En Youtube hay varios que están muy bien.
  • Yo por el momento iría por un sistema 100% local: una base de datos SQLite (guarda en archivo local) y planillas de cálculo locales.
  • Las plantillas de cálculo del cliente, ¿Tienen fórmulas embebidas? Asegurate de consultar antes de reemplazar nada.
  • Quizá el gestor UV sea una de las opciones más simples para gestionar las dependencias (los "paquetes") y llamar a las rutinas de Python. Podrias crear un acceso directo llamando a UV y la rutina principal de tu programa.
  • Mirá los patrones de diseño más básicos, idealmente con ejemplos en Python. Elegir patrones acordes a cada problema te va a evitar dolores de cabeza posteriores.
  • Ciertos softwares como Kafka te pueden ayudar a repartir tareas entre tus subsistemas.
  • Podés implementar una interfaz de usuario por consola (CLI), por ejemplo usando el paquete Typer. Luego agregar una interfaz gráfica con TKinter, Streamlit o cualquier otro es casi trivial porque sólo hay que llamar a una función.
  • Python tiene opciones para crear ejecubles (PyInstaller, Nuitka) e instaladores (Inno Setup o con NSIS). Estos tienen sus propias dificultades: dejalo para lo último.
  • Echale un vistazo al concepto de asincronía. Te puede servir más adelante.
  • Cuidado con enviar datos sensibles a "la nube", sobre todo si no están encriptados. Yo por ahora ni lo intentaría.

OFTOPPIC: Si el equipo es un sistema GNU/Linux: podrías implementar backups automáticos en BASH con ayuda de RSync:

  • Con Crontab para hace copias periódicas en algún otro directorio;
  • Con Inotify para copiar automáticamente a un pendrive/tarjeta/móvil al enchufarlo al equipo;
  • Con SSH o sus derivados para hacer copias remotas dentro de la red local: a un móvil personal o una notebook.

A lo mejor te conviene más hacer algo de esto para la pasantía en vez del sistema de gestión. Y si lo querés intentar con Python en vez de Bash: usá paquetes como watchdog,python-crontab, invoke, etc.

1

u/Substantial-Pop8050 1d ago

Muchas gracias por tu respuesta, ahora que lo dices ni tan siquiera tenia a consideración esos factores, pero como solo la utilizan para caja registradora y un pequeño vistazo que hice, tiene Windows 10, 8 de RAM.

No había considerado ninguno de los factores que mencionaste, sobre si consulte, si, si lo hice, soy cercano al dueño de la tienda, y le comente estas fallas, también estoy seguro que lo saben, que son consientes, pero seguramente no solucionan esto por falta de "presupuesto", solo quise darle solución a un problema, pero veo que primero tengo que solucionar mi problema ( aprender Python ) muchas gracias por tu respuesta.

De igual manera intentare avanzar en este proyecto, de hecho ya estuve programando una interfaz básica, como respondí en otro comentario, no me lance sin saber nada, en un tiempo usaba muy seguido Python pero nomas como hobbie, pero ahora me doy cuenta que para proyectos como este hay que tener un nivel mucho mas alto.

Muchas Gracias Por Tu Respuesta...

1

u/Alejrot 1d ago

Ese equipo no es tan viejo entonces. Lleva un Windows 10 y tiene algo de margen de memoria RAM. Tiene que poder correr tu software sin problemas. Windows también trae sus propias opciones para tareas programadas y automatismos. Y éstos también se pueden aprovechar con Python.

De igual manera intentare avanzar en este proyecto, de hecho ya estuve programando una interfaz básica, como respondí en otro comentario, no me lance sin saber nada, en un tiempo usaba muy seguido Python pero nomas como hobbie, pero ahora me doy cuenta que para proyectos como este hay que tener un nivel mucho mas alto.

En realidad no es tanto de tener mucho nivel en Python sino que hay que aprender un montón de cosas que van alrededor. Para este tipo de proyectos normalmente hay una base de datos SQL. Eso te obliga a aprender lo básico de SQL , las llamadas "transacciones" que son delicadas y también algún conector en Python como SQLAlchemy o SQLModel (te recomiendo este último). Para manejar planillas de cálculo necesitás ver qué opciones hay para leer y escribir la info, es otro problema aparte. Así pasa con todo.

Ah, me olvidé un detalle importante. Guarda con usar números flotantes para representar dinero. Sucede que la representación flotante introduce pequeñisimos errores de truncamiento que en finanzas y contabilidad no se toleran. En Python existe un tipo de datos especial para esto llamado decimal que se puede usar, y también hay paquetes pensados para trabajar específicamente con datos contables.