Introducción

La aplicación que vamos a realizar es la siguiente: nosotros realizamos una pantalla en la cuál vamos a meteremos nuestros 16 dígitos de nuestra tarjeta y nos devolverá el saldo o los movimentos que realizamos con la tarjeta.

Requisitos

UML

spring project

Base de datos

Crearemos una base de datos con dos tablas una para el saldo y otra para movimientos, los insert necesarios para echar a andar nuestra aplicación.
  CREATE DATABASE  IF NOT EXISTS `onlinebalancedb` DEFAULT CHARACTER SET utf8 ;
USE `onlinebalancedb`;
  
  
  
  CREATE TABLE `movimiento` (
  `idMovimiento` int(16) NOT NULL AUTO_INCREMENT,
  `idTarjeta` bigint(16) NOT NULL,
  `movimiento` varchar(450) NOT NULL,
  `cantidad` double NOT NULL,
  PRIMARY KEY (`idMovimiento`)
) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;
  
  INSERT INTO `movimiento` VALUES (1,1234567890123456,'Abono tarjeta',25000),
  (2,1234567890123456,'Compra en osso',100.5),
  (3,1234567890123456,'Pago gasolina pemez',300),
  (4,1234567890123456,'Compra de boleto ticket monster',15000),
  (5,1234567890123456,'Retiro de cajero',5000),
  (6,1234123456785678,'Abono tarjeta',21000),
  (7,1234123456785678,'Compra comercial valle dorado',5500),
  (8,1234123456785678,'Abono tarjeta',10000),
  (9,1111222233334444,'Abono tarjeta',40000),
  (10,1111222233334444,'retiro cajero',5000),
  (11,1111222233334444,'retiro tarjeta',3000);
  
  CREATE TABLE `saldo` (
  `IDTARJETA` bigint(16) NOT NULL,
  `SALDO` double DEFAULT NULL,
  PRIMARY KEY (`IDTARJETA`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  
  INSERT INTO `saldo` VALUES (1234567890123456,19199.5),
  (1234123456785678,29500),
  (1111222233334444,32000);
  
  

La creación de proyecto

La instalación que yo voy a utlizar es para windows 8 de 32 bits.Abrimos un simbolo del sistema y ejecutamos el siguiente comando composer create-project --prefer-dist laravel/laravel onlinebalance "5.5.*"
rest project
En la imagen vemos que ya se instalo.
rest project
para probar que ya se instalo probamos el siguiente comando cd onlinebalance y luego php artisan serve
rest project
Abrimos nuestro browser para ver que esta funcionanado http://localhost:8000/
rest project
Abrimos nuestro eclipse y selecionamos File->New->PHP Project
rest project
En Project name: nombramos el proyecto como onlinebalance
En Contents seleccionamos Create project existing location (from existing source)
En Directory: colocamos la dirección donde instalamos laravel
Presionamos Finish
rest project

Conectar a la base de datos

Yo por ejemplo tengo instalada eclipse mars y no se ve el archivo .env nos vamos PHP Explorer y selecionamos View Menu selecionamos Filters...
rest project
Deseleccionamos .*resources y presionamos ok
rest project
y vemos que aparece nuestro archivo .env
rest project
En el archivo .env escribimos los siguientes datos para conectarnos a la base de datos:
 
 APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:BVuN7fY5ZydcsR+9LA16JysHwrQtEKpFZDZe6aAgKcA=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost
  
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=onlinebalancedb
DB_USERNAME=admin
DB_PASSWORD=adminlara

BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
SESSION_LIFETIME=120
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
 
 
 

Creamos nuestro primer modelo y migración nos vamos a la línea de comando y ejecutamos
php artisan make:model Movimiento -m
rest project
Nos vamos al directorio database/migrations/create_movimientos_table.php y dejamos el arhivo de la siguiente manera:
  <?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateMovimientosTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('movimientos', function (Blueprint $table) {
            $table->increments('idMovimiento');
            $table->bigInteger('idTarjeta');
            $table->string('movimiento');
            $table->double('cantidad');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('movimientos');
    }
}
  
  
  

Con el comando que viene abajo creamos la clase seeder
php artisan make:seeder MovimientosTableSeeder
rest project
En database/seeds/MovimientosTableSeeder.php Escribimos lo siguiente:
  <?php

use Illuminate\Database\Seeder;

class MovimientosTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        //
        factory(App\Movimiento::class,50)->create();
    }
}
  
   

En database/seeds/DatabaseSeeder.php escribimos lo siguiente:
  <?php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        // $this->call(UsersTableSeeder::class);
    	$this->call(MovimientosTableSeeder::class);
    }
}