Especificação de Requisitos
Por: guigui1.9 • 4/12/2024 • Trabalho acadêmico • 1.962 Palavras (8 Páginas) • 16 Visualizações
Especificação de requisitos:
O projeto é uma aplicação web desenvolvida para facilitar o gerenciamento de viagens dos usuários, permitindo a criação, edição e visualização de atividades relacionadas às viagens de forma organizada e eficiente. Seu objetivo é fornecer uma plataforma amigável e acessível tanto para usuários individuais quanto para equipes, ajudando-os a planejar, monitorar e organizar viagens pessoais ou profissionais. A aplicação busca proporcionar uma experiência fluida e intuitiva, utilizando tecnologias modernas para garantir um desempenho otimizado, tanto em dispositivos móveis quanto em desktops.
A criação de viagens é uma das funcionalidades centrais da aplicação. O usuário, pode criar viagens inserindo informações como descrição, data de início e fim. Essas viagens são associadas diretamente ao usuário e, uma vez criadas, são exibidas no painel de controle, onde ele pode acompanhar o status de todas as suas atividades relacionadas às viagens. Caso o usuário tente criar uma viagem sem preencher os campos obrigatórios, o sistema exibirá uma mensagem de erro, solicitando o preenchimento correto das informações.
A aplicação também permite a edição de viagens já existentes. Essa funcionalidade é importante para que os usuários possam ajustar detalhes como a descrição ou as datas, conforme necessário. O sistema está configurado para ser altamente responsivo, garantindo que funcione bem em diferentes dispositivos e tamanhos de tela, permitindo o acesso a qualquer momento e em qualquer lugar.
Outro recurso interessante da aplicação é o envio de notificações, que servem como lembretes para datas importantes da viagem. Essas notificações podem ser enviadas via e-mail do usuário, ajudando-o a manter o controle sobre suas atividades e prazos relacionados às viagens. Embora esse recurso tenha uma prioridade um pouco mais baixa backlog do projeto, ele é considerado importante para melhorar a usabilidade e aumentar o engajamento dos usuários com a plataforma.
A aplicação foi desenvolvida com a preocupação de garantir a segurança dos dados dos usuários, especialmente no que diz respeito à autenticação e autorização. O sistema foi projetado para ser escalável e fácil de manter, utilizando tecnologias modernas e amplamente reconhecidas no mercado.
Os testes de aceitação foram planejados para garantir que todas as funcionalidades principais da aplicação estejam funcionando corretamente antes do lançamento. Para a criação de viagens, os testes garantem que, ao inserir todos os dados corretamente, as viagens são salvas e exibidas no painel de controle. Caso falte algum dado obrigatório, o sistema deve solicitar o preenchimento dos campos necessários.
Além dos requisitos funcionais, que incluem as funcionalidades descritas, a aplicação também segue uma série de requisitos não funcionais. O sistema foi projetado para ser responsivo, garantindo uma experiência de usuário fluida em dispositivos móveis e desktops. A velocidade de resposta do sistema é outro fator importante, com o objetivo de garantir que ações como a criação e edição de viagens sejam realizadas em menos de dois segundos. A segurança
também é uma prioridade, com medidas rigorosas para proteger os dados dos usuários. .
O projeto foi cuidadosamente estruturado para atender às necessidades dos usuários de forma eficaz e eficiente. Todas as funcionalidades foram pensadas para proporcionar uma experiência de uso intuitiva e ágil. O sistema de notificações é exemplo de como a aplicação busca oferecer um serviço completo e útil para seus usuários. O processo de desenvolvimento foi guiado por boas práticas de segurança e desempenho, garantindo que o sistema seja robusto, escalável e de fácil manutenção. Com os testes de aceitação, o projeto está bem posicionado para entregar um produto de alta qualidade, capaz de atender às expectativas dos usuários.
[pic 1]
Projeto arquitetural:
O projeto segue uma arquitetura baseada em componentes, utilizando o padrão MVC (Model-View-Controller) para organizar suas principais funcionalidades. A aplicação é composta por três camadas principais: a camada de apresentação, responsável pelo frontend; a camada de lógica de negócio, que constitui o backend; e a camada de persistência de dados, onde estão armazenadas as informações no banco de dados. Essa divisão visa facilitar o desenvolvimento, manutenção e escalabilidade do sistema, além de permitir uma comunicação clara e eficiente entre as diferentes partes da aplicação por meio de uma API REST. A interface do usuário, construída com HTML, CSS, Tailwind CSS e JavaScript/TypeScript, é responsável por toda a interação do usuário com a aplicação, renderizando páginas e componentes visuais que permitem a criação e gerenciamento de viagens. Ela se comunica com o backend através de requisições HTTP, enviando e recebendo dados para exibir as informações e realizar as funcionalidades esperadas.
O backend, implementado com Node.js e utilizando o framework Express.js, gerencia toda a lógica de negócio da aplicação. É o controlador das requisições feitas pela interface do usuário, processando as informações e interagindo com o banco de dados para armazenar ou recuperar dados das viagens e dos usuários. O banco de dados, por sua vez, é o componente responsável por armazenar de forma persistente todas as informações geradas pela aplicação. Nele, são mantidos os dados dos usuários, suas viagens, categorias e notificações. A escolha de um banco de dados relacional, como PostgreSQL, garante a integridade e organização dos dados, além de permitir a execução de consultas complexas para recuperar informações de maneira eficiente.
A API REST atua como a interface de comunicação entre o frontend e o backend. Cada funcionalidade oferecida pela aplicação, como a criação, edição ou exclusão de viagens, é implementada como uma rota da API. Através dessas rotas, o frontend envia dados ao backend que, por sua vez, processa as informações e responde com o resultado das operações. Esse modelo facilita a separação de responsabilidades e permite que o frontend e o backend evoluam de maneira independente, sem a necessidade de alterar diretamente o código de cada camada.
Na modelagem do sistema, classes importantes foram definidas para gerenciar os dados e operações principais da aplicação. A classe Viagem armazena as informações de cada viagem criada
pelo usuário, incluindo atributos como descrição, data de início, data de fim, prioridade e categoria associada. O método criarViagem permite que o usuário adicione uma nova viagem, enquanto os métodos editarViagem permite modificar viagens já existentes. A classe Notificacao gerencia o envio de lembretes automáticos aos usuários sobre prazos importantes das viagens, garantindo que eles mantenham suas atividades relacionadas à viagem em dia.
...