96 lines
3.2 KiB
Markdown
96 lines
3.2 KiB
Markdown
# Proyecto HeatingEvent
|
|
|
|
Este proyecto gestiona eventos relacionados con el encendido y apagado de sistemas de calefacción, ofreciendo tres funcionalidades principales: una aplicación web, un bot de Telegram y un comando para importar datos desde un archivo CSV a la base de datos.
|
|
|
|
## Comandos disponibles
|
|
|
|
### 1. **Comando Web**
|
|
|
|
Este comando inicia un servidor web que permite visualizar los eventos de calefacción a través de una interfaz web.
|
|
|
|
#### Uso:
|
|
```bash
|
|
$ go run cmd/web/main.go
|
|
```
|
|
|
|
#### Opciones:
|
|
|
|
- WEB_PORT: Puerto en el que se ejecuta el servidor web. Puedes configurarlo en el archivo `.env`.
|
|
|
|
### 2. Comando Bot
|
|
Este comando inicia un bot de Telegram que permite interactuar con el sistema de calefacción a través de mensajes.
|
|
|
|
#### Uso:
|
|
```sh
|
|
$ go run cmd/bot/main.go
|
|
```
|
|
|
|
#### Opciones:
|
|
|
|
- TELEGRAM_TOKEN: Token de acceso del bot de Telegram.
|
|
- TELEGRAM_CHATID: ID del chat de Telegram donde el bot enviará los mensajes.
|
|
|
|
### 3. Comando Import
|
|
|
|
Este comando importa los datos de un archivo CSV (con formato específico) a la base de datos SQLite, creando eventos de encendido y apagado en función de la información proporcionada en el archivo.
|
|
|
|
#### Uso:
|
|
```
|
|
$ go run cmd/import/main.go -f /ruta/al/archivo.csv
|
|
-f, --file: Especifica la ruta del archivo CSV a importar.
|
|
--dry-run: Muestra los datos que se importarían sin hacer cambios en la base de datos
|
|
(útil para verificar la información antes de insertarla).
|
|
```
|
|
|
|
#### Configuración
|
|
|
|
1. Crear archivo .env
|
|
Copia el archivo .env.sample a .env y configura las variables de entorno necesarias:
|
|
```sh
|
|
$ cp .env.sample .env
|
|
```
|
|
Luego edita el archivo .env con los valores correspondientes:
|
|
```ini
|
|
# Telegram Bot Configuration
|
|
TELEGRAM_TOKEN=xxx:yyy
|
|
TELEGRAM_CHATID=123123123
|
|
# Web Server Configuration
|
|
WEB_PORT=9900
|
|
```
|
|
|
|
2. Base de Datos
|
|
El proyecto utiliza una base de datos SQLite para almacenar los eventos de calefacción. La configuración de la base de datos se gestiona automáticamente a través del código en el archivo `internal/config/db.go`. Asegúrate de que el archivo de la base de datos se encuentra en la ubicación correcta para que la conexión funcione correctamente.
|
|
|
|
### Dependencias
|
|
|
|
Este proyecto utiliza varias dependencias de Go. Asegúrate de tenerlas instaladas y configuradas correctamente:
|
|
|
|
```sh
|
|
$ go mod tidy
|
|
```
|
|
|
|
### Estructura del Proyecto
|
|
|
|
```sh
|
|
.
|
|
├── cmd
|
|
│ ├── web # Comando para la aplicación web
|
|
│ ├── bot # Comando para el bot de Telegram
|
|
│ └── import # Comando para importar CSV a la base de datos
|
|
├── internal
|
|
│ ├── config # Configuración de la base de datos y otros parámetros
|
|
│ └── model # Modelos y lógica de negocio
|
|
├── .env.sample # Archivo de ejemplo para configuración del entorno
|
|
└── README.md # Este archivo
|
|
```
|
|
|
|
### Contribución
|
|
|
|
Si deseas contribuir a este proyecto, por favor sigue estos pasos:
|
|
|
|
1. Haz un fork del proyecto.
|
|
2. Crea una nueva rama (git checkout -b feature-nueva-caracteristica).
|
|
3. Realiza tus cambios y haz commit de ellos (git commit -am 'Añadir nueva característica').
|
|
4. Haz push a la rama (git push origin feature-nueva-caracteristica).
|
|
5. Crea un pull request describiendo tus cambios.
|