Skip to content
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

Projeto fit dreams #6

Open
wants to merge 20 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
node_modules/
.expo/
dist/
npm-debug.*
*.jks
*.p8
*.p12
*.key
*.mobileprovision
*.orig.*
web-build/

# macOS
.DS_Store
16 changes: 16 additions & 0 deletions App.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { StatusBar } from 'react-native';
import { NavigationContainer } from '@react-navigation/native';
import Routes from './src/routes';
import { AuthProvider } from './src/contexts/AuthContext';

export default function App() {
return (
<NavigationContainer>
<AuthProvider>
<StatusBar backgroundColor="#26254D" barStyle="light-content" translucent={false} />
<Routes/>
</AuthProvider>
</NavigationContainer>
);
}

70 changes: 5 additions & 65 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,68 +1,8 @@
# Switch Dreams Challenge
Switch Dreams Challenge
Desafio do processo seletivo para vaga de desenvolvedor frontend da Switch Dreams

O desafio proposto visa avaliar suas habilidades com o React Native, sendo isso parte do processo seletivo para vaga de desenvolvedor frontend da Switch Dreams.
- Link do publish do projeto no expo: exp://u.expo.dev/update/e637419a-e54f-4eb2-b842-b26ca6187812

Esperamos que você tenha uma boa noção nos seguintes tópicos:

- HTTP e estrutura básica da web
- Linguagem de programação Javascript
- Framework React Native
- Ferramenta [Expo](https://docs.expo.dev/)
- Consumo de API

Além disso é sempre interessante estar atento aos padrões usuais de qualidade de código.

## Problema

A academia Fit Dreams possui uma grande versatilidade de aulas em seu cronograma, sendo que as atividades variam a cada mês. A Fit Dreams acaba de te contratar para desenvolver o frontend de um sistema que organizará a disponibilidade de cada aula.

As informações das aulas estão disponíveis na API informada via email, assim como seus respectivos endpoints. A partir da API fornecida, deve-se desenvolver em React Native as telas:

- Cadastro de usuário
- Login
- Index de aulas disponíveis
- Show da aula
- Edit da aula

Cada aula contém as informações:

- Nome da aula
- Nome do professor
- Horário
- Dias da semana
- Imagem de capa da aula
- Descrição

## API
Para obter as informações que utilizará no aplicativo utilize a API fornecida:

API: https://gym.switchdreams.com.br/

[:memo: Docs](https://documenter.getpostman.com/view/12265896/Uz59MeAK#57d01a84-2799-4754-a891-7f08936f2a5e)

## Requisitos

Para iniciar o desafio, crie um fork a partir do presente repositório e inicie seu projeto react native nele. Altere o readme com todas as informações que julgar pertinente para o desafio. Para entregar a sua implementação você deve criar uma PR e inserir no readme um link de um vídeo demonstrativo de todas as telas e do fluxo criado para o projeto.


## Avaliação

Avaliaremos as seguintes habilidades

- Nível de conhecimento em Javascript
- Nível de conhecimento em React Native
- Nível de conhecimento em consumo de APIs
- Qualidade do código
- Utilização do github

## Entrega
Deve-se fazer uma [Publish](https://docs.expo.dev/workflow/publishing/#how-to-publish) através do Expo para que o aplicativo seja mais facilmente testado, além de deixar o link no readme de um vídeo demonstrando o aplicativo.

## Diferenciais
- Testes automatizados (para os testes recomenda-se o uso do Jest)
- Linter
- Prototipação das telas no Figma

## Observações
Ao enviar o desafio você declara que a solução implementada foi 100% feita por você, sem violar nenhuma licença de software de terceiros.
- Link figma: https://www.figma.com/file/jrCN0w8U7cQLQU11vJs4Ca/Untitled?node-id=0%3A1&t=KtF1QDEOUnkqgK03-1

- Link do vídeo de demonstração do app: https://www.youtube.com/watch?v=NnTynoeiJBM
43 changes: 43 additions & 0 deletions app.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
{
"expo": {
"name": "front-end-challenge",
"slug": "front-end-challenge",
"version": "1.0.0",
"orientation": "portrait",
"icon": "./assets/icon.png",
"userInterfaceStyle": "light",
"splash": {
"image": "./assets/splash.png",
"resizeMode": "contain",
"backgroundColor": "#ffffff"
},
"updates": {
"fallbackToCacheTimeout": 0,
"url": "https://u.expo.dev/5a20d2bc-c366-4a27-9515-338e827bd955"
},
"assetBundlePatterns": [
"**/*"
],
"ios": {
"supportsTablet": true
},
"android": {
"adaptiveIcon": {
"foregroundImage": "./assets/adaptive-icon.png",
"backgroundColor": "#FFFFFF"
},
"package": "com.mvbc.frontendchallenge"
},
"web": {
"favicon": "./assets/favicon.png"
},
"extra": {
"eas": {
"projectId": "5a20d2bc-c366-4a27-9515-338e827bd955"
}
},
"runtimeVersion": {
"policy": "sdkVersion"
}
}
}
Binary file added assets/adaptive-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/favicon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/splash.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions babel.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module.exports = function(api) {
api.cache(true);
return {
presets: ['babel-preset-expo'],
};
};
30 changes: 30 additions & 0 deletions eas.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"cli": {
"version": ">= 3.4.1"
},
"build": {
"development": {
"developmentClient": true,
"distribution": "internal",
"ios": {
"resourceClass": "m1-medium"
}
},
"preview": {
"distribution": "internal",
"channel": "preview",
"ios": {
"resourceClass": "m1-medium"
}
},
"production": {
"channel": "production",
"ios": {
"resourceClass": "m1-medium"
}
}
},
"submit": {
"production": {}
}
}
Loading