La aplicacion construida es una market place, donde se pueden comprar y vender productos entre los usuarios registrados a la aplicación.
Esta API RESTful esta compuesta por 4 modelos(usuario, producto, orden y placement).
Los usuarios que pueden autenticarse mediante su propio email y password, para la seguridad del password se uso bcrypt y JSON Web Tokens (JWT). Lo cual, un usuario puede crear su propia lista de productos que pueden ser mostrados a otros usuarios o no y el producto a crear tiene un titulo y precio. Tambien, para poder comprar se necesita un modelo llamado ordenes, donde ahi se va a guardar el precio final o total de los productos, que estaria vinculado con en modelo de los productos. Por último, tendrá un modelo llamado placement que unirá ordenes y productos, ya que son mucho a muchos entre ambos, que se guardaria ahi la cantidad por cada producto.
- Ruby -v "2.7.0"
- Ruby On Rails -v "6.1.4"
- Sqlite3
- Bcrypt
- JWT
- Faker
- Fast_jsonapi
- Kaminari
- Rack-Cors
- Tienes que configurar la versión de ruby a 2.7.0, utilizando un manejador de versiones como rvm o rbenv. Luego, instalar la version de rails "6.1.4".
- Luego tienes que clonar el repositorio y luego dentro de la aplicación, poner en la terminal
bundle install
para instalar las gemas. - Se tiene que correr las migraciones para que se cree la base de datos con el siguiente comando en la terminal
rails db:migrate
- Para hacer funcionar la aplicación tienes que usar el comando
rails server
- Por último para visualizar la construccion de la api, se puede usar la aplicacion Postman.
- Con esta url (
http://localhost:3000/api/v1/products
) y el metodoGET
, puedes visualizar todos los productos disponibles de todos los usuarios - Con esta url (
http://localhost:3000/api/v1/users
) y el metodoPOST
y poner alguna credenciale en (email y password) puedes crear un usuario en la aplicación. - Con esta url (
http://localhost:3000/api/v1/tokens
) y el metodoPOST
y ponder las credenciales usadas en el punto 2, puedes obtener tu token para usar la aplicacion.