Git Product home page Git Product logo

mercatodo's Introduction

Acerca de mercatodo

Mercatodo es un ecommerce de un proyecto personal en el cual estoy implementando las herramientras de Laravel para la administracón de:

  • Gestión de productos, categorias y sus tags.
  • Administración de usuarios con sus roles y permisos..
  • Carrito de compras con impuestos respectivos.
  • Gestión de ordenes para los clientes.
  • Generación de reportes en gráficos y exportación en Excel.
  • REST-ful API para administración de productos y categorias y su atentificación con Tokens.
  • Importación y exportación de productos por Excel.

En el cual se usa una de las mejores pasarelas de pago Evertec para procesarlos.

Requerimientos

  • PHP 7.4+ required
  • MYSQL 5.7+ required

Instalación

  • Clone el repositorio git clone https://github.com/JhonathanAlfonso/mercatodo.git.
  • Use el gestor de paquetes composer.
  • Use npm para instalar las dependecias del proyecto.
  • Si quiere acceder al todo el historial del desarrollo use el comando.
$ git fetch --all
  • Ejecute los siguiente comandos:
$ cd mercatodo
$ composer install 
$ npm install 

Ambiente

  • Recomendamos el uso de Laravel Valet, se listas las opciones para correr en cada OS:

Laravel Valet - Windows Subsystem Linux
Laravel Valet - Ubuntu
Laravel Valet - iOS

Configuración

Copié el archivo .env.example en .env y agregue cada variables de entornos.

$ .env.example .env
  • Variables de entorno:
    DB_USERNAME Usuario base de datos.
    DB_PASSWORD Password base de datos.
    MAIL_USERNAME Usuario Mailtrap para pruebas.
    MAIL_PASSWORD Password Mailtrap para pruebas.
    MAIL_FROM_ADDRESS Correo del sistema.
    ALGOLIA_APP_ID Id de motor de Algolia.
    ALGOLIA_SECRET Key de Algolia.
    PLACE_TO_PAY_LOGIN Login de PlaceToPay.
    PLACE_TO_PAY_SECRETKEY Secret Key de PlaceToPay.

  • Dentro de Algolia configurar los atributos de busqueda con este nivel de importancia: name, branch, description.

  • Corra el siguiente script.

$ php artisan key:generate
$ php artisan migrate --seed
$ php artisan storage:link
  • Para activar los trabajos encolados, correr:
$ php artisan queue:work

API REST-ful

  • La API REST-ful implementa la especificación json-api.
  • Gestione los productos a través de la API REST-ful. Capacidades: gestión de productos (creación, actualización, eliminación), listado de categorias.

Autentificación de la API

  • La autentificación esta definida a través de Bearer token, para su generación:
   let data = {
     email: '[email protected]',
     password: '123123'
   }
   axios.post('http://localhost/auth', data, {
   }).then(res => {
     console.log(res.data)
   }).catch(err => {
     console.log(err.message)
   })
  • Para el consumo de los servicios usar en todas las consultas el token_api obtenido.
  • La ruta base para las consultas es http://localhost/admin/api/v1
   let data = {
     param1: 'param1',
     param2: 'param2'
   }
   axios.get('http://localhost/admin/api/v1/products', data, {
     headers: {
       Authorization: 'Bearer ' + token_api
     }
     }).then(res => {
     console.log(res.data)
   }).catch(err => {
     console.log(err.message)
   })
  • Ejemplo de respuesta json con especificación json-api.
    {
    "data": {
        "type": "products",
        "id": "1",
        "attributes": {
            "name": "Narciso",
            "ean": "17272977",
            "branch": "Hilpert",
            "price": "12000",
            "description": "Distinctio nostrum minus velit iusto reprehenderit. Ratione vero tempora hic consequatur et. Ut sed doloremque repudiandae et cum. Adipisci consectetur repellat sed sint.",
            "category_id": 2,
            "created-at": "2020-12-08T21:44:31-05:00",
            "updated-at": "2020-12-10T21:33:29-05:00"
        },
        "relationships": {
            "categories": {
                "links": {
                    "self": "http://mercatodo.test/api/v1/products/1/relationships/categories",
                    "related": "http://mercatodo.test/api/v1/products/1/categories"
                }
            }
        },
        "links": {
            "self": "http://mercatodo.test/api/v1/products/1"
        }
    }
}

Contribuciones

Puedes hacer tus contribuciones mediantes pull request. Para cambios importantes primero crear un ISSUE.

Asegurate de actualizar los test apropiadamente.

License

Mercatodo es un proyecto bajo la licencia MIT license.

mercatodo's People

Contributors

jhonathansalazar avatar jhonathanalfonso-sb avatar

Watchers

 avatar

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.