Skip to content

A website for animal adoption, developed entirely using software engineering techniques following agile methodology, featuring extensive documentation.

Notifications You must be signed in to change notification settings

GustavoZiel/PET.Amigos---complete-web-application

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PET.Amigos - Adoção de Animais

Índice

Sobre o Projeto

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.

Integrantes

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

Responsáveis

SSC0130 - Engenharia de Software (2024)

  • Rosana Teresinha Vaccare Braga
  • Simone do Rocio Senger de Souza

SCC0219 - Introdução ao Desenvolvimento Web (2024)

  • Bruna Carolina Rodrigues da Cunha

Cliente

Identificação do Cliente

Reuniões e Comunicação

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.

Feedback e Validação

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.

Metodologia Utilizada

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.

Sprints

  • 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

Ferramentas Utilizadas

Engenharia de Software

  • 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.

Desenvolvimento Web

  • 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.

Forma de Utilização

Requisitos

  • 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

Instalação

  1. Clone este repositório:

    git clone https://github.com/usuario/repo.git
  2. Crie um arquivo .enve 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'
  3. Navegue até o diretório onde estão os códigos do projeto:

    cd code
  4. Instale todas as dependências para o projeto:

    npm install
  5. Inicie a aplicação:

    node app.js

A aplicação será iniciada e poderá ser acessada acessando o endereço http://localhost:3000/

Overview das Funcionalidades do Sistema

  • 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.

Documentação Estendida

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.

Screenshots da Aplicação

Home

alt text

Login / Register

alt text alt text

Search

Não Logado

alt text

Logado como Usuário

alt text

ONG

Não logado

alt text

Logado

alt text

Editar Perfil

alt text

Adicionar Pet

alt text

User

alt text

Editar Perfil

alt text

Pet

Visão Usuário

alt text

Visão ONG Protetora

alt text

Editar Pet

alt text

Conclusões e Aprendizados

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.

About

A website for animal adoption, developed entirely using software engineering techniques following agile methodology, featuring extensive documentation.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published