Skip to content

Um sistema CRUD simples, capaz de cadastrar edifícios, apartamentos, locatários assim como pesquisar os mesmos.

License

Notifications You must be signed in to change notification settings

joaopedrolourencoaffonso/projeto-biopark

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sistema de Gerenciamento Biopark

Intepretação

Conforme explicado na apresentação, alguns pontos foram deixados para serem interpretados pelo candidado. Na minha interpretação, o sistema é voltado para trabalhadores do próprio Biopark, como ferramenta de gestão interna e como tal:

  • Não há ferramenta para cadastro de usuários, sendo necessário inseri-los manualmente na base de dados.
  • Idealmente, o sistema seria usado em uma rede interna ou VPN, mas a opção de utilizar certificados digitais é oferecida.
  • Um endpoint para atualização de informações sobre apartamentos é fornecido. Por meio dele, é possível registrar que um apartamento que estava vago agora está ocupado, isto é, alugar o apartamento.

Dependências Python

Para executar o app.py são necessárias as seguintes dependências:

pip install flask
pip install mysql.connector
pip install mysql-connector-python

Também são necessárias as bibliotecas: logging, random e json, mas essas são nativas do Python, então não deve haver problemas.

Base de dados

A base de dados utilizada foi o MySQL por questões de familiaridade. Para correta execução do sistema, você precisa de um usuário e uma base de dados. Os nomes podem variar, já que são definidos no arquivo config.py, utilize os comandos abaixo para criar uma base dados chamada biopark acessível a um usuário sistema_remoto a partir de seu_endereço_IP:

joao@Ubuntu:~/Desktop$ sudo mysql

mysql> CREATE USER sistema_remoto@seu_endereco_IP identified by 'senha';
Query OK, 0 rows affected (0,10 sec)

mysql> create DATABASE biopark;
Query OK, 1 row affected (0,06 sec)

mysql> grant all privileges on biopark.* to sistema_remoto@seu_endereco_IP;

mysql> flush privileges;
Query OK, 0 rows affected (0,08 sec)

Agora, acesse a base de dados com o usuário sistema_remoto e crie as bases de dados necessárias:

joao@Ubuntu:~/Desktop$ mysql -u sistema -p
Enter password:

mysql> use biopark;
Database changed

mysql> create table edificios (id_edificio int not null auto_increment, nome_edificio char(255), endereco char(255), primary key (id_edificio));

mysql> create table apartamentos (id_apartamento int not null auto_increment, id_edificio int, nome_apartamento char(255), nome_locatario char(255), preco int, primary key (id_apartamento));

mysql> create table users (user_id int not null auto_increment, user_name char(255), password char(255), primary key (user_id));

mysql>commit;

mysql> insert into users (user_name, password) values (joao, senha);

mysql>commit;

Nota: Os nomes acima podem variar, mas lembre-se de editar o arquivo config.py de acordo, sendo inteiramente possível utilizar o MySQL na mesma máquina que o app.py

Utilizando o TLS

Um exemplo de arquivo de configuração está disponível aqui. É necessário que o arquivo contenha TODAS as variáveis descritas.

As variáveis chave_privada e certificado, em específico devem conter o caminho para, respectivamente, uma chave privada e um certificado correspondente. Nesse diretório, você pode encontrar um par de chave privada e certificado auto-assinado. Caso você não deseje utilizar HTTPS, basta salvar ambas as variáveis como "False", conforme o exemplo.

Utilizando o Sistema

Para iniciar o sistema, basta utilizar:

python3 app.py

Uma vez iniciada, acesso o par endereço porta que você salvou (ex: "http://localhost:5000/"). Se você estiver utilizando HTTPS, mas não estiver usando a porta padrão, não esqueça de adicionar o https:// no início do endereço, já que seu browser não vai identificar automaticamente.

Uma vez acessada a página, se você estiver usando um certificado auto-assinado, é provável que veja a seguinte tela:

Isso acontece pois um certificado auto-assinado não vai estar na lista de certificados confiáveis do seu browser, basta clicar em "Avançado" e seguir para a página.

A primeira página que você vai ver é a página de login:

Se você executou o insert da seção "Base de Dados", basta clicar em "submit" e você será transferido para a tela "boa vindas" ou welcome:

Clicando no botão da esquerda, você acessará a tela de cadastro:

Clicando no botão da direita, você acessará a tela para pesquisa. Basta escolher um campo desejado e escrever um termo procurado (ex: selecionar a opção "vago" vai retornar todos os apartamentos vagos). Não selecionar nada retornará uma tabela com todos os apartamentos:

Se você deseja atualizar quaisquer informação sobre um determinado apartamento, incluindo se está alugado ou não, basta clicar em "Atualizar" e você será transferido para a página abaixo:

Atualize os campos conforme necessidade e clique em salvar.

About

Um sistema CRUD simples, capaz de cadastrar edifícios, apartamentos, locatários assim como pesquisar os mesmos.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published