- PET.Amigos - Adoção de Animais
Este projeto foi desenvolvido como parte das disciplinas de Engenharia de Software e Introdução ao Desenvolvimento Web.
O objetivo foi criar um sistema de tema social para um cliente externo à USP. Durante o desenvolvimento, seguimos metodologias ágeis e utilizamos diversas ferramentas para organização e comunicação.
Obtivemos, como resultado final, uma aplicação web completa dedicada à adoção de animais. Esta plataforma permite que usuários e ONGs interajam em um portal onde pets são catalogados, exibidos, e têm a possibilidade de serem adotados e apreciados pelos usuários.
A aplicação não só facilita o processo de adoção, mas também promove a conscientização sobre a causa animal, fornecendo uma interface intuitiva e acessível para todos os envolvidos.
Universidade de São Paulo (USP) - Instituto de Ciências Matemáticas e de Computação (ICMC) Ciências da Computação - 1º Semestre de 2024
- Artur De Vlieger Lima - [email protected]
- Catarina Moreira Lima - [email protected]
- Enzo Nunes Sedenho - [email protected]
- Gabriel da Costa Merlin - [email protected]
- Gustavo Gabriel Ribeiro - [email protected]
- Pedro Augusto Monteiro Delgado - [email protected]
- Rosana Teresinha Vaccare Braga
- Simone do Rocio Senger de Souza
- Bruna Carolina Rodrigues da Cunha
- Nome da Cliente: Tuka Nyko
- Contatos:
- Email: [email protected]
- Instagram: Acãochego Da Tuka
- Facebook: Acãochego Da Tuka
Durante o desenvolvimento do projeto, mantivemos uma comunicação contínua e transparente com o cliente para garantir que suas necessidades e expectativas fossem atendidas. Abaixo estão algumas das atividades realizadas:
-
Reuniões periódicas: Realizamos reuniões com o cliente via Google Meet onde discutimos o progresso do projeto, coletamos feedback e ajustamos os requisitos conforme necessário.
-
Documentação de Requisitos: No início do projeto, documentamos detalhadamente os requisitos do cliente, garantindo um entendimento claro e compartilhado das funcionalidades esperadas.
-
Prototipagem e Demonstrações: Desenvolvemos protótipos e realizamos demonstrações das funcionalidades implementadas para o cliente, permitindo ajustes rápidos e eficazes.
A participação ativa do cliente foi fundamental para o sucesso do projeto. O feedback contínuo fornecido durante as reuniões e interações nos ajudou a alinhar o desenvolvimento com as expectativas do cliente e a corrigir possíveis desvios antecipadamente.
Adotamos o método ágil Scrum para gerenciar o desenvolvimento do projeto. O trabalho foi dividido em sprints, com revisões regulares e incrementos contínuos do sistema.
- Sprint 1: Planejamento, organização do ambiente de desenvolvimento e levantamento de requisitos
- Sprint 2: Design do sistema e elaboração dos protótipos de baixa, média e alta fidelidade
- Sprint 3: Desenvolvimento do Front-end do MVP, e coleta de feedbacks com a cliente
- Sprint 4: Aprimoramento do MVP, desenvolvimento Back-end
- Sprint 5: Implementação de novas funcionalidades, incorporação Neon e MiniO
- Sprint 6: Integração Front-end e Back-end, release da versão estável
- Sprint 7: Ajustes finais e apresentação à cliente
- Trello: Para organização das tarefas e documentação do andamento do projeto.
- Figma: Para elaboração dos protótipos de baixa e média fidelidade.
- Discord: Para comunicação diária e interação com os responsáveis.
- GitHub/Google Drive: Para armazenamento dos entregáveis e controle de versões.
- Google Meet: Para reuniões periódicas com a cliente.
- Front-End: HTML, CSS, JavaScript
- Frameworks: Bootstrap
- Back-End: Node.js
- Frameworks: Express.js
- Banco de Dados: PostgreSQL
- Integração: API RESTful para comunicação entre front-end e back-end.
- Serviço de armazenamento de dados remoto (Neon) ou local com suporte para PostgreSQL
- Serviço de armazenamento de fotos remoto (Minio)
- Navegador Web (Google Chrome, Mozilla Firefox, etc.)
- Acesso à internet
-
Clone este repositório:
git clone https://github.com/usuario/repo.git
-
Crie um arquivo
.env
e configure as variáveis do ambiente pelo arquivo:# O endereço do host do banco de dados PostgreSQL, indicando onde o banco de dados está sendo executado. PGHOST='endereco_host' # O nome do banco de dados ao qual você deseja se conectar. PGDATABASE='name_host' # O nome de usuário utilizado para autenticar a conexão com o banco de dados. PGUSER='name_user' # A senha associada ao nome de usuário especificado em PGUSER. PGPASSWORD='password_user' # A chave de acesso para o serviço de armazenamento de fotos remoto (Minio). ACCESS_KEY ='acess_key' # A chave secreta que funciona em conjunto com a ACCESS_KEY para fornecer acesso seguro ao serviço. SECRET_KEY ='secret_key' # Segredo utilizado para fins de autenticação (geração de tokens JWT). AUTH_SECRET ='auth_key'
-
Navegue até o diretório onde estão os códigos do projeto:
cd code
-
Instale todas as dependências para o projeto:
npm install
-
Inicie a aplicação:
node app.js
A aplicação será iniciada e poderá ser acessada acessando o endereço http://localhost:3000/
-
Cadastro de Usuários
- Permite que novos usuários se cadastrem no sistema, fornecendo informações como nome, email, senha, entre outros detalhes pessoais.
-
Cadastro de Pets
- ONGs podem cadastrar novos animais disponíveis para adoção, incluindo detalhes como nome, idade, raça, tamanho, sexo, fotos e comentários adicionais.
-
Upload de Fotos
- Possibilita o upload de imagens dos animais pelas ONGs, melhorando a apresentação dos pets no sistema.
-
Perfil do Usuário
- Os usuários podem gerenciar e atualizar suas informações pessoais, incluindo preferências e dados de contato.
-
Perfil da ONG
- As ONGs podem gerenciar suas informações e os animais que estão sob sua responsabilidade, incluindo a atualização de dados dos pets e informações de contato da ONG.
-
Curtir Pets
- Permite que os usuários curtam os perfis de pets que estão interessados, salvando esses pets em uma lista dentro de seus perfis para possível visualização posterior
-
Processo de Adoção
- Facilita a comunicação entre usuários interessados e ONGs para iniciar o processo de adoção de um animal.
-
Listagem de Pets
- Permite que os usuários visualizem a lista de animais disponíveis para adoção
-
Sistema de Busca
- Permite aos usuários realizar buscas específicas por animais, utilizando critérios como espécie, raça, tamanho, porte e temperamento.
-
Autenticação
- Garante que somente usuários registrados possam acessar certas funcionalidades, utilizando login e senha para verificação.
Diversos documentos foram desenvolvidos para o alinhamento com as necessidades da Engenharia de Software ao longo do projeto. Acesse abaixo para mais detalhes:
- Plano de Projeto: Detalhes sobre o planejamento e execução do projeto.
- Requisitos: Especificações funcionais e não funcionais do sistema.
- Protótipos: Design visual e interativo inicial do sistema.
- Modelagem: Diagramas e modelos que representam a estrutura do sistema.
- Casos de Uso: Descrição detalhada de como os usuários interagem com o sistema.
- Casos de Teste: Conjunto de cenários e procedimentos para testar o sistema.
Através deste projeto, colocamos em prática diversas técnicas de engenharia de software, desde as primeiras entrevistas com o cliente para obter requisitos, estórias e funcionalidades do sistema, até a distribuição de tarefas em sprints conforme a metodologia ágil. Experiênciamos diretamente como uma organização eficiente e comunicação eficaz entre os membros da equipe são essenciais para o sucesso a longo prazo do projeto.
Desenvolvemos uma aplicação web totalmente funcional dedicada a uma causa social importante, explorando tanto o desenvolvimento backend quanto frontend com ferramentas diversas e interessantes. Esta experiência nos permitiu não apenas expandir nossos conhecimentos técnicos, mas também aprimorar nossas habilidades colaborativas.
Agradecemos às professoras responsáveis por essa oportunidade, e pelas aulas e conhecimentos adquiridos.