Este sitio permite consultar la ubicación geográfica de las gasolineras de México y precio de venta de gasolina por litro.
Descargar el repositorio de github.
$ git clone git@github.com:reynaldoeg/gas.git
Entrar a la raiz del directorio
$ cd gas
Instalar dependencias con Composer
$ composer install
Copiar archivo .env.example y cambiarle el nombre por .env y configurar opciones locales
$ cp .env.example .env
Generar "application key"
$ php artisan key:generate
El proyecto cuenta con una base de datos basada en la información proporcionada por Sepomex con los difrentes estados, municipios y códigos postales.
Se separó en distintas tablas para cumplir con el proceso de Normalización de Baese de Datos.
Tabla Estados
id | clave | clave3 | estado |
---|---|---|---|
1 | AG | AGU | Aguascalientes |
2 | BC | BCN | Baja California |
3 | BS | BCS | Baja California Sur |
Tabla Municipios
id | id_estado | municipio |
---|---|---|
272 | 9 | Azcapotzalco |
273 | 9 | Benito Juarez |
374 | 9 | Coyoacan |
Tabla de Códigos Postales
id | codigo | id_municipio | asentamiento |
---|---|---|---|
272 | 02000 | 272 | Centro de Azcapotzalco |
273 | 02010 | 272 | Los Reyes |
374 | 02020 | 272 | San Marcos |
Para poder generar estas tablas, se sigue el proceso de migraciones descrito en Laravel
Generar tabla de Migraciones
$ php artisan migrate:install
Correr Migraciones para generar las tablas del sistema
$ php artisan migrate
Seeds para llenar la información de las bases de datos
$ php artisan db:seed
Correr servidor local
$ php artisan serve
Laravel se podrá ejecutar en la siguiente dirección de manera local http://127.0.0.1:8000
El sistema se encuantra se encuentra funcional en la siguiente dirección http://ec2-54-185-117-154.us-west-2.compute.amazonaws.com/
El sistema cuenta con una API para poder consultar la información que proporciona el sistema.
La url base del api es:
http://ec2-54-185-117-154.us-west-2.compute.amazonaws.com/api/
Método | URI | Función |
---|---|---|
GET | /getstates | Regresa una lista de los estados de MX |
GET | /getmunicipality/{id_state} | Regresa una lista de los municipios del estado |
Ejemplo (getstates):
GET: http://ec2-54-185-117-154.us-west-2.compute.amazonaws.com/api/getstates
Regresa el siguiente JSON:
[
{
"clave": "AG",
"clave3": "AGU",
"estado": "Aguascalientes"
},
{
"clave": "BC",
"clave3": "BCN",
"estado": "Baja California"
},
{
"clave": "BS",
"clave3": "BCS",
"estado": "Baja California Sur"
},
...
]
Ejemplo (getmunicipality/{id_state}):
GET: http://ec2-54-185-117-154.us-west-2.compute.amazonaws.com/api/getmunicipality/9
Regresa el siguiente JSON:
[
{
"municipio": "Azcapotzalco",
"c_mnpio": "002"
},
{
"municipio": "Benito Juárez",
"c_mnpio": "014"
},
{
"municipio": "Coyoacán",
"c_mnpio": "003"
},
...
]
Método | URI | Función |
---|---|---|
GET | /getallgases | Regresa un listado de todas las gasolineras de MX |
GET | /getalllocations | Regresa un listado de todas las coordenadas geograficas de las gasolineras. (Utilizado para pintar el mapa general de ubicaciones) |
GET | /getgas/{place_id} | Regresa el detalle de la gasolinería indicada en id que se envía |
Ejemplo (getallgases):
GET: http://ec2-54-185-117-154.us-west-2.compute.amazonaws.com/api/getallgases
Regresa el siguiente JSON:
{
"success": true,
"results": [
{
"place_id": "2039",
"name": "ESTACION DE SERVICIO CALAFIA, S.A. DE C.V.",
"cre_id": "PL/658/EXP/ES/2015",
"longitud": "-116.9214",
"latitud": "32.47641"
},
{
"place_id": "2040",
"name": "DIGEPE, S.A. DE C.V. (07356)",
"cre_id": "PL/902/EXP/ES/2015",
"longitud": "-99.74484",
"latitud": "20.3037"
},
...
]
}
Ejemplo (getalllocations):
GET: http://ec2-54-185-117-154.us-west-2.compute.amazonaws.com/api/getalllocations
Regresa el siguiente JSON:
{
"success": true,
"results": [
{
"title": "2039",
"loc": {
"lng": -116.9214,
"lat": 32.47641
}
},
{
"title": "2040",
"loc": {
"lng": -99.74484,
"lat": 20.3037
}
},
...
]
}
Ejemplo (getgas/{place_id}):
GET: http://ec2-54-185-117-154.us-west-2.compute.amazonaws.com/api/getgas/6684
Regresa el siguiente JSON:
{
"success": true,
"results": [
{
"place_id": "6684",
"name": "SERVICIO ORIENTAL, S.A. DE C.V. ",
"cre_id": "PL/4092/EXP/ES/2015",
"longitud": "-99.07299",
"latitud": "19.39704",
"regular": "18.99",
"premium": "19.49"
}
]
}
El la barra de navegación cuenta con un cuadro para buscar por el ID de la gasolinera, al presionar el botón de búsqueda, apareceran los precios de la gasolina, los datos de la estación y la ubicación en el mapa.
En la parte de abajo, aparece un mapa de todas las gasolineras en el país, al dar un clic en el icono de agrupación, se ira acercando la zona y al colocar el puntero sobre el pin de ubicación, aparecera el ID de la gasolinería.