Skip to content

Commit c9b6806

Browse files
author
Krypteria
committed
2 parents 5896feb + 5d1885f commit c9b6806

File tree

1 file changed

+63
-29
lines changed

1 file changed

+63
-29
lines changed

README.md

Lines changed: 63 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,86 @@
1-
# Local file distribution system
1+
# LFDS: Local File Distribution System
22

3-
Aplicación client-servidor fundamentada en programación socket que permite la distribución de cualquier tipo de fichero o directorio a cualquier ordenador de la red local.
3+
LFDS es una aplicación que permite tanto recibir como enviar cualquier tipo de archivo (audio, imagen, texto, estructuras complejas de directos...) a cualquier equipo o equipos pertenecientes a la red interna con capacidad para manejar más de 50 transferencias en paralelo.
44

5+
![main](https://user-images.githubusercontent.com/55555187/128637751-324cd9a5-fd59-49d1-8f5d-7f9b61439b01.png)
56

67
## Como descargarlo y ejecutarlo
78
1. Descargar la última versión de ejecutable (*Local File Distribution System-x.x.exe*) en la pestaña de release.
89
2. Lanzar el ejecutable para instalar la aplicación.
910

1011
La aplicación es instalada en la ruta *C:\Program Files\Local File Distribution System* y crea automáticamente un <b>acceso directo en el menú Windows y en el escritorio.</b>
12+
## Motivación
13+
La idea de crear esta aplicación surge de la necesidad de enviar de forma concurrente ficheros de gran tamaño a varios equipos pertenecientes a la red interna. <br>
1114

15+
Con esta aplicación <b>se busca ofrecer una alternativa al uso de dispositivos USB, el uso del correo electrónico, de google drive, de dropbox o incluso de recursos compartidos para transferir archivos desde un equipo a otro.</b> <br>
16+
También se pretende facilitar el envío de archivos problemáticos como por ejemplo ejecutables, código ...
1217
## Funcionalidades
18+
Las funcionalidades de la aplicación están presentadas al usuario en cuatro paneles, cada panel encapsula una funcionalidad concreta. <br>
19+
Esta separación está diseñada para favorecer un uso intuitivo y sencillo.<br>
20+
1321
### Panel de hosts
14-
Panel que permite la interación con la lista de contactos que maneja la aplicación de diferentes formas:
22+
La aplicación permite almacenar contactos, cada <b>contacto</b> está conformado por una <b>dirección IP</b> y un <b>nombre</b>, dichos contactos se muestran al usuario en este panel y permiten efectuar una serie de acciones. <br>
23+
24+
![host1](https://user-images.githubusercontent.com/55555187/128637800-68089ae0-00fb-4a91-ba37-64a9764592df.png)
1525

16-
1.Podemos añadir un host a nuestra lista de contactos proporcionando un nombre y una dirección IP. <br>
17-
2.Podemos editar la información relativa a un host existente (su direción nombre o direción IP). <br>
18-
3.Podemos eliminar un host de la lista de contactos. <br>
19-
4.Podemos asignar un host o un conjunto de hosts como destinatario de una transferencia. <br>
26+
#### Crear un nuevo contacto
27+
![host2](https://user-images.githubusercontent.com/55555187/128638512-62caf9e4-6397-4535-ad8d-a1ccc5464964.png)<br>
28+
A través de ese botón podemos crear un nuevo contacto introduciendo un nombre y una IP válida.
29+
#### Modificar información de un contacto existente
30+
![host3](https://user-images.githubusercontent.com/55555187/128638475-4ee985c1-e492-4112-a2dd-fb538b66c604.png)<br>
31+
Podemos modificar la información relativa a un contacto de manera fácil y así evitar tener que eliminarlo e introducirlo de nuevo en el sistema.
32+
#### Eliminar un contacto de la lista
33+
![host4](https://user-images.githubusercontent.com/55555187/128638476-43a2d5e2-40e1-492e-bb31-b83c15a45c24.png)<br>
34+
Podemos eliminar un contacto de la lista de forma cómoda y rápida.
35+
#### Asignar receptores
36+
![host5](https://user-images.githubusercontent.com/55555187/128638474-e3e47270-9494-4fe0-9c5c-09cc831947b8.png)<br>
37+
Utilizando el checkbox *send* podemos asignar que contactos queremos que sean los receptores de una futura transferencia.<br>
38+
Una vez que se selecciona un contacto y se asigna como receptor, se bloquean las opciones de editar y eliminar dicho contacto hasta que hemos realizado la transferencia o hemos deseleccionado dicho contacto.
2039

2140
### Panel de ficheros
22-
Desde este panel podemos:
23-
1. Seleccionar el fichero o directorio que queramos enviar.
24-
2. Visualizar la lista de destinatarios de la transferencia.
25-
3. Iniciar la transferencia a través del botón del panel inferior.
41+
Desde este panel podemos elegir el fichero que queramos enviar, visualizar los receptores seleccionados y lanzar la transferencia. <br>
42+
43+
![filemanagment](https://user-images.githubusercontent.com/55555187/128638079-46d4391a-55c4-48f3-845f-9917b775df1c.png)
44+
45+
#### Características del manejo de ficheros
46+
- La aplicación es capaz de enviar estructuras complejas de directorios.
47+
- La aplicación es capaz de enviar cualquier tipo de archivo (audio, imagen, texto, ejecutables ...).
48+
- La aplicación es capaz de enviar archivos de cualquier peso, no hay limitaciones al respecto.
2649

2750
### Panel de transferencias
28-
Desde este panel podemos observar el estado de las transferencias.
29-
Esta aplicación permite hasta un total de 50 transferencias en paralelo
30-
Para cada transferencia veremos su tipo (si estamos enviando nosotros o recibiendo) su dirección origen, su dirección destino, el nombre del archivo que estemos recibiendo y el progreso
51+
Desde este panel podemos observar el estado en el que se encuentran las transferencias en proceso, cada transferencia cuenta con la siguiente información:
52+
- Tipo de transferencia (entrante o saliente).
53+
- Receptor o emisor de la transferencia (dependiendo del tipo de esta)
54+
- Nombre del fichero enviado en la transferencia.
55+
- Progreso de la transferencia en tiempo real.
56+
57+
![transference1](https://user-images.githubusercontent.com/55555187/128638080-65f25c5b-1eaa-4cd5-ac38-50556d697c89.png)
58+
59+
#### Características del manejo de transferencias
60+
- La aplicación permite el envío concurrente de transferencias.
61+
- La aplicación no permite que se realizen dos envíos al mismo host de forma concurrente debido al diseño de esta, para enviar otro archivo se tendrá que esperar a que termine la primera transferencia.
62+
- La aplicación puede recibir hasta 50 transferencias entrantes en paralelo.
3163

3264
### Panel del servidor
33-
El panel del servidor cuenta con los siguientes modulos:
34-
primer modulo: muestra información relativa al estado del servidor (cerrado o abierto) y al puerto en uso
35-
Segundo módulo: muestra las tareas que está ejecutando el servidor (recibiendo transferencias, en espera, rechazando transferencias)
36-
Tercer módulo: contiene todos los controles relativos al servidor:
37-
#### Controler del servidor
65+
En este panel podemos visualizar información relativa al estado y el funcionamiento del servidor así como interactuar con la aplicación a través de una serie de botones. <br>
66+
67+
![server1](https://user-images.githubusercontent.com/55555187/128638102-b3c39d16-b1f7-41ef-be44-75f9a0bcd2e8.png)
3868

39-
#### Controles extra
69+
#### Estado del servidor
4070

41-
## Detalles de implementación
71+
![server2](https://user-images.githubusercontent.com/55555187/128638307-ac846beb-3344-4934-8ccd-d42d8af98966.png)
4272

73+
Desde este panel podemos visualizar el estado del servidor:
74+
- Podemos visualizar si el servidor se encuentra operativo o no.
75+
- Podemos visualizar el puerto en el que está trabajando el servidor.
76+
- Podemos visualizar la tarea que está realizando (recibiendo transferencias, en espera, cerrado y rechazando transferencias).
77+
#### Controles relativos al servidor
4378

44-
- Funcionalidades
45-
- Host -> añadir, editar eliminar un host, seleccionar varios hosts para envios multiples ->
46-
- File managment -> muestra las personas que van a recibir el archivo, permite seleccionar un archivo indicando que archivo está cargado actualmente, boton que inicia la transferencia
47-
- transference panel -> Muestra de forma clara e intuitiva el estado de las transferences mostrando información relevante como la source, dst, nombre del archivo y porcentaje de transferencia
48-
- Server panel -> muestra información relativa al estado del servidor (estado, puerto en uso, tareas actuales) también cuenta con una serie de opciones para su manejo (open,close,reset)
49-
adicionalmente cuenta con boton ip, address
79+
![server3](https://user-images.githubusercontent.com/55555187/128638297-4ca88e3c-8360-454e-a4e8-57a611472efc.png)
5080

51-
Aplicación
52-
Aplicación cliente servidor fundamentada en programación socket,
81+
Desde este panel también podemos lanzar comandos relativos al funcionamiento del servidor:
82+
- Podemos abrir el servidor (si este previamente está cerrado).
83+
- Podemos reiniciar el servidor (si este previamente está abierto).
84+
- Podemos cerrar el servidor (si este previamente está abierto).
85+
- Podemos modificar la ruta en la que queremos que se ubiquen los archivos que recibamos mediante transferencias.
86+
- Podemos visualizar la IP local del equipo para facilitar el intercambio de contactos entre equipos.

0 commit comments

Comments
 (0)