https://github.com/bravonatalie/ecoleta
:recycle: Ecoleta: a full-stack project developed during the Next Level Week (nlw) - rocketseat
https://github.com/bravonatalie/ecoleta
axios cors expo express fullstack nodejs react react-native reactjs rocketseat typescript
Last synced: 2 months ago
JSON representation
:recycle: Ecoleta: a full-stack project developed during the Next Level Week (nlw) - rocketseat
- Host: GitHub
- URL: https://github.com/bravonatalie/ecoleta
- Owner: BravoNatalie
- License: mit
- Created: 2020-06-01T19:21:12.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2020-07-08T18:24:05.000Z (almost 6 years ago)
- Last Synced: 2025-06-01T14:08:58.129Z (about 1 year ago)
- Topics: axios, cors, expo, express, fullstack, nodejs, react, react-native, reactjs, rocketseat, typescript
- Language: TypeScript
- Homepage:
- Size: 2.63 MB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README







[](https://www.linkedin.com/in/nataliebravo/)
# Summary
- [About](#about)
- [Preview](#preview)
- [Built with](#technologies)
- [How to Use](#how-to-use)
- [License](#license)
## :information_source: About
The :recycle:**Ecoleta** is a Web and Mobile application that aims to connect people with companies that collect specific waste such as light bulbs, batteries, etc.
The project was developed during **Next Level Week**, an event provided by [Rocketseat](https://rocketseat.com.br/) to teach new technologies, tools and hacks to leverage participants' developer careers.
## :framed_picture: Preview
Check out how it looks:
## :gear: Built With
This project was developed with the following technologies:
#### **Backend** NodeJS + TypeScript
- [Node.js](https://nodejs.org/)
- [Typescript](https://www.typescriptlang.org/)
- [Express](https://expressjs.com/)
- [CORS](https://www.npmjs.com/package/cors)
- [KnexJS](http://knexjs.org/)
- [SQLite](https://github.com/mapbox/node-sqlite3)
- [TS-Node](https://www.npmjs.com/package/ts-node)
- [Multer](https://github.com/expressjs/multer)
- [Celebrate](https://github.com/arb/celebrate)
- [dotENV](https://github.com/motdotla/dotenv)
- [ESLint](https://eslint.org/)
#### **Frontend** React + TypeScript
- [React](https://pt-br.reactjs.org/)
- [Typescript](https://www.typescriptlang.org/)
- [Styled Components](https://styled-components.com/)
- [Context API](https://reactjs.org/docs/context.html)
- [Axios](https://www.npmjs.com/package/axios)
- [React Router Dom](https://github.com/ReactTraining/react-router/tree/master/packages/react-router-dom)
- [React Dropzone](https://github.com/react-dropzone/react-dropzone)
- [React Icons](https://react-icons.netlify.com/#/)
- [Leaflet](https://leafletjs.com/)
- [React Leaflet](https://react-leaflet.js.org/)
- [ESLint](https://eslint.org/)
#### **Mobile** React Native + TypeScript
- [React Native](https://reactnative.dev/)
- [Typescript](https://www.typescriptlang.org/)
- [Expo](https://expo.io/learn)
- [React Navigation](https://reactnavigation.org/)
- [React Native Maps](https://github.com/react-native-community/react-native-maps)
- [React Native SVG](https://github.com/react-native-community/react-native-svg)
- [Axios](https://www.npmjs.com/package/axios)
- [Expo Google Fonts](https://github.com/expo/google-fonts)
- [Expo Location](https://docs.expo.io/versions/latest/sdk/location/)
- [Expo Mail Composer](https://docs.expo.io/versions/latest/sdk/mail-composer/)
- [ESLint](https://eslint.org/)
## :joystick: How to Use
### Requirements
To run the application you'll need:
* [Git](https://git-scm.com)
* [Node](https://nodejs.org/)
* [Yarn](https://yarnpkg.com/) or [npm](https://www.npmjs.com/)
* [Expo](https://expo.io/learn)
* Clone the repository:
* ```$ git clone https://github.com/BravoNatalie/Ecoleta.git ```
### Backend
In order o run the server on your machine, you'll need to change the ip address configuration.
Create a **.env** file on the root of the [server/](https://github.com/BravoNatalie/Ecoleta/tree/master/server) folder and set an enviromental variable as the following:
```dotenv
APP_URL = http://192.168.1.31:3333
```
Now go to Ecoleta folder and run:
```bash
$ cd server
# install the dependencies
$ yarn install
# create the database
$ npm run knex:migrate
$ npm run knex:seed
# run api
$ yarn start
```
### Frontend
In order o run the web app on your machine, you'll need to change the ip address configuration.
Create a **.env** file on the root of the [web/](https://github.com/BravoNatalie/Ecoleta/tree/master/web) folder and set a enviromental variable as the following:
```dotenv
REACT_APP_API_URL = http://localhost:3333
```
Now go to Ecoleta folder and run:
```bash
$ cd web
# install the dependencies
$ npm install
# run web app
$ npm start
```
### Mobile
In order to run the application on your device, you'll need to change the ip address configuration on [api.ts](https://github.com/BravoNatalie/Ecoleta/blob/master/mobile/src/services/api.ts):
```javascript
baseURL: 'http://192.168.1.31:3333',
```
Now with everything in place, run the application.
```bash
$ cd mobile
# install the dependencies
$ npm install
# start expo
$ expo start
```
## :page_with_curl: License
This project is under the **MIT license**. See the [LICENSE](https://github.com/BravoNatalie/Ecoleta/blob/master/LICENSE) for more information.
## :mailbox_with_mail: Get in touch!