Este documento describe os requirimentos para XSR especificando que funcionalidade ofrecerá e de que xeito.
XSR é un software, orientado a pequenos talleres de reparación, que axuda a manter certo control sobre a organización do inventario, reparacións para clientes e pezas.
A parte central da aplicación será o servidor, que leva asociada unha base de datos e garda toda a información necesaria.
O servidor cominícase cos clientes mediante una API, e os usuarios só interactúan cos clientes.
Por defecto, toda mensaxe que o cliente envíe o servidor debe ir firmado mediante clave asimétrica, de forma que só os clientes autorizados poidan operar.
Estas son as operacións que poden realizar os usuarios dende o cliente.
- Rexistrar, editar e eliminar clientes:
- nome, tlf, email, notas
- Rexistrar, editar e eliminar pezas:
- Codigo, proveedor, nome, foto, numero, precio, notas
- Rexistrar, editar e eliminar reparacións:
- Data ini, data fin, horas, completada(VF), causa, solución, cliente, pezas, notas
- Asociar pedidos de clientes e pezas
- Peza, Cliente, estado
Estos son parámetros de configuración xeral. Modifícanse mediante un arquivo de configuración no servidor. É necesario reiniciar para aplicar os cambios.
- Servidor, nome, porto, usuairo e contrasinal da base de datos
- Nivel de log
- Activar ou desactivar a autentificación de clientes
- Engadir ou eliminar claves públicas dos clientes autorizados
- Engadir e eliminar roles.
Por defecto existen 2 roles con estes permisos, pero será posible crear outros mediante a configuración.
{+, %, -} => {engadir, modificar, eliminar}
Rol | clientes | pezas | reparacións | pedidos |
---|---|---|---|---|
xerente | +%- | +%- | +%- | +%- |
currante | + | +%- | +% | +- |
A continuación detállanse os requerimentos non funcionais máis importantes.
- O servidor non realizará ningunha operación que non proveña dun cliente autentificado e autorizado
- O servidor escribirá un log con todas as operación realizadas, incluídas data e cliente.
- Os datos de clientes nunca serán accesibles de forma pública.
- Toda comunicación cos clientes debe ir sobre SSL.
- A base de datos debe estár cifrada.
- O software respetará as 4 liberdades do software libre
- O software debe cumplir todos os requisitos marcados pola LOPD e o RXPD
- Segundo a licencia da dependencia json.org, o software usaráse para o Ben, non o Mal.
A continuación están especificados os requerimentos de hardware se software para o servidor.
O servidor está implementado sobre Docker, polo que calquera plataforma soportada por éste será adecuada, pero só Linux conta con soporte oficial.
O software do servidor estará aloxado nun servidor con conexión de rede. Os requisitos mínimos de hardware son os mínimos para executar Docker Engine. Na práctica son moi baixos, sendo posible instalalo incluso nunha Raspberry Pi.
- O servidor comunícase mediante os clientes a través de peticións POST.
- Os clientes envían toda a información necesaria para a operación con cada petición en forma de JSON.
- O servidor envía as respostas usando os códigos HTTP 200 e 201. O 200 pode incluír datos en formato JSON.
A continuación detállanse algunhas posibles ideas para mellorar XSR.
- Mellorar a seguridade
- Mellorar a eficiencia
- Aumentar o número de operacions posibles
- Implementación de diversos clientes
- Mellorar a escalabilidade optimizando a aplicación para Kubernetes ou Swarm