GithubHelp home page GithubHelp logo

n5-transit-infractions-api's Introduction

Sistema de Registro de Infracciones de Tránsito

Esta aplicación está diseñada para gestionar registros de infracciones de tránsito. Incluye una interfaz administrativa para manejar registros de personas, vehículos y oficiales. Adicionalmente, proporciona APIs para que los oficiales de policía registren infracciones y para consultar infracciones asociadas al correo electrónico de una persona.

Requerimientos para la instalacion

Docker

Docker Compose

Instalacion

  git clone
  cd my-project

El proyecto ya tiene incluido un archivo .env de ejemplo, renombra de .env.template a .env

Si tienes docker corriendo, ejecuta el siguiente comando para inicializar el proyecto

  docker-compose up --build

Una vez inicializado el proyecto, necesitaras ejecutar las migraciones Flask para instalar los datos de ejemplo.

  docker-compose run web flask db upgrade

Acceder a administracion

Usando flask-admin. La aplicación web tiene disponible una interfaz administrativa para gestionar registros de personas, vehículos y oficiales. Para esta demostración, no user/password es necesario para acceder.

http://localhost:5050/admin

Sistema de Autenticación Basado en Tokens

Esta aplicación utiliza un sistema de autenticación basado en tokens para asegurar sus endpoints. El sistema de autenticación se basa en JSON Web Tokens (JWT) para verificar la identidad de los usuarios (oficiales). El badge_number de un oficial se utiliza como identidad dentro del token JWT. Este README explicará cómo funciona el sistema de tokens y cómo generar un nuevo token utilizando Flask-Admin.

Generación de un Nuevo Token desde Flask-Admin

Para generar un nuevo token desde Flask-Admin, sigue estos pasos:

  • Abre Flask-Admin y navega a la vista de oficiales.
  • Al crear o editar un oficial, el token JWT se generará automáticamente utilizando el badge_number del oficial.
  • Puedes ver en la lista de oficiales, los token de cada oficial necesarios para autenticación del API.

Referencias de API

Registrar una Infracción

  POST /api/cargar_infraccion
  Headers: Authorization: Bearer <token> (api_key del oficial)
  Body:
  {
    "license_plate": "placa_del_vehiculo",
    "timestamp": "marca_de_tiempo_de_la_infraccion",
    "comments": "comentarios_libres"
  }

Generar Informe de infracciones filtrado por correo electronico

No necesita Authorization

  GET /api/generar_informe
Parameter Type Description
email string Required. Email para filtrar infracciones

Ejecutar TestCases

Ejecutar el siguiente comando de docker-compose para ejecutar 2 TestCase incluidos en el proyecto

TestCase para /api/cargar_infraccion

  docker-compose run -e FLASK_ENV=testing web pytest tests/test_infractions.py

TestCase para /api/generar_informe

  docker-compose run -e FLASK_ENV=testing web pytest tests/test_reports.py

Ambos TestCases usan un entorno de pruebas con sqlite para los datos temporales.

n5-transit-infractions-api's People

Contributors

m3chas 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.