Coder Social home page Coder Social logo

tp-gdd-palconet's Introduction

Hi 👋

I'm Christian Dario Nievas, 24 y.o and student of systems engineering at the UTN (Universidad Tecnológica Nacional).
From Buenos Aires, Argentina 🇦🇷.

More about me

👨‍💻 Cyber Security Assistant - Incident Response Team at MercadoLibre
👨‍🏫 Teaching Assistant at UTN in System's Design (Diseño de sistemas) subject
👨‍🏫 Professor at Escuela de Arte Multimedia Da Vinci
👨‍🏫 Professor at UADE
🧭 Campus Advisor at GitHub
☕ Host at TecnoExpresso Podcast (ES)
☠️ Pentester enthusiast in HackTheBox
💕 Love to Python, NodeJS, Linux and NoSQL
🤖 Bot creator (Twitch/Telegram/Discord)

🧠 "If someone already did it, you can do it too, but if no one did it, be the first to do it" as mindset 🧠

🤝 Organizations

🤓 Learning

  • Go
  • TypeScript

🙂 Thanks for visiting and have a nice day! 🙂

tp-gdd-palconet's People

Stargazers

 avatar

Watchers

 avatar

tp-gdd-palconet's Issues

Consultas

  • una Empresa _de_Espectáculo tiene un unico domicilio o varios si tiene muchas sucursales
  • mandamos un der o mandamos las tablas creadas con todo en sql ?

datitos

cuando un usuario, intenta modificar algo, tienen que precargarse sus datos

cliente
modificar cliente no deberia permitir modificar ciertas cosas como id, documento, info "que no deberia cambiar" tenganlo en cuenta

Usuarios - contraseñas

A un usuario se le puede asignar un solo rol según corresponda a su tipo. Debe
tenerse en cuenta que se pueda modificar el password. Tanto por el propio usuario como
por el usuario administrativo.
También debe contemplarse de alguna manera, que un administrativo pueda dar de
baja un usuario. Esto es independiente a la inhabilitación por fallas de ingreso.
IMPORTANTE: Toda baja debe realizarse en forma lógica.

Cosas del TP

TP GDD

  1. Login y seguridad
  2. ABM de Rol
  3. Registro de Usuario
  4. ABM de Cliente
  5. ABM de Empresa de espectáculos
  6. ABM de Categoría
  7. ABM grado de publicación
  8. Generar Publicación
  9. Editar Publicación
  10. Comprar
  11. Historial del cliente.
  12. Canje y administración de puntos
  13. Generar Pago de comisiones
  14. Listado Estadístico

ABM Rol

Create

Rol:

  • Nombre
  • Funcionalidades (selección acotada)

Actualmente hay estos roles:

  • Empresa
  • Administrativo
  • Cliente

Update

Rol:

  • Nombre
  • Lista de Funcionalidades (agregar/quitar)

Delete

Baja lógica. Hay que quitárselo a los usuarios que lo posean.
Se debe poder volver a habilitar un rol inhabilitado

Login y seguridad

Usuario debe elegir rol al loguearse (si tiene más de uno)
3 intentos fallidos => inhabilitar user
limpiar intentos fallidos cuando hay un intento satisfactorio

Registro de Usuario

Rol es uno sólo o son varios por usuario

Cliente y Empresa no pueden ser la misma persona ¿¿¿¿¿????????

Usuarios
Username (único)
Password (encriptar SHA256)
Rol asignado
Datos identificatorios (según el tipo de usuario)

Create

Alta de un usuario (Cliente/Empresa)

Update

  • Modificar el Password (por el usuario o por el administrador)

Delete

  • Administrativos pueden dar baja lógica a un usuario
  • Esto es independiente a la inhabilitación por fallas de ingreso

ABM de Clientes

Datos a ingresar
Nombre
Apellido
Tipo documento (no repetir)
Nro documento (no repetir)
CUIL (no repetir, verificar si es válido)
Mail
Telefono
Direccion
Cod postal
Fecha Nacimiento
Fecha de Creación
Datos de tarjeta de crédito

Create

  • Con los datos anteriores
  • Generar user y Password automáticamente y cambiarlos al primer inicio de sesión

Read

  • Filtrar por:
  • Nombre
  • Apellido
  • DNI
  • Email

Update

  • Se pueden modificar todos los datos anteriores

Delete

  • Al parecer se puede deshabilitar a un cliente y volverlo a habilitar (si está deshabilitado no puede comprar)

ABM de Empresa de Espectáculos

Adiministradores crean, modifican, dan de baja empresas.
Empresas sólo pueden vender y no comprar.

Datos a ingresar
Razón social (unico)
Mail
Telefono
Dirección
Código Postal
Ciudad
CUIT (unico, validar)

Create

  • Con los datos de arriba
  • Autogenerar pass y user. Pedir cambio de pass al primer inicio de sesión.

Read

  • Filtrar por:
    • Razón social
    • CUIT
    • Email

Update

  • Todos los datos de arriba son modificables

Delete

  • Baja lógica

ABM de Rubro

Categoría
Código
Descripción

No hace falta hacer este ABM wiiiiii

ABM Grado de Publicación

  • Prioridad: Puede ser Alta / Media / baja
  • Todos los grados tienen una comisión

Generar Publicación

Estados:

  • Borrador: Podes modificar todos los datos y la publicación no está visible
  • Activa o publicada: Lo pueden ver todos, disponible para operar.
    No puede volver a borrador. Chequear que fecha de comopra <= fecha de evento.
  • Finalizada: No ofrece más localidades a la venta. Cambio automático: cuando se han vendido todas las localidades del evento => pasa a finalizada. Cuando está finalizada no podés cambiar el estado.

Se debe poder determinar cuantas localidades se ofrecen, lo cual determinaria el stock.

Publicación
Codigo (autonumérico)
Descripción
Ubicaciones (filas, asientos, precio y tipo de ubicaciones)
Fecha de publicación
Fecha evento
Rubro
Direccion
Grado de Publicación
Usuraio responsable de la publicación
Estado de la publicación

En esta funcionalidad también se deberá permitir la generación de publicaciones
por lotes (batch - varias publicaciones al mismo tiempo). Dado que un espectáculo
puede repetirse en el tiempo, como por ejemplo funciones de cine u obras teatrales. Se
tendrá que permitir el ingreso de varias fecha-hora del espectáculo, de este modo, si
contamos con una lista de 10 elementos fecha-hora de espectáculo, se deberán generar
10 publicaciones diferentes con su correspondiente fecha-hora. El rango de fecha-hora
ingresado debe ser incremental y el próximo elemento a ingresar tiene que ser mayor al
siguiente, si ingresamos 01/01/2019 10:00 el próximo valor tiene que ser mayor a este
último, el sistema debe validar estas condiciones e informar posible errores.

Editar Publicación

  • Sólo si está en borrador
  • No puede haber 2 espectáculos iguales a la misma fecha y hora
  • No dejar modificar la fecha a un día anterior al actual

Comprar

Filtrar publicaciones

  • Una o más categorías
  • Descripción
  • Rango de fechas

Mostrar primero las que tengan más peso
Mostrarlas en una grilla y con páginas y dejarte pasar entre páginas.

  • Se puede comprar varias entradas del espectáculo
  • Método de pago electrónico:
    • Registrar con cual se efectuó la compra
    • Si el usuario no tiene datos de su tarjeta, se los pedis.
  • No generar compras con importes negativos
  • Cada compra suma puntos

Historial de Cliente

  • El cliente debe poder conocer su Historial de compras
  • Grilla paginada
  • Mostrar medio de pago usado

Canje y Administración de puntos

  • Puntos tienen vencimiento
  • Se pueden canjear por premios

Generar rendición de comisiones

  • Registrar facturas por el cobro de comisiones de ventas
Factura
ubicaciones(entradas) a rendir (compras)
Importe de cada venta
Que importe corresponde a que comisión
  • Rendir de compras más antiguas a más nuevas, sin saltear.
  • Adiministradores deciden cuantas quieren rendir.

Una vez generadas las rendiciones de comisión, se pagará a la empresa de
espectáculos los importes recaudados por las ventas, descontando las comisiones
generadas anteriormente.

Listado Estadístico

TOP 5 de:

  • Empresas con mayor cantidad de localidades no vendidas:

    • Filtrar por:
      • grado de visibilidad de publicación
      • mes-año
    • Ordenar por:
      • fecha
      • visibilidad
  • Clientes con mayores puntos vencidos

  • Clientes con mayor cantidad de compras, "agrupando las publicaciones por empresa"

Consultas son a nivel trimestral.

Sistema pide:

  1. año
  2. trimestre
  3. Tipo de listado

Sólo mostrar columnas correspondientes al tipo de listado que elegiste

Estado de Migración

  • Clientes
  • Empresas
  • Rubros
  • Tipo Ubicaciones
  • Publicaciones
  • Facturas
  • Item_Factura
  • Ubicaciones
  • Compras
  • Tarjeta / forma de pago(??)

Publicaciones

  • Traer publicaciones --> Publicaciones.PublicacionesByEmpresaId(idEmpresa, pagina)
  • Modificar una publicación
  • Crear una publicación
  • Finalizar publiación automáticamente al agotar stock de entradas
  • No permitir modificar publicación que no está en borrador
  • No permitir pasar de activa a borrador, ni de finalizada a cualquier otro estado
  • Al modificar, no permitir setear una fecha anterior a la del dia de hoy (archivo de config)
  • Publiaciones batch
  • No podrá haber dos espectáculos iguales a la misma fecha/hora
  • Calcular peso de una publicación

que hacer en cada abm

cliente

  • alta
  • baja
  • modificacion
  • consulta de puntos

empresa

  • alta
  • baja
  • modificacion
    rubro
    -- nada 👍
    grado de publicacion
  • crearla
  • actualizarla (para setear prioridades)
  • nose si es necesario listar (pero esta)
  • dar de baja
    publicacion
  • dar de alta 1
  • dar de alta por lote
  • modificar
  • filtrar (para comprar--> por categoria/s descripción o rango de fecha)
    comprar
    -[ ] generar compra
    canje y adm de puntos
  • consulta de puntos del cliente
  • canje de puntos

listado estadístico

  • top 5 ( filtrado , ver en el enunciado nro 14)

generar rendición de comisiones

  • historial cliente

ABM Rol

  • - Funcionalidades -> LoginUtils.Funcionalidades.TraerTodas()
  • - Crear rol -> new Rol("nombre", listaFuncionalidades).persistite()
  • - Actualizar rol -> rol.Update()

ABM CLIENTE

  • DAR DE ALTA

  • DAR DE BAJA

  • MODIFICAR

  • FILTRAR

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.