- Motivación
- Descripción del proyecto
- Objetos de la aplicación
- API
- Registration flow
- Technologies
- Dependencies
- License
Actualmente estoy desarrollando un proyecto junto con unos compañeros para la automatización del proceso de fermentación y maduración de la cerveza. Una parte de este proyecto consiste en una aplicación web para gestionar todo. En este proyecto se pretende alcanzar las funcionalidades mínimas de está aplicación
Cada cliente tiene unos dispositivos físicos encargados de controlar temperatura y presión en los tanques de fermentación. Estos dispositivos se conectan a un servidor tanto para poder ser controlados y monitoreados remotamente, como para ir registrando métricas que luego se graficarán entre otras operaciones.
Este proyecto abarca el dashboard de cliente para administrar y monitorear los dispositivos. Y el dashboard para gestionar clientes y dispositivos.
En la aplicación de cliente se podrá visualizar dashboard de se mostrará todos los tanques con sus métricas y estado nn tiempo real. A parte habrá una serie de apartados para gestionar tanques, usuarios, dispositivos relacionados con el cliente en cuestión.
En la application de propietario se mostrará los apartados para gestionar clientes, dispositivos y usuarios.
Cada fabrica de cerveza que tiene comprados dispositivos
Cada una de las personas con acceso a la aplicación
Deposito de facilita las condiciones para que se produzca el proceso de fermentación. Cualquier usuario podrá agregar o eliminar tantos tanques como desee. Ademas de modificar sus propiedades
Artefactos encargados de controlar la temperatura y presión del tanque y que cuentan con una comunicación mqtt con el servidor. Los administradores pueden añadir, eliminar o modificar dispositivos. A cada usuario le aparecerán los dispositivos asociados y los podrás asociar a sus tanques.
- Client
- name: String
- address: String
- city: String
- state: String
- zip: String
- country: String
- id: String
- country: String
- img: String
- User
- user_id: String
- name: String,
- client_id: String
- state: String ['pending', 'confirmed', 'deny']
- role: String ['super_admin', 'admin', 'prod']
- Tank
- alias: String
- description: String
- client_id: ObjectId('Client')
- Device
- name: String
- type: String,
- version: String,
- sw_v: String,
- client_id: ObjectId('Client')
- DeviceTank
- device_id: ObjectId('Device')
- tank_id: ObjectId('Tank')
- client_id: ObjectId('Client')
-
CRUD
ClientsGET /clients: Lista de clientesGET /clients/:id: Detalle de un clientesPOST /clients: Crea un clientesPOST /clients/:idActualiza un clientesDELETE /clients/:idElimina un clientes
-
Users
GET /users: Lista usuariosGET /users/:id: Detalle de un usuarioPOST /users: Crea un usuarioPOST /users/:idActualiza un usuarioDELETE /users/:idElimina un usuario
-
CRUD
TanksGET /tanks: Lista de tanquesGET /tanks/:id: Detalle de un tanquePOST /tanks: Crea un tanquePOST /tanks/:idActualiza un tanqueDELETE /tanks/:idElimina un tanque
-
CRUD
DevicesGET /device: Lista de dispositivosGET /device/:id: Detalle de un dispositivosPOST /device: Crea un dispositivosPOST /device/:idActualiza un dispositivosDELETE /device/:idElimina un dispositivos
-
CRUD
DeviceTankGET /device-tankGet link between a device and a tankPUT /device-tankCreate link between a device and a tankDELETE /device-tankDelete link between a device and a tank
sequenceDiagram
CLIENT ->> TBB : Contracts
TBB ->> TBB_APP: Creates Client
CLIENT ->> TBB_APP: Registers with client id
TBB ->> CLIENT: Confirms client user
USER ->> TBB_APP: Registers with client id
CLIENT ->> TBB_APP: Confirms user
- Auth0
- MongoDB
- Typescript
-
Typescript (v4.5.5)
-
Eslint: (v8.9.0)
-
fastify: (v3.27.2)
-
fastify-auth0-verify: (v0.7.0)
-
fastify-cors: (v6.0.3)
-
fastify-plugin: (v3.0.1)
-
fastify-formbody: (v5.2.0)
-
pino: (v7.8.0)
-
pino-pretty: (v7.5.1)
-
dotenv: (v16.0.0)
-
mongoose: (v6.2.2)
-
axios: (v0.26.0)
-
classnames: (v2.3.1)
-
lodash: (v4.17.21)
-
next: (v12.1.0)
-
react: (v17.0.2)
-
react-dom: (v17.0.2)
-
react-hook-form: (v7.27.1)
-
react-icons: (v4.3.1)
-
react-sweet-state: (v2.5.2)
-
styled-components: (v5.3.3)
GNU General Public License Version 3
