Aplicação desenvolvida como desafio para a seleção de desenvolvedor na Defensoria Pública do Piauí.
- Descrição completa do sistema
- Tecnologias utilizadas
- Modelagem da aplicação
- Pré-requisitos
- Instalação
- Funcionalidades
- Screenshots
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.
- - Linguagem de programação utilizada no desenvolvimento Front-end.
- - Framework utilizado no desenvolvimento da aplicação web.
- - Linguagem de programação utilizada no desenvolvimento Back-end.
- - Framework utilizado no desenvolvimento da REST API.
- - Toolkit utilizado junto do Django para facilitar a criação da REST API.
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.
O desenvolvimento dessa aplicação utiliza como base as seguintes tecnologias e versões apresentadas abaixo.
- Angular CLI: 12.2.5
- Node: 14.17.6
- Package Manager: npm 6.14.15
- Python 3.6
- Django 3.2.6
- git version 2.17.1
# 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
- 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
- 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
- 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