Animal Finder, sistema para publicar e encontrar um animal perdido.
- Na Home já irá ser listado todos os animais perdidos
- Caso você encontre um animal, você poderá clicar em "Encontrei!" e informar seus dados de contato para que o dono possa contatar você
- Se seu animal se perdeu de você, "Cadastre-se" e informe os dados de seu animal para que ele seja exibido na listagem.
- Todo comunicado aparecerá quando você clicar no botão Editar.
- Caso queira cancelar sua conta, basta ir em "Perfil" e clicar em "Cancelar".
Ubuntu 20.04
Install: Yarn, NodeJs, Npm, SQLite3
ruby: versão 2.7.0
sudo apt-get install ruby-full
Rails 6.1.3.2
gem install rails
Ruby Bundler
sudo apt install ruby-bundler
git clone https://github.com/otavioarrudasantos/animalfinder.git
bundle install
rails db:migrate
rails webpacker:install
- Rodar servidor de desenvolvimento:
rails s
- Acessar no browser
http://127.0.0.1:3000/
Além da instalação padrão do rails, foram instalados os pacotes (todos instalados automaticamente quando o comando bundle install
é executado):
gem 'devise', '~> 4.8'
para autenticação, cadastro e gerenciamento de usuáriogem 'will_paginate', '~> 3.1'
para realizar a paginação da lista de animais.
pet.rb
: Dados do animalseen.rb
: Dados dos comunicadosuser.rb
: Dados do usuário
OBS: Para armazenar as fotos dos animais, foi utilizado ActiveStorage Active Storage Doc
API Rest retorna uma lista json de todos os animais cadastrados
app/controllers/api/v1/pet_controller.rb
GET /api/v1/pet
- Pet#index: Lista os animais.
GET /api/v1/pet/:id
- Pet#show: Retorna um animal específico e o link de sua foto.
-
Página inicial pública
app/controllers/home_controller.rb
- Home#index: Retorna os animais
- Views
- partial
_header.html.erb
e_nosession_header.html.erb
: NavBar index.html.erb
: Home Page. Lista de animais perdidos
- partial
-
Usuário
app/views/devise/registrations/new.html.erb
: Cadastro de Novo Usuárioapp/views/devise/registrations/edit.html.erb
: Editar perfil do usuário
-
Pets
app/views/pets/_form.html.erb
: partial utilizado para o formulário.app/controllers/pets_controller.rb
- Pets#index: retorna os animais cadastrados pelo usuário logado.
app/views/pets/index.html.erb
- Pets#new: Formulário para cadastro do animal
- app/views/pets/new.html.erb
- Pets#show: Exibe detalhes do animal. Habilita botão para editar
app/views/pets/show.html.erb
- Pets#edit: Exibe formulário para editar informações e também a lista de comunicados
app/views/pets/edit.html.erb
- Pets#create: Cadastra o animal.
- Pets#update: Atualiza o animal.
- Pets#destroy: Deleta
- Pets#index: retorna os animais cadastrados pelo usuário logado.
-
Seen (Comunicados)
/app/views/seen/_form.html.erb
: Partial utilizado para o formulário- Seen#new: Formulário para cadastrar o comunicado. Retorna informações do animal
app/views/seen/new.html.erb
- Seen#create: Cria o Comunicado
- Seen#destroy: Deleta o Comunicado. Possui uma lógica if. Enquanto houver um comunicado, o status fica como "comunicado", a não ser que o usuário altere pelo formulário.
Desenvolvido utilizando Ubuntu 20.10
Por alguma razão ocorreu este erro:
[WARNING] Could not load command "rails/commands/application/application_command". Error: superclass mismatch for class Command.
Foi resolvido desinstalando o pacote ruby-thor e instalando novamente:
sudo dpkg -r --force-depends ruby-thor
gem install thor