Giter Site home page Giter Site logo

tiendace's Introduction

Tienda online para la PRAC 1 de Comercio Electrónico

License: GPL v3 PHP Composer

Esta es una práctica para la asignatura "Comercion Electrónico" de la UOC, de Septiembre de 2020. Su finalidad es entender el proceso de compra de una tienda online y en ningún caso está pensada para su uso en un entorno de producción.

Personalmente he aprovechado esta práctica para la exploración de Lumen en el backend, que nunca había usado antes y su interacción con Vue en el frontend mediante tokens JWT, esta implementación puede no ser perfecta y los comentarios para mejorarla son bien recibidos.

Frameworks utilizados

Lumen, un framework ligero de PHP para el backend

Vue.js, un framework JS para el frontend

Bootstrap-vue, el conocido framework CSS BootStrap adaptado con componentes de Vue para el layout y el diseño

Instalacion

Por requisito de la práctica se ha utilizado XAMPP, que incluye el servidor Apache, PHP y MariaDB listos para usar

Instalación recomendada : Docker

El proyecto incluye un archivo Dockerfile que monta la app , solo hay que copiar el archivo .env.example como .env y ejecutar

docker-compose up -d

o si se quiere desplegar por ejemplo el backend de la api en varios nodos (funciona igual, no hay que hacer ningún cambio)

docker-compose up --scale nginx=4 -d

y después

docker exec -it tiendace-app php artisan jwt:secret

para generar los tokens.

La aplicación estará disponible en el puerto 80 (nginx) o 8001 (apache)

Instalación manual

Cambiar en el fichero .env los valores

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=tienda
DB_USERNAME=tienda
DB_PASSWORD=abc123.

a los valores adecuados para la base de datos de MariaDB que hayamos creado para el proyecto

En el directorio database/migrations se define el modelo de la base de datos en el ORM Eloquent , para que ejecute las consultas de creación de la BD hay que ejecutar el comandos

php artisan migrate:fresh

y para llenar la base de datos con datos generados aleatoriamente (la definición está en database\factories y database\seeders)

php artisan db:seed

Para generar una clave aleatoria para los tokens JWT

php artisan jwt:secret

Para generar el frontend hay que entrar en el directorio frontend y ejecutar

npm run-script build

aunque se incluye una versión ya actualizada con el código, si se realiza cualquier cambio hay que volver a hacer el build, tras el cual un script copiará los archivos de vue frontend/dist en las rutas adecuadas de Lumen.

Copyright

Este proyecto está licenciado con la GPL v3, se incluye una copia en el archivo LICENCE.md

tiendace's People

Contributors

avantasia avatar imgbotapp avatar

Watchers

James Cloos avatar  avatar  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.