CLIENTE
R. Com.
R. Com.
PROJETISTAS
Adomiran Bastos, Denivan Campos e Marcos Dias.
COLABORADORES
Funcionários
DESCRIÇÃO DO CONTEXTO
O Insight OS fará controle de entradas e saídas de aparelhos de telefonia celular para assistência técnica dentro e fora de período de garantia. Sendo assim, completamente aplicável tanto em assistências autorizadas quanto em lojas convencionais (franquias).
O sistema apresentará interface simples, e por isso, poderá ser operado pelos próprios vendedores, sem a necessidade de conhecimentos específicos em informática.
Deverão ser armazenados os dados do produto, tais como descrição, valor, data de venda, número de série e IMEI; dados de contato do cliente e todas as movimentações ocorridas desde a abertura da ordem de serviço, bem como os do fabricante (em caso de ativação de garantia).
A geração de relatórios deverá ser frequente, visando oferecer ao cliente uma maior segurança em relação a todo o andamento e previsão de entrega do produto. Estes mesmos relatórios poderão ser repassados ao cliente por e-mail ou SMS.
PRINCIPAIS ATORES
- Clientes;
- Funcionários;
- Fabricante.
PRINCIPAIS ATIVIDADES/REQUISITOS
- Registrar entrada de equipamentos;
- Registrar saída de equipamentos;
- Gerar relatórios de andamento;
- Informar clientes;
- Gerenciar ordens de serviço.
DIAGRAMA DE CASO DE USO
ESPECIFICAÇÃO DE USO DE CASO
UC001 - Abrir Ordem de Serviço
Breve Descrição: Este caso de uso cadastra o aparelho que necessita de assistência técnica, junto aos dados do cliente.
Pré-condições: O aparelho deve apresentar defeito.
Atores Envolvidos: Clientes, Funcionários.
Cenário Principal:
1. O funcionário informa seu login e senha. O login e a senha poderão ser compostos e/ou números, ambos contendo no mínimo 6 caracteres.
2. O funcionário solicita do cliente, para inserção, os seguintes dados: nome completo, CPF, endereço completo, telefone para contato e e-mail.
3. O funcionário insere os dados do aparelho: marca, modelo, número de série, IMEI, operadora, número da nota fiscal, data de compra, prazo para acionamento de garantia.
4. Ao confirmar os dados, o sistema gera um relatório com número da ordem de serviço e previsão de conclusão.
Cenário Alternativo:
4.1. Caso o prazo tenha expirado, o cliente é informado, e se aceito, é ativado o serviço de assistência técnica local.
4.2. Caso o prazo tenha expirado e o cliente não aceite assistência técnica local, a ordem de serviço é automaticamente cancelada.
4.3. Caso o prazo para acionamento da garantia tenha expirado e o estabelecimento não ofereça serviço de assistência técnica local, a ordem de serviço é automaticamente cancelada.
4.4. Caso o aparelho esteja em período de troca imediata, é gerado o número da ordem de serviço, que logo após é automaticamente salva e encerrada.
UC002 - Fechar Ordem de Serviço
Breve Descrição: Este caso de uso encerra a ordem de serviço, porém, deixa suas movimentações, cadastro do cliente e do aparelho registrados.
Pré-condições: O defeito do aparelho deve ter sido solucionado.
Atores Envolvidos: Clientes, Funcionários.
Cenário Principal:
1. O funcionário informa seu login e senha. O login e a senha poderão ser compostos e/ou números, ambos contendo no mínimo 6 caracteres.
2. O funcionário insere o número da ordem de serviço.
3. O funcionário informa se o problema foi solucionado ou não.
4. O funcionário informa o tipo de solução utilizado: assistência técnica local, assistência técnica do fabricante ou troca imediata.
5. O funcionário salva a ordem de serviço confirmando seu fechamento.
WIREFRAME
DIAGRAMA DE CLASSES
TECNOLOGIAS PARA IMPLEMENTAÇÃO
Ambiente/Plataforma do Sistema: Web. É um ambiente bastante acessível e customizável. Não requer hardware muito potente.
Linguagem de Programação: PHP. É livre, tem sintaxe simples, similar a C.
Sistema Gerenciador de Banco de Dados: MySQL. É livre, bastante popular e escalável.
IDE: Eclipse para desenvolvimento PHP. É livre; tem fácil integração com Apache, JQuery, Java; além de ser usado profissionalmente por várias empresas do país.
Restrições em Sistemas Operacionais: Não há restrições em sistemas Windows, Linux ou MAC, já que são capazes de rodar tanto MySQL quanto o servidor PHP necessário.
MODELO DE INFRAESTRUTURA
MODELO ENTIDADE-RELACIONAMENTO
DIAGRAMA ENTIDADE-RELACIONAMENTO
SQL
-- Criação do Esquema `INSIGHT`
CREATE SCHEMA `INSIGHT`;
USE `INSIGHT`;
-- Criação da Tabela `INSIGHT`.`CLIENTE`
CREATE TABLE IF NOT EXISTS `INSIGHT`.`CLIENTE` (
`CPF` INT(11) NOT NULL ,
`NOME` VARCHAR(100) NOT NULL ,
`ENDERECO` VARCHAR(45) NOT NULL ,
`NUMERO` VARCHAR(5) NOT NULL ,
`BAIRRO` VARCHAR(45) NOT NULL ,
`CEP` VARCHAR(8) NULL ,
`CIDADE` VARCHAR(50) NOT NULL ,
`ESTADO` VARCHAR(2) NOT NULL ,
PRIMARY KEY (`CPF`) )
-- Criação da Tabela `INSIGHT`.`FABRICANTE`
CREATE TABLE IF NOT EXISTS `INSIGHT`.`FABRICANTE` (
`CNPJ` INT NOT NULL AUTO_INCREMENT ,
`NOME` VARCHAR(45) NOT NULL ,
`ENDERECO` VARCHAR(45) NOT NULL ,
`NUMERO` VARCHAR(45) NOT NULL ,
`BAIRRO` VARCHAR(45) NOT NULL ,
`CEP` VARCHAR(8) NOT NULL ,
`CIDADE` VARCHAR(45) NOT NULL ,
`ESTADO` VARCHAR(2) NOT NULL ,
PRIMARY KEY (`CNPJ`) )
-- Criação da Tabela `INSIGHT`.`APARELHO`
CREATE TABLE IF NOT EXISTS `INSIGHT`.`APARELHO` (
`IMEI` INT NOT NULL ,
`MODELO` VARCHAR(45) NOT NULL ,
`OPERADORA` VARCHAR(45),
`SERIAL` VARCHAR(45) NOT NULL ,
`NOTA_FISCAL` VARCHAR(45) NOT NULL ,
`DATA_COMPRA` DATE NOT NULL ,
`DATA_GARANTIA` DATE NOT NULL ,
`CLIENTE_CPF` INT(11) NOT NULL ,
`FABRICANTE_ID` INT NOT NULL ,
PRIMARY KEY (`IMEI`) ,
INDEX `fk_APARELHO_CLIENTE` (`CLIENTE_CPF` ASC) ,
INDEX `fk_APARELHO_FABRICANTE1` (`FABRICANTE_ID` ASC) ,
CONSTRAINT `fk_APARELHO_CLIENTE`
FOREIGN KEY (`CLIENTE_CPF` )
REFERENCES `INSIGHT`.`CLIENTE` (`CPF` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_APARELHO_FABRICANTE1`
FOREIGN KEY (`FABRICANTE_ID` )
REFERENCES `INSIGHT`.`FABRICANTE` (`CNPJ` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
-- Criação da Tabela `INSIGHT`.`FUNCIONARIO`
CREATE TABLE IF NOT EXISTS `INSIGHT`.`FUNCIONARIO` (
`CPF` INT NOT NULL ,
`NOME` VARCHAR(45) NOT NULL ,
`LOGIN` VARCHAR(12) NOT NULL ,
`SENHA` VARCHAR(8) NOT NULL ,
`ENDERECO` VARCHAR(45) NOT NULL ,
`NUMERO` VARCHAR(45) NOT NULL ,
`BAIRRO` VARCHAR(45) NOT NULL ,
`CEP` VARCHAR(8) NOT NULL ,
`CIDADE` VARCHAR(45) NOT NULL ,
`ESTADO` VARCHAR(2) NOT NULL ,
PRIMARY KEY (`CPF`) )
-- Criação da Tabela `INSIGHT`.`OS`
CREATE TABLE IF NOT EXISTS `INSIGHT`.`OS` (
`NUMERO` INT NOT NULL AUTO_INCREMENT ,
`SITUACAO` VARCHAR(45) NOT NULL ,
`FUNCIONARIO_CPF` INT NOT NULL ,
`APARELHO_IMEI` INT NOT NULL ,
PRIMARY KEY (`NUMERO`) ,
INDEX `fk_OS_FUNCIONARIO1` (`FUNCIONARIO_CPF` ASC) ,
INDEX `fk_OS_APARELHO1` (`APARELHO_IMEI` ASC) ,
CONSTRAINT `fk_OS_FUNCIONARIO1`
FOREIGN KEY (`FUNCIONARIO_CPF` )
REFERENCES `INSIGHT`.`FUNCIONARIO` (`CPF` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_OS_APARELHO1`
FOREIGN KEY (`APARELHO_IMEI` )
REFERENCES `INSIGHT`.`APARELHO` (`IMEI` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
-- Cadastro de Funcionário
INSERT INTO FUNCIONARIO VALUES('75084093020','DENIVAN CAMPOS','DHENNYA10','12345678','R. TOCANTINS','360','CENTRO','77600000','PARAÍSO DO TOCANTINS','TO');
-- Cadastro de Fabricante
INSERT INTO FABRICANTE VALUES('80890975000102','MOTOROLA','AV. MARECHAL DEODORO','4500','CENTRO','64500150','SÃO PAULO','SP');
-- Cadastro de Cliente
INSERT INTO CLIENTE VALUES('00800700621','MARCOS DIAS DA CONCEIÇÃO','AV. BERNARDO SAYÃO','250','CENTRO','7760000','PARAÍSO DO TOCANTINS','TO');
-- Cadastro de Aparelho
INSERT INTO APARELHO VALUES('353264022799360','XOOM','CLARO','0056888633390','0003778','2010-07-20','2011-07-20','00800700621','80890975000102');
-- Cadastro de Ordem de Serviço
INSERT INTO OS VALUES ('','ASSISTÊNCIA_FABRICANTE', 2011-06-01T14:25:10
'75084093020','353264022799360');
-- Atualização de Dados do Funcionário
UPDATE FUNCIONARIO SET ENDERECO='AV. CASTELO BRANCO', NUMERO='500' WHERE CPF='75084093020';
-- Atualização de Dados do Cliente
UPDATE CLIENTE SET ENDERECO='AV. CASTELO BRANCO', NUMERO='500' WHERE CPF='00800700621';
TESTES DE SISTEMA