quinta-feira, 30 de dezembro de 2010

É, terminou!

>por Matheus

Heey! Quanto tempo que não posto aqui!
Como vocês devem saber o projeto acabou (finalmente) rs. Só quis vir aqui agradecer por terem nos aguentado tanto tempo. O trabalho duro de todos nos rendeu ótimos resultados: concluímos as atividades e ganhamos um maravilhoso 10 no boletim. Obrigado, de verdade!

Aprovando a ocasião, Feliz Ano Novo!

Até algum dia!

sexta-feira, 12 de novembro de 2010

Criptografia da Senha

>por Matheus

Hey! Tudo certo?
Como disse no último post, estávamos em dúvida sobre criptografar ou não a senha do usuário. Por fim optamos pelo sim, contudo não utilizamos funções próprias para isso, pois a Aplicação Desktop não as apresentaria. Assim, criamos um método simples de criptografia, que troca, segundo uma ordem específica, os caracteres da senha, tornando assim, impossível a identificação das mesmas pelo banco de dados. Essa função foi adaptada para funcionar tanto na Aplicação em PHP quanto na desenvolvida com Java.

Bem, por hoje é só! Até mais!

sexta-feira, 5 de novembro de 2010

Ajustes na Aplicação Web

>por Matheus

Hey! Tudo certo?
Encontramos alguns ajustes que precisavam ser feitos na Aplicação Web, como por exemplo um número mínimo de caracteres para a senha. Estamos pensando também em criptografar a senha dos usuários, porém, devido ao acesso que a Aplicação Desktop realiza para o login, uma criptografia (como md5, por exemplo) seria inviável. Ainda não encontramos uma solução para esta questão. Assim que decidirmos algo deixo vocês informados!

Até a próxima!

Roteiro da apresentação final

>Por Debora

Olá,
Hoje é o grande dia da apresentação final! Mal conseguimos acreditar que nossa pequena ideia se transformaria em algo tão grande *-*
Vou postar para vocês nosso roteiro:

Roteiro da Apresentação Final

· Apresentação Power Point

Matheus

Slides 1 ao 10 – Apresentação Inicial dos Integrantes

Maisa

Slides 11 e 12 – Apres. do Site e do Blog

Renato

Slides 13 e 14 – Instituição Beneficiada

Mariana

Slides 15 e 16 – Situação Problema

Juliana

Slides 17 ao 19 – Proposta do Projeto

Debora

Slides 20 e 21 – Telas Iniciais dos Sistemas

Paula

Slides 21 e 22 – Tecnologias Utilizadas

· Apresentação do Sistema Web

MAISA :

Cadastro Inicial / Módulo Usuário Comum / Esqueceu a Senha

· Cadastro Passo a Passo

· Download do Projeto

· Alteração de Perfil e Alteração de Foto

· Esqueceu a Senha – Abrir o Email para mostrar que o email chegou

PAULA:

Módulo de Usuário Administrador de Grupo

· Alteração de Perfil, Foto do Usuário, Dados do Grupo e Foto do Grupo

· Mostrar que pode excluir o Grupo e que os usuários vão pro Grupo Padrão

· Consulta dos Usuários de seu Grupo

- Mostrar o Perfil de cada Usuário

- Expulsão de Usuário

- Envio de Notificação para o usuário

· Relatório com Usuários de seu Grupo

· Consulta das Notificações enviadas para os participantes do Grupo ( Email ou Expulsão)

MATHEUS:

Módulo de Administrador Geral

· Cadastro de Usuários

· Alteração dos Dados Próprios e de seu Grupo

· Consulta de Usuários por Nome/ Grupos Cadastrados / Estado e Cidade apenas aquelas que existem usuários cadastrados

- No nome se não digitar nada seleciona todos os usuários

- Mostrar o Perfil dos Usuários na Consulta

- Mostrar que pode excluir um usuário do sistema [Exclusão Lógica] e dizer que tem que existir um Motivo para a exclusão

- Mostrar o envio de notificação para o usuário

- Mostrar que Gera Relatório de qualquer Consulta

· Consulta de Grupos Cadastrados

- Mostrar o Perfil do Grupo

- Exclusão do Grupo ( Usuários passam para o Grupo Padrão)

- Notificação envia para o Adm do Grupo

- Mostrar que Gera Relatório

· Relatórios

- De Usuários (Todos os Usuários ou Usuários agrupados pelo grupo pertencente)

- De grupos (Todos os grupos cadastrados)

- Foi usada a classe FPDF para gerar relatórios

· Aba Exclusão e Notificação redirecionam para a Consulta

MAISA:

· Utilitários

o Mudança dos Parâmetros de Email – Estamos utilizando o servidor GMAIL através de SMTP

o Registro de Log – Mostra todas as ações realizadas pelos usuários – Filtro através de datas ou listagem completa

o Histórico das Notificações – Filtradas por Expulsão/Envio de Email/Exclusão

- Mostrar a Lupa que contém o conteúdo das notificações assim como destinatário e remetente

· Apresentação do Sistema Desktop

PAULA:

· Login

Usuário Cadastrado no Sistema Web – Link “ Não possui uma conta? “

Realiza o Login se estiver conectado com a internet

Botão OFFLINE – Caso o usuário não esteja conectado com a internet

· Menu

Mostrar o menu

MARIANA:

· Cadastro e Edição de Lógica

Botão Novo para adicionar um novo Comportamento

Botão Salvar e Salvar Como para não salvar em cima de um arquivo

SALVAR COMO SOMENTE SALVAR, NÃO CANCELAR!

Mostrar Quadro explicando Condição e Ação

Lixeira para Excluir Comportamento

Editar é como o Cadastro, primeiro escolhe o arquivo ggb que é carregado na tela, depois da edição é liberado o botão Salvar

JULIANA:

· Painel de Controle

Controla se a lógica será executada no Simulador 2D ou no Ambiente Real

Botão de Configuração – Onde escolhe em qual computador irá executar a lógica e passa os parâmetros de IP e a Porta do Robô

Mostrar TELA DE CONFIGURAÇÃO

Botão de Escolher Arquivo – Escolhe a lógica a ser executada

Play – Inicia a execução da Lógica

Pause – Pausa a execução da Lógica

· Simulador

Cria uma nova instância do Simulador aonde será executada a lógica

É utilizado através do Painel de Controle

RENATO:

· Tela Ajuda

Links que redirecionam para um página web com instruções de como utilizar o programa

Mostrar as páginas Web de Ajuda

DÉBORA:

· Tela Desenvolvimento

Apresenta o nome dos desenvolvedores, dos professores orientadores e das instituições envolvidas

· Tela Projeto

Texto descritivo sobre a proposta que o projeto apresenta e um link para o sistema web


Nos desejem sorte!!!

Debora

Apresentação PPT

>Por Paula

Estou postando o novo layout da apresentação final, que foi desenvolvido pelo Matheus.

Esse é o primero slide:



Os outros slides seguem esse padrão:



É isso! Até mais pessoal :D

Paula

sexta-feira, 29 de outubro de 2010

Acesso Remoto

>Por Mariana

Hey
O projeto possui um tela de configurações, que salva o número de IP de onde o simuldor ou o ambiente real está executando, podendo então enviar os comandos para o robô. Veja a seguir a função que atribui o valor do IP:

private void carregaIP(int opcao) {
if (opcao == 0)// escolheu o simulador
IP = Funcoes.IPSimulador;
else
// escolheu o ambiente real
IP = Funcoes.IPReal;
porto = Integer.parseInt(Funcoes.Porto);

}

Até mais,

Mudanças na execução da lógica

>Por Juliana

Olá,
Uma semana já se passou desde que apresentamos a prévia na aula de Aplicativos e na feira do SESI. Durante esse tempo fizemos várias alterações, inclusive na forma como o usuário deverá interagir com o programa para executar sua lógica. Essa execução se dará através de um Painel de Controle, que irá controlar Simulador e Robô Real. Mais tarde, provevelmente, algum integrante do grupo lhes apresentará tal tela.
Até ontem a noite ainda estavamos com alguns problemas na execução. Ao pausar a simulação, o Eclipse acusava java.net.SocketTimeoutException. O problema foi resolvido ao percebermos que a variável executando do Simulador apenas deveria ser alterada para false ao se fechar a janela de simulação.
Assim, temos:

PainelControle.java
if (Evento.getSource() == btPausar) {
Funcoes.executando = 0;
rbSimulador.setEnabled(true);
rbReal.setEnabled(true);
btExecutar.setEnabled(true);
btAbrir.setEnabled(true);
}

Simulador.java
public void windowClosing(WindowEvent arg0) {
Funcoes.executando = 0;
Funcoes.menu.simulador.arena.executando = false;

arg0.getWindow().setVisible(false);
Funcoes.menu.painelControle.btAbrir.setEnabled(true);
Funcoes.menu.painelControle.btExecutar.setEnabled(true);
caminho = null;
Prog1.llMinis.removeAll(Prog1.llMinis);
Prog1.pnArea.removeAll();
}

Até a semana que vem,
Juliana

Painel de Controle

>Por Paula

Olá!

Resolvemos criar uma tela de Painel de Controle, que será utilizada com o Simulador 2D, nessa tela estão presentes as funções de Configurar os ambientes, Escolher a lógica, executá-la e pausar a execução. Essas funções são acessadas através de ícones, como pode-se ver abaixo:

Paula


Posição dos Objetos na Arena - OK

>por Matheus

Olá!
Como apresentado no post da semana passada, durante a semana trabalhei para que o usuário conseguisse alterar a posição dos objetos (Robô e Bola) fazendo uso do mouse, ao invés de utilizar posições fixas para o posicionamento. Para isso, utilizei implentações como MouseMotionListener e MouseListener. Segue abaixo o código em Java elaborado:

public boolean validaPosicaoMouse(MouseEvent e, int obj)
{
xMouse = (int)e.getPoint().getX();
yMouse = (int)e.getPoint().getY();
xMouse = (int)(xMouse / escalaCmPixel);
yMouse = (int)(yMouse / escalaCmPixel);
yMouse = tamYCm - yMouse;

//obj 1 = robo1 || 2 = robo2 || 0 = bola
if(obj == 1)
{
if (((xMouse <= robo1.x+2) && (xMouse >=robo1.x -2)) && ((yMouse <= robo1.y+2) && (yMouse >=robo1.y -2)))
{
return true;
}
}
if(obj == 2)
{
if (((xMouse <= robo2.x+2) && (xMouse >=robo2.x -2)) && ((yMouse <= robo2.y+2) && (yMouse >=robo2.y -2)))
{
return true;
}
}
if(obj == 0)
{
if (((xMouse <= bola.x+2) && (xMouse >=bola.x -2)) && ((yMouse <= bola.y+2) && (yMouse >=bola.y-2)))
{
return true;
}
}

return false;

}

@Override
public void mouseDragged(MouseEvent e)
{
xMouse = (int)e.getPoint().getX();
yMouse = (int)e.getPoint().getY();
xMouse = (int)(xMouse / escalaCmPixel);
yMouse = (int)(yMouse / escalaCmPixel);
yMouse = tamYCm - yMouse;

if((emCima == 1) || (emCima == 0))
{
atualizaPosicaoMouse(xMouse, yMouse);
}
}

public void atualizaPosicaoMouse(int x, int y)
{
//obj 1 = robo1 || 2 = robo2 || 0 = bola
if(emCima == 1)
{
robo1.x = x;
robo1.y = y;
repaint();
return;
}
if(emCima == 0)
{
bola.x = x;
bola.y = y;
repaint();
return;
}
}



@Override
public void mousePressed(MouseEvent e) {
if((validaPosicaoMouse(e, 1)) && (Funcoes.executando==0))
{
emCima = 1;
return;
}
if((validaPosicaoMouse(e, 0)) && (Funcoes.executando==0))
{
emCima = 0;
return;
}

}

@Override
public void mouseReleased(MouseEvent e) {
emCima = -1;
}


Até a próxima!

Matheus

Histórico de notificação - administrador do grupo

>Por Maisa

Hey,
Como realizado no administrador geral, foi adicionado a opção de visualização do histórico de notificação pelo administrador do grupo.

Assim, ele pode verificar as notificações que enviou e para quem enviou. Nesse caso, não há a opção de Filtro 'Exclusão' pois o administrador de um grupo pode apenas expulsar um usuário do grupo, e não excluí-lo.

Segue abaixo uma imagem da tela:


Como no administrador geral, ele também pode ver as informações básicas da notificação : para quem foi enviada e qual a mensagem.

Maisa

Mudança na data da Apresentação Final

>por Renato

Essa semana recebemos a notícia de que a data da Apresentação Final foi modificada. A apresentação estava anteriormente marcada para os dias 10 e 11 de novembro de 2010, ou seja, no meio da semana de provas do quarto bimestre. Porém, nos dias 06 e 07 de novembro, as provas do ENEM 2010 serão aplicadas. Para evitar o sobrecarregamento dos alunos, as apresentações da nossa sala agora ocorrerão nos dias 04 (período da tarde) e 05(também no período da tarde).

Ou seja, a Apresentação Final já é semana que vem.


Renato

Apresentação Final

>Por Debora

Olá,

Essa semana eu e o Renato Giampietro começamos a apresentação final do projeto. Decidimos fazê-la em PowerPoint, pois nenhum membro do grupo trabalha com Flash e teríamos pouco tempo para aprender.
A apresentação contém um vídeo de abertura, apresentação dos integrantes, instituição beneficiada, telas do blog, site, sistema web, menu da aplicação em java e contém também as tecnologias utilizadas.

Até semana que vem.

Debora

sexta-feira, 22 de outubro de 2010

Funcionamento do simulador

>Por Mariana

Hey
Como visto no meu post anterior, o simulador tem nos botões, e hoje eu trouxe o código deles. O botão executar é qume dá inicio a execução, e o pause interrompe-a. Veja:

Botão Executar
if (Evento.getSource() == btExecutar) {
Funcoes.executando = 1;
menuItemEscolherArq.setEnabled(false);
t = new Thread(this);
t.start();

}


Thread t
@Override
public void run() {

btExecutar.setEnabled(false);
// bingo
if (caminho == null) {
caminho = Funcoes.arquivo();
try {
Funcoes.carregarArquivo(caminho, Prog1.llMinis);
} catch (Exception e) {
e.printStackTrace();
}
}
arena.executando = true;
simCliente = new SimuladorCliente(caminho);// "C:\\Documents and Settings\\mariana.shimabukuro\\Desktop\\APPARATUS\\Projeto\\dir.ggb");
btExecutar.setEnabled(true);

}

Botão Pause

if (Evento.getSource() == btPausar) {
Funcoes.executando = 0;
menuItemEscolherArq.setEnabled(true);
btExecutar.setEnabled(true);
}


Até mais,
Mariana

Acentos

>Por Maisa

Hey,
Estavam ocorrendo alguns erros em relação a acentos na nossa aplicação PHP. Não estávamos conseguindo cadastrar nomes com acento, enviar notificações, etc.
Com isso o Matheus fez umas pesquisas e descobriu funções PHP para codificar e descodificar acentos para conseguirmos salvar e pegar os valores do banco.
As funções são:
  • utf8_encode (codifica)
  • utf8_decode (descodifica)
Assim, modifiquei os arquivos e agora o problema está solucionado.

Até mais,

Feira de Tecnologia

>Por Debora

Olá,

Nessa sexta feira, nós fomos expor nosso projeto na feira de tecnologia que estava acontecendo no SESI. Durante a tarde, ficamos eu, Matheus, Mariana e Renato e durante a noite, Juliana, Paula, e Maisa.
Nós queríamos ter levado a arena e os robôs, para chamar mais atenção do público, mas infelizmente não deu certo, pois faltou uma biblioteca do java para conseguirmos executar o programa que verifica as posições dos objetos na arena.
No geral deu tudo certo, nós nos saímos bem!

Até a próxima

Desenvolvimento em Java: Cadastro de lógica

>Por Juliana

Boa tarde,
Ontem, enquanto dávamos uma conferida pré-feira em todo o projeto GoGoBots, notamos um erro na exclusão de comportamentos ao fazer o cadastro. O comportamento excluído era sempre o primeiro. Após algumas tentativas, chegamos ao seguinte trecho de código, que, de forma simples, resolveu nosso problema.

btRemover.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
Mini m = (Mini) ((JButton)(e.getSource())).getParent().getParent();
Prog1.llMinis.remove(m);
Prog1.pnArea.removeAll();
for (int i = 0; i < Prog1.llMinis.size(); i++) {
Prog1.pnArea.add(Prog1.llMinis.get(i));
}
Prog1.pnArea.updateUI();
Prog1.pnArea.validate();
if (!(Funcoes.existeComportamento(Prog1.llMinis))) {
Prog1.btSalvarComoLogica.setEnabled(false);
Prog1.btSalvarLogica.setEnabled(false);
}

}

});


Até semana que vem,
Juliana

Mudança na Tela de Configuração

>Por Paula

Olá!

Durante essa semana foram realizadas algumas alterações na tela de configuração, agora o usuário irá configurar de uma só vez, os elementos do Robô Real e do Simulador 2D, escolhendo em qual computador serão executadas as lógicas.

Segue abaixo a imagem da tela:

Paula

Posição dos Objetos na Arena

>por Matheus

Hey! Tudo certo?
Durante essa semana nos foi solicitado que alterassemos a forma como o usuário posiciona os objetos na arena. Até então os mesmos tinham posições fixas, como por exemplo (3,3). Estamos trabalhando para que as respectivas posições sejam alteradas pelo mouse.
Assim que tiver mais novidades deixo vocês informados.

Até a próxima!

Matheus

"Prévia" da apresentação

>Por Renato

Oi.
Foram escolhidos 2 grupos para que, no dia 22/10/2010, durante as duas aulas de aplicativos, fizessem uma prévia da apresentação do projeto.

O professor Fabrício, de Aplicativos, se propôs a corrigir e apontar possíveis modificações da apresentação para garantir o melhor rendimento possível no dia da apresentação final (11/11/2010).

Um dos grupos que irão realizar a apresentação será o próprio Apparatus.

sexta-feira, 15 de outubro de 2010

Layout Simulador

>Por Mariana

Hey
Como venho relatando há algum tempo, mudanças no layout do simulador deveriam ser realizadas. Tinhamos feito algo somente para teste, porém após a reunião do dia 09/10 na casa da Juliana, discutimos um pouco sobre e a Paula e o Matheus, fizeram a seguinte janela:


Agora o usuário tem a opção de interromper a execução a qualquer momento, e iniciar uma nova interpretação. Sem falar na tela de configurações na qual ele poderá dizer qual robô esta controlando e qual máquina que vai se conectar. Por hoje é só!

Até mais,
Mariana

Validação de IP

>Por Matheus

Hey! Tudo certo?
Durante essa semana me foquei na programação em Java, contando sempre com o auxílio da Paula. Duas telas de configuração foram desenvolvidas e estão praticamente finalizadas. Nelas, nos deparamos com uma situação um tanto quanto inusitada: a validação de um endereço IP.

Para realizar essa validação, estamos utilizando uma expressão regular, que pode ser observada abaixo:

public boolean ValidaIP(String ip)
{
Pattern pattern = Pattern.compile("(([0-1]?[0-9]{1,2}\\.)|(2[0-4][0-9]\\.)|(25[0-5]\\.)){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))");
Matcher matcher = pattern.matcher(ip);
if( matcher.matches() )
return true;
else
return false;
}

Por hoje é só! Até a próxima.

Matheus

Tela de Configuração - Robô Real

>Por Paula

Olá ;D

Essa semana eu e o Matheus desenvolvemos as duas últimas telas necessárias, as de configurações do simulador e do robô real. Na tela de configuração do robô real o usuário deverá escolher em qual computador se encontra o servidor linux de comunicação com robô, se é o mesmo computador que está sendo utilizado ou se será outro, escolhendo a segunda opção o usuário terá que digitar o IP da máquina correspondente. Dando continuidade, o usuário digitará o número de porto, ou seja, a porta de comunicação e por último selecionar o arquivo com a lógica que o robô executará.

Segue abaixo a imagem com a tela do Robô Real:


Até mais!

Paula

Layout da janela Configurações

>Por Juliana

Bom dia,
Como já foi dito aqui no blog, fizemos uma tela para configuração do Simulador 2D pelo usuário. Por enquanto, ela tem duas finalidades: selecionar o IP da máquina onde a lógica será executada e escolher as posições dos objetos no início da execução.

Até a semana que vem,
Juliana

Apresentação Final

>por Renato

Oi.

Vou postar sobre o horário das apresentações finais e a data da reapresentação.

A apresentação do nosso grupo será realizada dia 10/11/2010, às 10:00 da manhã. Antecedendo nossa apresentação, teremos o grupo Índigo. No dia 09/10/2010 teremos a apresentação do grupo Stay e posteriormente do grupo Spectrum no período da tarde.

A data de reapresentação foi marcada para o dia 27/11/2010, no período normal de aula.
Vale lembrar que é previsto que tempo de duração das apresentações seja entre 60 a 90 minutos.


Renato.

Andamento da Reunião do dia 09/10/2010

>Por Debora

Olá,

Na reunião de sábado (na casa da Juliana), juntamente com o idealizador do nosso projeto, Renê Pegoraro, discutimos sobre uma data para testarmos nosso projeto no robô real. Arrumamos também o layout do simulador e consertamos alguns erros do mesmo, além de termos distribuido tarefas para os integrantes do grupo.

Até mais!

Debora

Filtro de notificações

>Por Maisa

Hey,
Como dito no meu post anterior, foi feito o histórico de notificações. Para ajudar o usuário a encontrar o histórico desejado, foi desenvolvido o Filtro de notificações o qual será exibido pelo tipo de operação (Email,Exclusão ou Expulsão).

O usuário então escolhe a opção desejada e clica em "Listar". Caso não deseje um tipo específico, o usuário poderá também visualizar uma listagem completa do histórico de notificações.

Segue abaixo uma imagem da tela:


Maisa

sexta-feira, 8 de outubro de 2010

Botão executar

>Por Juliana

Olá
Como já foi comentado anteriormente mudamos o layout da tela do simulador, trouxe então o código do botão adicionado, confira:

btExecutar.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
try {
String caminho = Funcoes.arquivo();
Funcoes.carregarArquivo(caminho, Prog1.llMinis);
new SimuladorCliente(caminho);// "C:\\Documents and Settings\\mariana.shimabukuro\\Desktop\\APPARATUS\\Projeto\\dir.ggb");

} catch (Exception e1) {

e1.printStackTrace();
}

}

});



Boa semana,
Juliana

Histórico de notificação

>Por Maisa

Como dito pela Paula, houve a criação da listagem dos registros de log. Ao realizar essa listagem percebemos também que era necessária uma listagem do histório de notificação também no módulo administrador.
Desenvolvi então a página, que pode ser acessada no menu Utilitários > Notificação. Segue abaixo uma imagem da o histórico de notificação:

Ao lado dos campos Data, Destinatário e Operação os quais identificam a notificação, há um ícone (lupa) que mostrará mais detalhes sobre a notificação enviada.
Abaixo a janela que será aberta ao clicar no ícone:

Onde aparecerá o usuário que enviou, o que recebeu e a mensagem enviada.

Maisa

Reunião

>por Débora

Olá,

Ontem 7/10/2010, o grupo teve uma conversa e decidiu que seria necessário fazer uma reunião nesse final de semana para adiantar o projeto na parte da programação, pois nosso prazo em relação aos outros grupos quanto ao término do trabalho é menor, ja que iremos apresentar nosso projeto na semana da tecnologia - final de outubro.
Depois da reunião vocês serão informados do que se passou e como estará o projeto.
Por hoje é isso.
Até mais!

Debora

Integração: interface e simulador

>Por Mariana

Hey
Nessa semana trabalhei na integração dos módulos de interface desenvolvidos pela Paula e pelo Matheus com o módulo do simulador 2D, por enquanto não tivemos sérios problemas.Porém está sendo complicado harmonizar os ambientes, e lógicas de programação utilizadas. Abaixo um print do funcionamento:



Até mais,
Mariana

Período de Log

>por Matheus

Olá!

Durante essa semana estamos nos esforçando para finalizar a aplicação Web (PHP). Como já foi dito pela Paula, um dos pontos que faltavam no sistema era a visualização dos registros de log. Para facilitar, resolvemos criar uma espécie de "seleção de período". O usuário seleciona, com o auxílio de dois calendários, a data de início e de término do período. Caso não deseje um período específico, o usuário poderá também visualizar uma listagem completa com todos os registros de log.

Segue abaixo uma imagem da tela.


Matheus

Mudança no DER

>por Renato

Vou postar sobre a mudança realizada no DER da pasta de TSPD.

Anteriormente, constava no DER que que um usuário administrador poderia possuir N grupos e que um grupo poderia ter N usuários. Ocorreu um erro, pois todos os usuários participarão de apenas um grupo e isso também é válido para aqueles que são administradores de um grupo.

Agora, consta que um grupo possui N usuários e um usuário administrador pode ser dono de um único grupo. Segue abaixo a imagem do relacionamento modificado:



Renato

Registro de Log

>Por Paula

Olá ;D

Essa semana, após algumas conversas, lembramos de um detalhe que havia passado despercebido, a página de listagem dos registros de log no módulo de administrador. Assim, durante uma das aulas utilizadas para o desenvolvimento do projeto construi a página de listagem de log, porém como são milhares de registros, está sendo desenvolvido pelo Matheus uma forma de paginação.
Segue abaixo a imagem com a listagem dos registros de log, que é acessada através do link Reg. de Log na aba Utilitários, lembrando que por enquanto encontra-se sem paginação.


Até mais!

Paula

sexta-feira, 1 de outubro de 2010

Alteração foto grupo

>Por Maisa

Ao cadastrar um grupo o usuário pode adicionar uma foto para o mesmo. Caso não escolha uma foto nessa hora, ou mesmo se apenas quiser modificá-la poderá acessar após o Login.
Assim, entrando no menu Alterar > Grupo e abaixo dos campos há um botão 'Alterar foto' que irá para tela de alteração.

Ao clicar no botão aparecerá a tela a seguir:


Onde aparecerá a foto do grupo e o botão para alterá-la.

Maisa
>por Débora

Olá

Hoje vou postar sobre uma alteração feita na pasta de TSPD. No nosso DFD foi tirado o nível do usuário, ja que isso daria muito trabalho para o grupo em relaçã a programação. Com essa alteração, não haverá mais relatório classificando usuário por desempenho.

Bom, por hoje é só. Até mais.

Debora

Simulador

>Por Mariana

Hey
Estamos tendo problemas com a programação referente ao botão que aciona a execução do simulador, estamos tentando arrumar, porém não temos idéia do que fazer. O objetivo é pesquisar em algumas fontes e perguntar ao prof. Dr. Rene Pegoraro. Boa sorte à todos nós nessa etapa final.

Até mais,
Mariana

Tela sobre o Projeto

>Por Paula

Olá ;D

Referente a interface das telas da aplicação em Java já foram praticamentes finalizadas, faltando somente a tela de ajuda, a qual não decidimos ainda como será desenvolvida. Estamos com um problema de justificamento, mas que logo será resolvido.

Segue abaixo a tela falando sobre o Projeto:



Paula

Layout da tabela parâmetros

>por Renato

Oi.

Essa semana eu desenvolvi o layout da tabela parâmetros, que foi criada depois da conclusão da pasta de TSPD do terceiro bimestre.

A tabela irá conter informações do e-mail e do banco, como o host, a porta e o endereço de e-mail, mas ainda está sujeita a futuras alterações.

A imagem pode ser visualizada logo abaixo:

Alteração na Notificação - PHP

>por Matheus

Heey! Tudo certo?

Com grande parte da aplicação PHP já desenvolvida, resolvemos implantar um 'layout' para as notificações via e-mail do sistema Web. O novo layout das notificações serão simples, mas ao mesmo tempo agradáveis e atrativos.

Confira abaixo um protótipo de notificação:


Por hoje é só!

quinta-feira, 30 de setembro de 2010

Robô real

>Por Juliana

Olá

Como pode ser percebido, nos últimos meses nós dedicamos a maior parte do tempo ao desenvolvimento do Simulador. Embora este ainda não esteja 100% pronto, planejamos começar ainda essa semana a programar o robô real. Esta parte deve ser bem menos complicada já que boa parte da lógica será reaproveitada do Simulador.
Antes de iniciarmos a programação, queremos nos encontrar com o prof. Renê afim de resolver alguns pontos.

Boa semana para todos,
Juliana

sexta-feira, 24 de setembro de 2010

Parâmetros do Email

>Por Maisa

Utilizamos uma função para enviar email,notificação para os usuários. A função era fixa num código PHP. Então, se preciso fosse alterá-la teria que entrar diretamente na página do código.
Assim, para facilitar essa alteração ou alguma manutenção que poderia ocorrer criamos uma página dentro do login de Administrador. Ela se apresenta no menu Utilitários.
Segue abaixo a imagem da página:


Maisa

Filme da Apresentação

>Por Paula

Como solicitado estou postando os vídeos referentes a apresentação do dia 03 de setembro da matéria de Aplicativos II.

Parte 1:




Parte 2:



Créditos: Prof. Rodrigo Carvalho

Até mais!

Paula

Novo Layout Simulador

>Por Mariana

Hey
Como dito pela Juliana andamos tendo problemas com a relação do nosso simulador e nosso cliente. Tentamos arrumar de diversos modos essas classes porém, ainda nao obtemos sucesso. Em mais uma tentativa alteramos a interface do Simulador que agora tem um botão no qual inicia a execução do cliente. Veja como ficou a tela:



Até mais,
Mariana

Relação Simulador - SimuladorCliente

>Por Juliana

Bom dia,
Eu e a Mariana viemos lhes relatando há algum tempo a respeito dos problemas com o Simulador. Mais recentemente temos tentado consertar a relação entre o Simulador e o SimuladorCliente. Essas duas classes já funcionam em conjunto quando estão sozinha em um mesmo projeto. No entanto, quando tentamos integrá-las ao Menu algo dá errado. Já tentamos algumas formas diferentes para resolver isso, e continuaremos tentando até alcançar o funcionamento desejado. Esperamos que seja logo.

Até semana que vem,
Juliana

Alterações no Design - PHP

>por Matheus

Hey! Tudo certo?

Com a aplicação PHP quase finalizada, resolvemos fazer algumas alterações no design. As mudanças são poucas, abrangendo apenas os ícones do projeto.

As imagens foram retiradas do site http://www.dryicons.com, mais especificamente do pacote de icones Coquette.

Para conferir as alterações visite nosso projeto (link).

Até a próxima!

Matheus

Orientação da pasta de TSPD

>por Débora

Olá,

Na aula de TSPD dessa semana, o professor Dalastti nos orientou em relação a correção da pasta. Esse bimestre não haverá itens solicitados para se acrescentar na pasta, deveremos apenas corrigir os itens que o professor solicitou.
Abaixo vou citar alguns itens a serem mudados:
  • Tirar o id estado da tabela usuário e mandar as informações de estado pelo id cidade, ja que cidade e estado estão ligadas;
  • Colocar o relacionamento de zero para um entre grupo e usuário no DER;
  • Fazer as mudanças no DD (dicionário de dados) também;
  • Acrescentar no DFD, DD e no DER a nova tabela que criamos (Parâmetro).
Gente, por hoje é só. Até mais.
Debora

Pasta de TSPD

>por Renato

Oi.
O professor Dalastti avisou a Debora que ele já está corrigindo as pastas de TSPD e que no sábado ele irá chamar os integrantes responsáveis pela pasta do grupo para possíveis correções.

Além disso, vale lembrar que no quarto bimestre não há nenhum novo tópico exigido para a pasta, mas todas as correções e mudanças necessárias devem ser feitas para a entrega da versão final da pasta.

Renato

sexta-feira, 17 de setembro de 2010

Site da Empresa

>Por Juliana

Olá,
Como solicitado pelo prof. Rodrigo da disciplina de aplicativos II, no dia da prova bimestral, estou aqui para postar a página inicial do site. Confira:

Clique sobre a imagem para acessar o site!

Boa semana
Juliana

Propostas Aprovadas

>Por Mariana

Hey
Como solicitado pelo prof. Rodrigo, estou postando as propostas aprovadas para banner, capa de CD, e etiqueta de CD. Confira:








Até mais
Mariana

Propostas de Banner

>Por Matheus

Hey, tudo bom pessoal?
Como solicitado, estamos postando o conteúdo que foi adicionado à pasta do terceiro bimestre. Abaixo, os banner desenvolvidos pelos integrantes.







Site classificado

>Por Maisa

O Site da Empresa foi classificado no Google. Se pesquisar por "Projeto GoGobots" e "Empresa Apparatus" ele se encontra na primeira página.
Segue abaixo o vídeo para poder registrar e confirmar a classificação do site:


Maisa

Capas de CD

>por Renato
Oi.
Estou postando as propostas de capa de CD desenvolvidas pelos integrantes do grupo. São 5 propostas ao todo, sendo que houve uma única escolhida para ser utilizada.
Logo abaixo, vocês podem conferir as propostas:

Renato

Meta Tags e Palavra-Chave

>Por Paula

Olá!
Estou postando a relação de meta tags utilizadas no site da empresa e seu respectivo conteúdo, além da palavra-chave definida.

DESCRIPTION

Conteúdo: Empresa Apparatus, desenvolvedora do projeto GoGoBots, elaborado para auxiliar crianças e/ou jovens a criarem sua própria lógica de programação. Integrantes: Debora dos Santos , Juliana Pegoraro, Maisa Beltrame, Mariana Shimabukuro, Matheus Beleboni, Paula Fiorini e Renato Giampietro (Alunos do Colégio Técnico Industrial – Unesp/Bauru)

KEYWORDS

Conteúdo: Lógica de Programação, Lógica, Programação, Empresa Apparatus, GoGobots, Empresa Aparatus, gogobots, aparatus, apparatus, GOGOBOTS,APPARATUS,APARATUS,Maisa Bontorin Beltrame, Renato Giampietro, Paula de Camargo Fiorini, Matheus Giovanni Soares Beleboni , Mariana Akemi Shimabukuro, Debora Regina Ferreira dos Santos, Juliana Alves Pegoraro, 73b, cti, unesp, bauru

ROBOT

Conteúdo: All,follow

PALAVRA-CHAVE

A palavra-chave definida foi “Lógica de Programação¹” devido ao fato de ser uma das finalidades do Projeto Gogobots estimular a lógica de programação de seus usuários.
Até mais!

Paula


__________________
¹Lógica de Programação - É a técnica de encadear pensamentos para atingir determinado objetivo.

Etiquetas de CD

>por Débora

Bom dia,

Hoje vou postar todas as etiquetas que foram desenvolvidas pelo grupo durante o bimestre. Ao todo são cinco, e vocês podem conferi-las logo abaixo:






Por hoje é só, até semana que vem

Debora

sexta-feira, 10 de setembro de 2010

Pasta de Aplicativos - Completa

>Por Matheus

Hey pessoal, tudo certo?

Como disse no último post, aqui está a Pasta de Aplicativos do 3o. Bimestre. Devido ao tamanho do arquivo, disponibilizamos o arquivo no MegaUpload (link).

Pasta de Aplicativos - 3 Bimestre


Matheus

Rodando no Linux

>Por Paula

Olá ;D

Essa semana eu fiz o teste com a aplicação em Java no sistema operacional Linux para vizualizar como os objetos estavam ficando posicionados, já que a mudança de sistema operacional e a resolução da tela podem causar alterações nas posições dos componentes.
Abaixo segue a imagem de como a aplicação ficou no Linux, com o posicionamento dos componentes não houve nenhum problema, porém os acentos não apareceram no Linux.


Até mais!

Paula

Robô Michelângelo

>Por Juliana

Bom dia,
Desde o início do desenvolvimento do projeto, sabemos que o robô real que utilizaremos será um dos da UNESP, mas conhecido como Michelângelo. Abaixo, apresento imagens que representam os movimentos que ele consegue realizar.

























Até semana que vem,
Juliana

Desenvolvimento técnico: Documentação

>Por Mariana

Hey

Resolvi trazer um pouco da documentação do projeto, a seguir uma breve explicação e uma ilustração.

O ambiente reproduz uma área plana, chamada de arena na qual atualmente é posicionado um robô e uma bola. Neste ambiente o robô executará os comportamentos para realizar uma tarefa.


Até mais e bons estudos
Mariana

Semana de Provas

>por Débora

Bom dia,
Como todos vocês sabem estamos em plena semanas de provas no Colégio Técnico. Devido a esse fato, nós demos uma pequena pausa no projeto, para nos dedicarmos as matérias do Ensino Médio + Java, pois além de estudarmos, temos muitas listas para entregar!!
Essa semana também foram entregues as pastas de TSPD e Aplicativos.

Boas provas a todos nós!

Indexação do site

>Por Maisa

Como solicitado pelo Prof. Rodrigo, o site foi indexado para o mecanismo de busca Google. Foram colocadas as Metatags (linhas de código HTML, ou "etiquetas", que descrevem o conteúdo do site para os buscadores) necessárias.

Segue abaixo uma imagem com o link para o site da Empresa:



Maisa

Semana da tecnologia

>por Renato

Oi.

O nosso grupo foi convidado pelo professor Vitor para participar na semana da tecnologia apresentando o projeto Gogobots. A semana será realizada no SESI, no mês de outubro.

O grupo Spectrum também foi convidado para participar do evento apresentando o projeto realizado pelo grupo.



Renato

sexta-feira, 3 de setembro de 2010

Pasta de Aplicativos

>por Matheus

Hey! Tudo bom?

Como de costume, durante esse bimestre aprimoramos a pasta de Aplicativos solicitada pelo Prof. Rodrigo. Nesta etapa, deveriamos adicionar todas as propóstas de banners, capas e etiquetas de CD, além das interfaces aprovadas.

Outra alteração foi a proposta de interface do site da empresa. Agora já desenvolvido e nos mecanismos de busca, o site deve constar na pasta do 3o. Bimestre.

A entrega está marcada para o dia 11/09, juntamente com a apresentação de slides sobre o andamento do projeto.

Assim que a pasta estiver finalizada postaremos no blog para que todos tenham acesso!

Obrigado e boas provas!



Desenvolvimento em JAVA - Conversor

>Por Mariana

Como dito anteriormente começamos desenvolver um jeito de controle remoto do simulador, por UDCP. Para isso ocorrer precisamos converter também float em bytes, a seguir a rotina que faz isso:

void comunicacaoRobo2() {
/** 6 floats * 4 bytes cada * 3 conjuntos de estado */
byte data[] = new byte[6 * 4 * 3];
byte cmd[] = new byte[1];

Estado estado[] = new Estado[3];
for (int i = 0; i <>
estado[i] = new Estado();

while (true) {
try {
estado[0].angulo = (float) (2 * Math.PI + robo2.angulo);
estado[0].x = tamXCm - (float) robo2.x;
estado[0].y = tamYCm - (float) robo2.y;
estado[0].dAngulo = (float) robo2.dAngulo;
estado[0].dx = -(float) robo2.dx;
estado[0].dy = -(float) robo2.dy;

estado[1].angulo = (float) bola.angulo;
estado[1].x = tamXCm - (float) bola.x;
estado[1].y = tamYCm - (float) bola.y;
estado[1].dAngulo = (float) 0;// bola.dAngulo;
estado[1].dx = -(float) bola.dx;
estado[1].dy = -(float) bola.dy;

estado[2].angulo = (float) (2 * Math.PI + robo1.angulo);
estado[2].x = tamXCm - (float) robo1.x;
estado[2].y = tamYCm - (float) robo1.y;
estado[2].dAngulo = (float) robo1.dAngulo;
estado[2].dx = -(float) robo1.dx;
estado[2].dy = -(float) robo1.dy;

leBytes(data, estado);

DatagramPacket packet = new DatagramPacket(cmd, 1);
socketRobo2.receive(packet);
if (cmd[0] == (byte) 0x88) {
packet.setData(data);
socketRobo2.send(packet);
// Thread.sleep(100);
} else {
System.out.format("%02x ", cmd[0]);
robo2.comando(cmd[0]);
Thread.sleep(20);
}
} catch (InterruptedException e) {
} catch (IOException e) {
e.printStackTrace();
}
}
}



Até mais e boas provas a todos.