https://github.com/gabrielduete/sase
Sistema de atendimento por senha eletrônica utilizando comunicação de dados entre front e back através do socket.io
https://github.com/gabrielduete/sase
javascript react react-router reactjs socket socket-io socket-programming socketio
Last synced: about 2 months ago
JSON representation
Sistema de atendimento por senha eletrônica utilizando comunicação de dados entre front e back através do socket.io
- Host: GitHub
- URL: https://github.com/gabrielduete/sase
- Owner: gabrielduete
- License: mit
- Created: 2022-05-24T01:14:30.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2022-06-22T00:34:31.000Z (almost 4 years ago)
- Last Synced: 2026-04-08T03:41:48.809Z (2 months ago)
- Topics: javascript, react, react-router, reactjs, socket, socket-io, socket-programming, socketio
- Language: JavaScript
- Homepage:
- Size: 525 KB
- Stars: 6
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SISTEMA DE ATENDIMENTO POR SENHA ELETRÔNICA
# Sobre
Projeto final da disciplina de Sistemas Distribuídos ministrada por Guilherme Esmeraldo.
### Objetivo
Um Sistema de Atendimento por Senha Eletrônica (SASE) consiste de uma solução de
software distribuído, o qual gera automaticamente senhas eletrônicas visando aumento de
qualidade no atendimento ao público, através o gerenciamento e aumento de eficiência de
filas de pessoas em áreas de atendimento.
Comumente, um SASE inclui os seguintes elementos básicos:
1. Senha Eletrônica de Atendimento (SEA): identificação disponibilizada ao
público e utilizada para ordenar os atendimentos;
2. Terminal de Senhas (TS): dispositivo utilizado pelo público para geração de
senhas;
3. Terminal de Atendimento (TA): local onde serão atendidas as pessoas que
receberam uma senha, gerada previamente no TS;
4. Terminal de Visualização (TV): dispositivo que mostrará, em tempo real, as
senhas e os respectivos TAs, em atendimento;
5. Servidor (SRV): computador que guardará informações sobre as senhas geradas,
senhas que estão em atendimento ou aquelas que já foram atendidas.
### Especificação
Este projeto é um exercício prático que tem como objetivo solidificar os conhecimentos
teóricos vistos em sala de aula baseando-se em uma vivência no desenvolvimento de
aplicações distribuídas.
O exercício consiste no projeto e implementação de um SASE, objetivando
estabelecer o fluxo de atendimento completo do sistema proposto.
### Programação da solução
O SASE a ser desenvolvido deverá atender às seguintes especificações:
1. Incluir os módulos distribuídos: TS, TA, TV e SRV;
2. Ser Implementado em qualquer linguagem de programação;
3. Utilizar sockets para comunicação entre os módulos TS, TA, TV e SRV;
4. Os módulos devem:
5. TS: (a) Gerar dois tipos de SEA: Normal (N) ou Prioritário (P);
(b) Gerar as SEAs em ordem crescente. Exs; N1, N2, N3, P1, P2, P3,... ;
(c) Enviar as SEAs geradas para o SRV;
6. TA: (a) Solicitar uma SEA ao SRV; (b) Receber, após solicitação,
uma SEA do SRV; (c) A SEA recebida deve ter sido gerada anteriormente no
TS; (d) Informar a SEA recebida;
7. TV: (a) Receber uma SEA do servidor; (b) A SEA recebida deve ter
sido gerada anteriormente no TS; (c) A SEA recebida deve ser a mesma
solicitada e recebida por um TA; (d) Informar a SEA recebida;
8. SRV: (a) Registrar as SEAs geradas pelo TS; (b) Informar o instante
em que recebeu uma nova SEA do TS; (c) Enviar as SEAs registradas aos
TAs e TVs, quando um TA solicitar uma nova SEA. Para cada duas SEAs do tipo N
informadas, a próxima SEA deverá ser obrigatoriamente do tipo P, se houver.
(d) Informar o instante em que enviou uma SEA para TA e TV.
# Tecnologias
- [Socket.IO](https://socket.io/)
- [NodeJS](https://nodejs.org/en/)
- [Express](https://expressjs.com/pt-br/)
- [Koa](https://devdocs.io/koa/)
- [Styled-Components](https://styled-components.com/)
- [ReactJS](https://pt-br.reactjs.org/)
# Como rodar
### No diretório inicial:
- #### `yarn install`
### Vá para o diretório do servidor:
- #### `cd server`
- #### `npm install`
- #### `npm start`
### Vá para o diretório do client:
- #### `cd client`
- #### `yarn install`
- #### `yarn start`
- #### Vai ser aberta a conexão na porta 3000, abra uma aba para cada conexão, também é possível abrir mais de uma aba para qualquer serviço.
# Preview
- Client

- Terminal do servidor (Registra as ações no instante que são feitas)