Leve a felicidade para casa
15 |Busque ONGs e encontre seu melhor amigo.
16 |├── .vscode
└── settings.json
├── src
├── react-app-env.d.ts
├── images
│ ├── cat1.png
│ ├── cat2.png
│ ├── dog1.png
│ ├── logow.png
│ ├── background.png
│ └── map-marker.png
├── services
│ └── api.ts
├── index.tsx
├── App.tsx
├── styles
│ ├── global.css
│ ├── components
│ │ └── sidebar.css
│ └── pages
│ │ ├── landing.css
│ │ ├── shelters-map.css
│ │ ├── create-shelter.css
│ │ └── shelter.css
├── utils
│ └── mapIcon.ts
├── components
│ └── Sidebar.tsx
├── routes.tsx
└── screens
│ ├── Landing.tsx
│ ├── SheltersMap.tsx
│ ├── Shelter.tsx
│ └── CreateShelter.tsx
├── .gitignore
├── public
└── index.html
├── tsconfig.json
├── package.json
└── README.md
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "git.ignoreLimitWarning": true
3 | }
--------------------------------------------------------------------------------
/src/react-app-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
Busque ONGs e encontre seu melhor amigo.
16 |Carregando...
; 45 | } 46 | 47 | return ( 48 |{shelter.about}
74 | 75 |{shelter.instructions}
103 | 104 |
4 | A Next Level Week é um evento online gratuito promovido pela Rocketsat, em que durante 5 dias desenvolvemos uma aplicação completa. Na trilha Omni, a proposta foi criar uma aplicação web e mobile em que lares adotivos podem cadastrar seus endereços e informações para pessoas visitarem.
8 | 9 |Eu decidi mudar a proposta da aplicação, e transformei o Happy em um buscador de abrigos de animais, ajudando a unir pessoas e seus futuros melhores amigos. 10 |
11 | 12 |
Como usar?Repositório FRONTEND. 22 |
Repositório BACKEND. 23 |
Repositório MOBILE.
24 |
25 | ```bash
26 |
27 | $ git clone https://github.com/mjulialobo/happy.git
28 | $ git clone https://github.com/mjulialobo/happy-backend.git
29 | $ git clone https://github.com/mjulialobo/happy-mobile.git
30 |
31 | # entre na pasta do projeto
32 |
33 | $ cd happy
34 |
35 | ```
36 | ### 💻 Rodando o Happy web
37 |
38 | Entre na pasta
39 |
40 | ```bash
41 |
42 | $ cd web
43 |
44 | ```
45 | Instale as dependências
46 |
47 | ```bash
48 |
49 | $ yarn
50 |
51 | # ou, caso use npm
52 |
53 | $ npm install
54 |
55 | ```
56 |
57 | Rode a aplicação
58 |
59 | ```bash
60 |
61 | $ yarn start
62 |
63 | # ou, caso use npm
64 |
65 | $ npm start
66 |
67 | ```
68 |
69 | Caso você tenha uma conta no [mapbox](https://www.mapbox.com/), pode usar seu token para utilizar o mapa da aplicação. No entanto, se você não quiser
70 | ter este trabalho, sem problemas, por padrão já tem um mapa configurado para uso.
71 |
72 | Caso queira, vá para a seção do Mapbox.
73 |
74 | ### 🌐 Rodando o Servidor
75 |
76 | Entre na pasta
77 |
78 | ```bash
79 |
80 | $ cd backend
81 |
82 | ```
83 | Instale as dependências
84 |
85 | ```bash
86 |
87 | $ yarn
88 |
89 | # ou, caso use npm
90 |
91 | $ npm install
92 |
93 | ```
94 |
95 | Rode o servidor
96 |
97 | ```bash
98 |
99 | $ yarn dev
100 |
101 | # ou, caso use npm
102 |
103 | $ npm dev
104 |
105 | ```
106 |
107 | ### 📱 Rodando o Happy mobile
108 |
109 | Entre na pasta
110 |
111 | ```bash
112 |
113 | $ cd mobile
114 |
115 | ```
116 | Instale as dependências
117 |
118 | ```bash
119 |
120 | $ yarn
121 |
122 | # ou, caso use npm
123 |
124 | $ npm install
125 |
126 | ```
127 |
128 | Rode o mobile
129 |
130 | ```bash
131 |
132 | $ yarn start
133 |
134 | # ou, caso use npm
135 |
136 | $ npm start
137 |
138 | ```
139 |
140 | Depois de fazer isso, irá abrir o metro bundler no seu navegador. A partir de agora você tem algumas opções para acessar o app.
141 |
142 | #### 1 - Emulador Android
143 | Na página do metro bundler, clique em "Run on Android device/emulator" e espere carregar. Tenha em mente que é necessário ter passado pelo processo de instalação
144 | do android sdk, etc.
145 |
146 | #### 2 - Emulador IOS
147 | Na página do metro bundler, clique em "Run on iOS simulator" e espere carregar.
148 |
149 | #### 3 - Seu smartphone
150 | Baixe o aplicativo do Expo:
151 | - [iOS](https://itunes.apple.com/app/apple-store/id982107779)
152 | - [Android](https://play.google.com/store/apps/details?id=host.exp.exponent&referrer=www)
153 |
154 | Depois de baixar, volte a página do metro bundler e escaneie o QR Code com o app do Expo.
155 |
156 |
157 |
158 | Se tudo deu certo, o app deve estar disponível agora! 👩🏽🔧
159 |
160 | ---
161 |
162 | ## 🗺 Mapbox
163 |
164 | Siga as instruções para usar o mapbox no lugar do openstreetmap.
165 |
166 | - Em "https://account.mapbox.com/", copie seu token.
167 | - Na raiz do projeto web crie um arquivo chamado ".env"
168 | - Dentro desse arquivo, digite "REACT_APP_MAPBOX_TOKEN =" e cole seu token logo depois.
169 | - Entre no arquivo "OrphanagesMap.tsx", descomente o trecho de código correspondente as linhas 34, 35 e 36.
170 | - No mesmo arquivo, comente a linha 32.
171 |
172 | Se você fez tudo corretamente, estás usando a API do mapbox com seu Token na página do mapa. 😄
173 |
174 | ---
175 |
176 |
177 |
ResultadosNote: gif distorts images and colors
180 |
182 |
184 |
185 |
186 |
--------------------------------------------------------------------------------
/src/screens/CreateShelter.tsx:
--------------------------------------------------------------------------------
1 |
2 | import React, { ChangeEvent, FormEvent, useState } from "react";
3 | import { useHistory } from "react-router-dom";
4 | import { Map, Marker, TileLayer } from 'react-leaflet';
5 | import { LeafletMouseEvent } from 'leaflet';
6 | import { FiPlus } from "react-icons/fi";
7 |
8 | import Sidebar from "../components/Sidebar";
9 | import happyMapIcon from "../utils/mapIcon";
10 |
11 |
12 | import '../styles/pages/create-shelter.css';
13 | import api from "../services/api";
14 |
15 | export default function CreateShelter() {
16 | const history = useHistory();
17 |
18 | const [position, setPosition] = useState({latitude:0, longitude:0})
19 | const[name, setName] = useState('');
20 | const[about, setAbout] = useState('');
21 | const[instructions, setInstructions] = useState('');
22 | const[opening_hours, setOpeningHours] = useState('');
23 | const [open_on_weekends, setOpenOnWeekends] = useState(true);
24 | const [images, setImages] = useState