Skip to content

agosrubbini/TTPS-Ruby

Repository files navigation

README

Proyecto TTPS - Ruby

El proyecto se basa en una aplicación de gestión de inventario de indumentaria. La aplicación permite al personal de la cadena administrar el stock de productos, realizar ventas y tener una página pública (storefront) que permite a los clientes ver los productos que la tienda tiene en stock.

Requerimientos

  • Ruby 3.3.6
  • Rails 8.0.0
  • Database: SQLite3

Instalación del proyecto

Clonar el repo

$ git clone https://github.com/agosrubbini/TTPS-Ruby.git

Instalar dependencias

$ bundle install

Preparar la base de datos

$ rails db:reset

Ejecución de la aplicación

$ rails server

Ejecucion del seeds.rb:

$ rails db:seed

Decisiones de diseño:

Gemas:

  • Rolify para manejar los tres roles (admin, manager, employee).
  • CanCanCan para manejar las autorizaciones que tiene cada rol.
  • Devise para implementar el inicio y cierre de session.
  • ActiveStorage para el almacenamiento de las imagenes de los productos.
  • Ransack para implementar la busqueda de productos por nombre y el filtrado por categoria.
  • Kaminari para implementar la paginacion de tablas y del storefront.

Tablas:

  • products: para modelar los productos. Los atributos color, size son de tipo string, y tiene una relacion con la tabla categories a traves del atributo category_id, el cual solo toma un valor, por lo tanto un producto puede tener una unica categoria

  • sails: para modelar las ventas. Se relaciona con el usuario que creo la venta a traves de user_id. El campo client_dni hace referencia al DNI del cliente que se registra en la compra. El atributo is_deleted es booleano y sirve para cancelar la compra, lo que devuelve el stock al producto.

  • products_sails: es la tabla intermedia que conecta la relacion muchos a muchos entre products y sails, se relaciona con ambas tablas a traves de product_id y sail_id. El campo amount_sold es la cantidad vendida del producto y total_amount el precio total del producto para la cantidad determinada.

  • categories: representa las categorias a las que pueden pertenecer los productos. Su contenido esta cargado previamente en la base de datos.

Seeds

Se pre-cargaron datos para que sea facil el uso de la aplicacion.

Usuario administrador:

Usuario Empleado:

About

Proyecto individual utilizando el lenguaje Ruby y el framework Ruby on Rails

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published