Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
GuilhermePalma committed Jan 26, 2022
1 parent 916d342 commit 8aa1b83
Showing 1 changed file with 107 additions and 59 deletions.
166 changes: 107 additions & 59 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,115 +1,160 @@
<h1 align="center" id="title">Hello People</h1>

<h3 align="center">Um "Hello" na Linguagem Local de Acordo com o IP do Usuario</h3>
<h3 align="center">Um "Hello" em Diversos Idiomas para o Usuario</h3>

<p align="center" id="icons">
<a href="#icons">
<img alt="GitHub language count" src="https://img.shields.io/github/languages/count/guilhermePalma/Hello_People?color=2304D361">
<img alt="Linguagens de Programação Utilizadas" src="https://img.shields.io/github/languages/count/guilhermePalma/Hello_People?color=2304D361">
</a>

<a href="https://github.com/GuilhermeCallegari/Maquiagem">
<img alt="Repository size" src="https://img.shields.io/github/repo-size/guilhermePalma/Hello_People">
<img alt="Tamanho do Repositorio" src="https://img.shields.io/github/repo-size/guilhermePalma/Hello_People">
</a>

<a href="https://github.com/GuilhermeCallegari/Maquiagem/commits/main">
<img alt="GitHub last commit" src="https://img.shields.io/github/last-commit/guilhermePalma/Hello_People">
<img alt="Utlimo Commit" src="https://img.shields.io/github/last-commit/guilhermePalma/Hello_People">
</a>

<a href="LICENSE">
<img alt="License" src="https://img.shields.io/github/license/guilhermePalma/Hello_People">
<img alt="Licença do Projeto" src="https://img.shields.io/github/license/guilhermePalma/Hello_People">
</a>
</p>

<h4 align="center">🚀 Finalizado 🚀</h4>

<!-- TODO: Video do APP Funcionando -->

Tabela de conteúdos
Tabela de Conteúdos
=================
<!--ts-->
* [Sobre o projeto](#-sobre-o-projeto)
* [Funcionalidades](#funcionalidades)
* [Layout](#-layout)
* [Mobile](#mobile)
* [Como executar o projeto](#-como-executar-o-projeto)
* [Pré-requisitos](#pré-requisitos)
* [Tecnologias](#-tecnologias)
* [Contribuidores](#-contribuidores)
* [Creditos](#creditos)
* [Como contribuir no projeto](#-como-contribuir-no-projeto)
<!--te-->

- [Sobre o projeto](#-sobre-o-projeto)
- [Funcionalidades](#funcionalidades)
- [Como executar o projeto](#-como-executar-o-projeto)
- [Pré-requisitos](#pré-requisitos)
- [Baixando o Projeto](#-baixando-o-projeto)
- [Instalando o APP](#instalando-o-app)
- [Tecnologias e Informações](#-tecnologias-e-informações)
- [Estrutura](#estrutura)
- [Explicação do APP](#explicação-do-app)
- [Pontos Desenvolvidos](#pontos-desenvolvidos)
- [Contribuidores](#-contribuidores)
- [Referencias](#referencias)
- [Como contribuir no projeto](#-como-contribuir-no-projeto)

# 💻 Sobre o projeto

**Hello People** - Projeto desenvolvido para utilizar diferentes APIs para obter informações do IP e a partir dele, obter o texto "Hello" na Linguagem Local
**Hello People** - Projeto Desenvolvido para Obter um "Olá" no Idioma Local do Usuario (Pelo seu IP) ou em um dos diversos Idiomas Disponiveis. Tambem será exibido **Informações Publicas** sobre o IP do Usuario.

:books: Inicialmente, esse APP realiza uma busca do IP do Usuario, obtendo a Cidade, Estado, País e outros **Dados Publicos** desse IP. Após essa busca, por padrão, é obtido um "Ola" no Idioma Local do Usuario.

:books: Esse aplicativo busca dados em uma API de IP, recuperando o IP, Cidade, Região, Nome do País e Fuso Horário
Esse Projeto utilizou 3 APIs no seu Desenvolvimento, uma Biblioteca (Material Design) de Widgets e uma Organização dos Diretorios, de forma que os Itens semelhantes estivessem no mesmo Escopo. Para mais Informações, acesse o Item [Tecnologias](#-tecnologias), e veja os **Pontos de Aprendizado**

O Projeto utilizou 3 APIs. Para ver sua documentação, consulte o Item [Tecnologias](#-tecnologias)
> Obs: Esse APP **NÃO ARMAZENA** nenhum Dado de Uso (Nome, Senha, IP, Dados do Dispositivo, etc). **Nenhum** dado inserido ou obtido no APP é **salvo** de forma externa

## Funcionalidades
- [X] **Login**
- [X] Inputs de Nome e Senha
- [X] Ocultação da Senha
- [X] Validação no Nome e Senha (Mensagemd e Erro e Mudança de Cor)
- [X] Validação no Nome e Senha (Mensagem e Erro e Mudança de Cor)
- [X] Botão Login e Logout
- [X] Botão Logout Limpando Reiniciando os Inputs
- [X] **"Hello"**
- [X] Ao Completar um novo Login: `<hello-in-native-language> <user-name> you have successfully logged in!`
- [X] Ao Realizar um Login Novamente: `Have a great day <user-name>!`
- [X] **Extras**
- [X] Usuario Escolher o Idioma
- [X] Usuario Escolher o Idioma
- [X] Informações Adicionais (Endereço de IP, Cidade, Região, Nome do País e Fuso Horário)


## 🎨 Layout

### Mobile

**Imagens** das Telas do APP - [Tema Normal](printscreen/LightMode)


## 🚀 Como executar o projeto

Este projeto é divido em seis principais partes:
1. [Layout das Telas](app/src/main/res/layout/)
2. [Configurações das Telas](app/src/main/java/com/example/hellopeople/activities)
4. [Funções e Classes do Sistema](app/src/main/java/com/example/hellopeople/model)

### Pré-requisitos

Antes de começar, você vai precisar ter instalado em sua máquina:
- [Git](https://git-scm.com) → Atualizações e Versionamento no Codigo
- [Git](https://git-scm.com) → Atualizações e Versionamento no Codigo
- [Android Studio](https://developer.android.com/studio/) → Editor da Google voltado ao Desenvolvimento Android

#### 📥 Baixando o Projeto
### 📥 Baixando o Projeto

Execute os Comandos abaixo no [Git Bash](https://git-scm.com). Dessa Forma, é possivel acessar o Projetos e seus Diretorios com mais Facilidade

```bash

# Clone este repositório
$ https://github.com/GuilhermePalma/Hello_People.git
https://github.com/GuilhermePalma/Hello_People.git

# Acesse a pasta do projeto no terminal/cmd
$ cd Hello_People
cd Hello_People

# Abra o Android Studio
```

### Instalando o APP

Caso deseje apenas Instalar o APP para poder interagir com ele, acesse a aba [Releases](https://github.com/GuilhermePalma/Hello_People/releases).

Após acessar, Selecione a Versão mais Recente, deslize a tela até a parte inferior e baixe o arquivo anexado como `app-release.apk`.

Pegue seu dispositivo mobile, abra o aplicativo `Configurações`, selecione o Item `Segurnaça` e ative o Item `Permitir Fontes Desconhecidas`

Com um Cabo USB, conecte seu dispositivo mobile e mova o arquivo **`app-release.apk`** para alguma pasta do Dispositivo. Em seu aparelho, utilize algum aplicativo para acessar as pastas (como por exemplo, o app `Meus Arquivos`), navegue até o local onde o arquivo **`app-release.apk`** se encontrea e clique nele para começar a **Instalação** no Aparelho.

Durante a Instalação, seu dispositivo pode exibir alguns avisos informando que o APP vem de um Fonte Desconhecida e fora da PlayStore. Entretanto, o APP não desempenha nenhum risco ao seu dispositivo, por isso clique em "Instalar" ou "Continuar mesmo assim" ou "Confiar nesse Aplicativo"

> Após a Instalação do APP, é recomendado que desabilite a opção `"Confiar em Fontes Desconecidas"` (3° Paragrafo)

## 🛠 Tecnologias e Informações

Para a Construção desse APP, foi utilizada a Linguagem **[Java](https://developer.android.com/docs)**, em conjunto com a IDE da JetBrains, Android Studio.

Para o Versionamento do APP, foi utilizado o [Git](https://git-scm.com) junto com o [GitHub](https://github.com). Para facilitar a manipulação do Git, foi utilizada a Interface Grafica integrada no Android Studio.

Para o Desenvolvimento do APP, foram utilizados os seguintes recursos:
- API: **[Check IP - Obtem o IP do Usuario](http://checkip.amazonaws.com)**
- API: **[IP API - Obtem os Detalhes do IP](http://ip-api.com/json)**
- API: **[Fourton Fish (Project: Hello, Salut!) - Obtem o "Hello" em Diversos Idiomas](https://fourtonfish.com/project/hellosalut-api/)**
- Widgets: **[Material Design - Documentação e Widgets](https://material.io/components/)**

### Estrutura

Este projeto é divido em seis principais partes:
1. [Layout das Telas](app/src/main/res/layout/)
2. [Configurações das Telas](app/src/main/java/com/example/hellopeople/activities)
4. [Classes das Entidades](app/src/main/java/com/example/hellopeople/entity)
5. [Classes de Funcionalidades](app/src/main/java/com/example/hellopeople/utils)

### Explicação do APP

O APP **Hello** é um dos Projetos da Coleção [APP Ideas](https://github.com/florinpop17/app-ideas), que se trata de um repositorio OpenSource (License MIT) com sugestões de Projetos. Essas Sugestões listam os Requisitos (User Stories) que o projeto deve abranger e as possiveis implementações extras. [Clique aqui](https://github.com/florinpop17/app-ideas/blob/master/Projects/1-Beginner/Hello-App.md) para ver os dados desse projeto.

Nesse APP foi desenvolvido um **Formulario** que o Usuario insere o seu **Nome** e uma **Senha** e, caso deseje, pode escolher o **Idioma** da mensagem do "Hello".

Durante a Execução do APP, é utilizado **APIs** em requisições HTTP. Essas APIs tem como o Objetivo obter o "Hello" nos diversos Idioams e os Detalhes do IP. Essas APIs são:
- **[Check IP - Obtem o IP do Usuario](http://checkip.amazonaws.com)**
- **[IP API - Obtem os Detalhes do IP](http://ip-api.com/json)**
- **[Fourton Fish (Project: Hello, Salut!) - Obtem o "Hello" em Diversos Idiomas](https://fourtonfish.com/project/hellosalut-api/)**

## 🛠 Tecnologias
Após clicar no botão **Login**, é feita uma Verificação nos Dados Inseridos. Caso haja algum erro, informa ao usuario. Se não, os Dados são salvos em **SharedPreferences** e inicia-se uma nova Tela exibindo o **"Hello"**. Por padrão, o "Hello" é exibido em um idioma detectado de forma automatica pelo IP do Usuario, entretanto, caso o usuario tenha selecionado algum Idioma especifico, o "Hello" será obtido nesse Idioma.

As seguintes ferramentas foram usadas na construção do projeto:
- **[Java](https://developer.android.com/docs)**
Por se tratar de um projeto mais simples, os dados são salvos de Forma Local em uma SharedPreferences - tendo inclusive, uma classe no APP somente para centraliza-las e controla-las. Dessa forma, uma vez que seja limpo os Dados do APP ou ocorra a Desinstalação do APP, os dados serão perdidos.

#### **Utilitários**
### Pontos Desenvolvidos

- API: **[API - Recuperar o IP](http://checkip.amazonaws.com)**
- API: **[API - Detalhes do IP](http://ip-api.com/json)** → EndPoint: fields
- API: **[API - Hello, Salut!](https://fourtonfish.com/project/hellosalut-api/)** → EndPoint: lang e ip
- Material Design: **[Text Fields](https://material.io/components/text-fields)**, **[Switches](https://material.io/components/switches)**
- Documentação Android: → Extenção: **[ExecutorService - Tarefa Assincrona](https://developer.android.com/reference/java/util/concurrent/ExecutorService)**
- Documentação Android: → Extenção: **[SharedPreferences](https://developer.android.com/training/data-storage/shared-preferences?hl=pt-br)**
- Documentação Android: → Extenção: **[AlertDialog](https://developer.android.com/guide/topics/ui/dialogs?hl=pt-br)**
- [X] Divisão da Responsabilidade dos Itens do Projeto, seguindo o conceito da POO (Programação Orientada a Objetos)
- [X] Utilização da SharedPreferences
- [X] Utilização de uma Classe que centralizava as Operações da SharedPreferences. Mantendo uma maior organização e facilidade para a Manutenabilidade do Sistema
- [X] Chamadas Assincronas
- [X] Utilização do `ExecutorService`, `Callable` e `Future` para a criação e execução de uma nova `Thread` em `Background`
- [X] Exibição dos Resultados no Layout por meio do `runUiThread`
- [X] Manipulação de Variaveis
- [X] Requisições HTTP
- [X] Utilização do Metodo GET
- [X] Verificação do `Status Code` da Requisição
- [X] Formação da URL por meio da Classe `Uri`
- [X] Serialização de JSON
- [X] Verificação de Itens Nulos
- [X] Normalização de Caracteres HTML


## 👨‍💻 Contribuidores
Expand All @@ -123,16 +168,19 @@ As seguintes ferramentas foram usadas na construção do projeto:
</table>


## Creditos
[Florinpop17: app-ideas](https://github.com/florinpop17/app-ideas)[Projeto "Hello"](https://github.com/florinpop17/app-ideas/blob/master/Projects/1-Beginner/Hello-App.md)
## Referencias
[Florinpop17: APP-Ideas](https://github.com/florinpop17/app-ideas)[Projeto "Hello"](https://github.com/florinpop17/app-ideas/blob/master/Projects/1-Beginner/Hello-App.md)


## 💪 Como contribuir no projeto

1. Faça um **fork** do projeto.
2. Crie uma nova branch com as suas alterações: `git checkout -b my-feature`
3. Salve as alterações e crie uma mensagem de commit contando o que você fez: `git commit -m "feature: My new feature"`
4. Envie as suas alterações: `git push origin my-feature`
2. Crie uma **nova branch** com as suas alterações: `git checkout -b my-feature`
3. Realize e Salve suas alterações, colocando uma Mensagem Contando o que Você Fez: `git commit -m "Feature: Update XXX"`
4. Envie as suas Alterações: `git push origin my-feature`
5. Entre no **seu Branch** no GitHub e clique em `Contribute` e em Seguida em `Open Pull Request`
6. Informe em `base` **o Branch `main` desse Repositorio** e em `compare` o **seu Branch de Alterações**
7. Insira um **Titulo** e escreva um **Mensagem** indicando o que foi feito nessa sua **Branch**


---

0 comments on commit 8aa1b83

Please sign in to comment.