PedroHenriqueDevBR / PhotoFriends-Challenge

Aplicação desenvolvida como desafio de desenvolvedor da defensoria pública do Piauí.

Home Page:http://amigogaleria.web.app/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Desafio - Galeria de amigos

Aplicação desenvolvida como desafio para a seleção de desenvolvedor na Defensoria Pública do Piauí.

Developer GitHub top language Front-emd Back-end


📝 Visão Geral


💬 Descrição

Galeria de Amigos

Você recebeu um pedido de um amigo para criar uma galeria para seu casamento onde seus amigos poderão fazer upload de suas fotos e ele terá uma galeria unificada com todas as fotos de amigos. Ele deseja aprovar as fotos antes de ficarem visíveis para todos. Ele e sua esposa devem ser os únicos capazes de aprovar novas fotos. Os usuários devem ser capazes de curtir fotos e adicionar comentários às fotos. Por favor, crie um site que atenda às suas necessidades. Você deve usar python no back-end, com qualquer framework de sua escolha, bem como para o front-end.

Detalhes da solução

  • A resolução deve ser uma aplicação web responsiva.
  • Deve-se fornecer todas as informações necessárias para testar a aplicação.
  • A aplicação precisa rodar.
  • O código precisa ser hospedado em seu repositório de código preferido.
  • Você precisa hospedar a aplicação em um servidor de sua escolha e nos fornecer um link para acessar e usar o aplicativo.
  • Você deve fornecer evidências suficientes de que sua solução está completa, indicando, no mínimo, que ela funciona corretamente em relação aos requisitos.

🚀 Tecnologias utilizadas

  • Dart - Linguagem de programação utilizada no desenvolvimento Front-end.
  • Flutter - Framework utilizado no desenvolvimento da aplicação web.
  • Python - Linguagem de programação utilizada no desenvolvimento Back-end.
  • Python - Framework utilizado no desenvolvimento da REST API.
  • DRF - Toolkit utilizado junto do Django para facilitar a criação da REST API.

💡 Modelagem da aplicação

Esta seção irá mostrar como a aplicação foi modelada para que pudesse atender todas as necessidades propostas da descrição do desafio.

A modelagem foi criada antes de iniciar o desenvolvimento da aplicação, com o objetivo de guiar o desenvolvimento e evitar erros que pudessem atrapalhar o andamento do desenvolvimento.


Modelagem do banco de dados


Protótipo da aplicação


⚠️ Pré-requisitos

O desenvolvimento dessa aplicação utiliza como base as seguintes tecnologias e versões apresentadas abaixo.

  1. Angular CLI: 12.2.5
  2. Node: 14.17.6
  3. Package Manager: npm 6.14.15
  4. Python 3.6
  5. Django 3.2.6
  6. git version 2.17.1

ℹ️ Instalação

# Baixe o projeto no seu computador
git clone https://github.com/PedroHenriqueDevBR/PhotoFriends-Challenge.git
cd PhotoFriends-Challenge/

# Crie uma máquina virtual para o back-end
cd backend/gallery/
virtualenv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -r requirements.txt

# Rode o servidor localmente
python manage.py migrate
python manage.py runserver

# Mude para o diretório da aplicação frontend
cd ../../frontend/gallery-frontend/

# Rode a aplicação no seu computador com os comandos
npm install
npm run start

✔️ Funcionalidades

Funcionalidades

  • Registro de usuário
  • Autenticação de usuário
  • Enviar convide para cônjuge
  • Apresentar os pedidos de cônjuges recebidos
  • Aceitar ou rejeitar convite de cônjuge
  • Convidar amigo com base no username
  • Apresentar os pedidos de amizades recebidos
  • Aceitar ou recusar pedido de amizade
  • Apresentar os meus amigos
  • Criar Book
  • Listar os meus Books (books do(a) cônjuge inclusos)
  • Adicionar imagens ao Book
  • Listar todos os Books dos meus amigos
  • Acessar perfil de um amigo
  • Acessar Book de um amigo
  • Adicionar Imagem no Book do amigo
  • Aceitar ou recusar imagem adicionada por um amigo (criador(ar) ou cônjuge)
  • Comentar a foto de um amigo
  • Listar todos os comentários de uma imagem
  • Remover o comentário (se feito por mim ou pelo dono da foto)
  • Curtir a foto de um amigo
  • Apresentar a quantidade de curtidas recebidas

Backend (Finalizadas)

  • Registro de usuário
  • Autenticação de usuário
  • Enviar convide para cônjuge
  • Apresentar os pedidos de cônjuges recebidos
  • Aceitar ou rejeitar convite de cônjuge
  • Convidar amigo com base no username
  • Apresentar os pedidos de amizades recebidos
  • Aceitar ou recusar pedido de amizade
  • Apresentar os meus amigos
  • Criar Book
  • Listar os meus Books (books do(a) cônjuge inclusos)
  • Adicionar imagens ao Book
  • Listar todos os Books dos meus amigos
  • Acessar perfil de um amigo
  • Acessar Book de um amigo
  • Adicionar Imagem no Book do amigo
  • Aceitar ou recusar imagem adicionada por um amigo (criador(ar) ou cônjuge)
  • Comentar a foto de um amigo
  • Listar todos os comentários de uma imagem
  • Remover o comentário (se feito por mim ou pelo dono da foto)
  • Curtir a foto de um amigo
  • Apresentar a quantidade de curtidas recebidas
  • Deploy da aplicação backend

Frontend (Finalizadas)

  • Registro de usuário
  • Autenticação de usuário
  • Enviar convide para cônjuge
  • Apresentar os pedidos de cônjuges recebidos
  • Aceitar ou rejeitar convite de cônjuge
  • Convidar amigo com base no username
  • Apresentar os pedidos de amizades recebidos
  • Aceitar ou recusar pedido de amizade
  • Apresentar os meus amigos
  • Criar Book
  • Listar os meus Books (books do(a) cônjuge inclusos)
  • Adicionar imagens ao Book
  • Listar todos os Books dos meus amigos
  • Acessar perfil de um amigo
  • Acessar Book de um amigo
  • Adicionar Imagem no Book do amigo
  • Aceitar ou recusar imagem adicionada por um amigo (criador(ar) ou cônjuge)
  • Comentar a foto de um amigo
  • Listar todos os comentários de uma imagem
  • Remover o comentário (se feito por mim ou pelo dono da foto)
  • Curtir a foto de um amigo
  • Apresentar a quantidade de curtidas recebidas
  • Deploy da aplicação frontend

✔️ Funcionalidades

Login e Cadastro

Menu

Timeline

Minhas galerias

Lista de amigos

About

Aplicação desenvolvida como desafio de desenvolvedor da defensoria pública do Piauí.

http://amigogaleria.web.app/


Languages

Language:TypeScript 37.0%Language:Python 34.6%Language:HTML 17.8%Language:CSS 9.5%Language:JavaScript 1.2%