Recibimos los datos provenientes de los canair.ios
Si tiene interés en analizar información proveniente de la red ciudadana de calidad del aire, o ayudar en el desarrollo de nuestro backend, está en el lugar correcto.
Si desea conocer más del proyecto, por favor visite canair.io . En este repositorio encuentra información de como colaborar en el proyecto en la recepción y análisis de datos.
Este proyecto está basado en django-rest-framework y almacena los datos en influxdb, para correrlo localmente se requiere docker y docker-compose
- clone el repositorio
- ejecute docker-compose desde el interior del directorio que obtuvo al clonar el repositorio
en el directorio recien clonado en una terminal
docker-compose up
Esto le permitirá hacer peticiones desde su entorno de desarollo a localhost:8000
Para hacer una prueba local rápida puede crear un usuario, autenticarlo, crear un dispositivo y enviar una medición desde tal dispositivo.
Para ello abra una conexión a Docker con
docker-compose exec web bash
Y estando al interior, haga que el servidor web se ejecute
python manage.py runserver 0.0.0.0:8000
Create a user
curl --request POST \
--url http://localhost:8000/users/auth/register/ \
--header 'content-type: application/json' \
--data '{
"username": "user2",
"password": "hunter2"
}'
Con este usuario podemos proceder a crear un dispositivo
Enviaremos su dirección MAC, latitud, longitud y le asignaremos un nombre
curl --request POST \
--user user2:hunter2 \
--url http://localhost:8000/points/sensors/ \
--header 'content-type: application/json' \
--data '{
"mac": "D714E1KU605C",
"lat": "4.12345678",
"lon": "-74.12345678",
"name": "mysecondcanair"
}'
Que en caso exitoso responderá con los mismos datos enviados y el id.
{"id":1,"mac":"D714E1CC605C","lat":"4.12345678","lon":"-74.12345678","name":"myhomecanair"}
Tenemos más endpoints disponibles, y le invitamos a que vea el conjunto de pruebas para que inicie a hacer solicitudes al API para añadir mediciones o para obtener la medición más reciente.
Cada vez que haga cambios y los guarde en su entorno de desarrollo local estos se verán reflejados en la instancia que está ejecutando en docker.
Para correr las pruebas, ubíquese en el directorio clonado y ejecute:
docker-compose exec web bash
asegúrese que en otra terminal está ejecutando
docker-compose up
Y una vez en el shell, podrá ejercitar las pruebas
python manage.py test --settings=canairio.settings.testing
Tenga en cuenta que la información se almacena en la misma instancia de influxdb para pruebas y desarrollo, por lo tanto, si tiene un dispositivo que está enviando información a su instancia de influxdb en Docker, las pruebas podrían fallar bajo estas condiciones.
Por ahora el trabajo está en progreso, no hemos hecho un release oficial
El código está en inglés, tanto variables, nombres comentarios, comentarios de los commits.
- Haga un fork del proyecto (https://github.com/yourname/yourproject/fork)
- Cree una rama del mismo (
git checkout -b feature/fooBar
) - Haga los commits necesarios con mensajes que describan el cometido de los cambios (
git commit -am 'Add some fooBar'
) - Envíe los cambios a su rama (
git push origin feature/fooBar
) - Ejecute pruebas y asegure que estas continúan funcionando y que su código nuevo también es ejercitado
- Abra un pull request