-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RestauranTour Superformula Test - Guilherme Fonseca #17
Open
fonsecguilherme
wants to merge
38
commits into
Superformula:master
Choose a base branch
from
fonsecguilherme:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
First commit
App changes
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Project Documentation 🇺🇸
Overview
This challenge was proposed by the Superformula team, and it’s an application I developed focused on restaurants. The app features two main screens:
Home Page
Restaurant Page
Development Environments
The application supports two distinct environments:
Development Environment (Dev): I created a mocked data json endpoint to avoid exceeding Yelp API’s daily limit. the endpoint can be accessed using link.
Production Environment (Prod): Connects to the official Yelp API endpoint to retrieve real data.
API Key Configuration
To ensure the security of the Yelp API key, I used
dart-define
along with a JSON file containing the key. This file is not included in the Git repository to protect the key from unauthorized access.API Key File Structure
The
api-keys.json
file should follow this structure:Security Considerations
dart-define
and not include the API key file from the Git repository, I protect the key from unauthorized access. The key will not be accessible to end users upon APK decompilation.Project Technical Overview
Technologies and Packages
Dart and Flutter Packages
Key Features and Practices
This combination of packages and practices ensures a robust, maintainable, and testable application architecture.
BLoC
Tests
App Structure
Video
Video
Screenshots
App screenshots are at the end of the file.
Documentação do Projeto 🇧🇷
Visão Geral
Este desafio foi proposto pela equipe Superformula, e trata-se de um aplicativo que foi desenvolvido focado em restaurantes. O aplicativo possui duas telas principais:
Página Inicial
Página do Restaurante
Ambientes de Desenvolvimento
O aplicativo suporta dois ambientes distintos:
Ambiente de Desenvolvimento (Dev): Criei um endpoint JSON de dados simulados para evitar exceder o limite diário da API do Yelp. O endpoint pode ser acessado usando o link.
Ambiente de Produção (Prod): Conecta-se ao endpoint oficial da API do Yelp para recuperar dados reais.
Configuração da Chave API
Para garantir a segurança da chave API do Yelp, usei
dart-define
juntamente com um arquivo JSON contendo a chave. Este arquivo não está incluído no repositório Git para proteger a chave de acesso não autorizado.Estrutura do Arquivo da Chave API
O arquivo
api-keys.json
deve seguir esta estrutura:Considerações de Segurança
dart-define
e não incluindo o arquivo que contém a chave API no repositório Git, proteje a chave de acesso não autorizado. A chave não será acessível aos usuários caso o apk do app seja decompilado.Visão Técnica do Projeto
Tecnologias e Pacotes
Pacotes Dart e Flutter
Principais Recursos e Práticas
Esta combinação de pacotes e práticas garante uma arquitetura de aplicativo robusta, manutenível e testável.
BLoC
Testes
Estrutura do Aplicativo
Vídeo
Vídeo
Screenshots