{"id":14984898,"url":"https://github.com/stefanosaffran/ecoleta","last_synced_at":"2025-10-07T21:49:18.882Z","repository":{"id":100318909,"uuid":"268834913","full_name":"StefanoSaffran/ecoleta","owner":"StefanoSaffran","description":"Ecoleta - Developed during the event NLW 1.0 by @Rocketseat","archived":false,"fork":false,"pushed_at":"2023-12-16T05:43:32.000Z","size":617,"stargazers_count":30,"open_issues_count":1,"forks_count":12,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-10T22:54:12.900Z","etag":null,"topics":["javascript","nextlevelweek-booster","nodejs","postgres","react-native","reactjs","rocketseat","typeorm","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/StefanoSaffran.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-02T15:14:04.000Z","updated_at":"2022-06-13T23:55:52.000Z","dependencies_parsed_at":"2024-09-24T15:40:43.167Z","dependency_job_id":null,"html_url":"https://github.com/StefanoSaffran/ecoleta","commit_stats":{"total_commits":27,"total_committers":2,"mean_commits":13.5,"dds":0.03703703703703709,"last_synced_commit":"e9d14e6d522caaabb456aa77635e4610ffe818f3"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StefanoSaffran%2Fecoleta","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StefanoSaffran%2Fecoleta/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StefanoSaffran%2Fecoleta/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StefanoSaffran%2Fecoleta/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/StefanoSaffran","download_url":"https://codeload.github.com/StefanoSaffran/ecoleta/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248312172,"owners_count":21082638,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["javascript","nextlevelweek-booster","nodejs","postgres","react-native","reactjs","rocketseat","typeorm","typescript"],"created_at":"2024-09-24T14:09:50.197Z","updated_at":"2025-10-07T21:49:18.768Z","avatar_url":"https://github.com/StefanoSaffran.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"https://res.cloudinary.com/stefanosaffran/image/upload/v1591433716/Omnistack/tkp3avuykaqfpvydmt0i.svg\" width=\"300px\"/\u003e\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\n\u003ch2 align=\"center\"\u003e\n   ♻️ NextLevelWeek 1.0 ♻️\n\u003c/h2\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"Project programing languages count\" src=\"https://img.shields.io/github/languages/count/StefanoSaffran/ecoleta?color=34cb79\"\u003e\n   \u003cimg alt=\"Repository size\" src=\"https://img.shields.io/github/repo-size/StefanoSaffran/ecoleta?color=34cb79\"\u003e\n  \u003cimg alt=\"Last commit on GitHub\" src=\"https://img.shields.io/github/last-commit/StefanoSaffran/ecoleta?color=34cb79\"\u003e\n  \u003cimg alt=\"Made by Stefano\" src=\"https://img.shields.io/badge/made%20by-StefanoSaffran-%20?color=34cb79\"\u003e\n  \u003cimg alt=\"Project top programing language\" src=\"https://img.shields.io/github/languages/top/StefanoSaffran/ecoleta?color=34cb79\"\u003e\n  \u003cimg alt=\"GitHub license\" src=\"https://img.shields.io/github/license/StefanoSaffran/ecoleta?color=34cb79\"\u003e\n\u003c/p\u003e \n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#computer-project\"\u003eProject\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#rocket-built-with\"\u003eBuilt with\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#information_source-how-to-run\"\u003eHow to run\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#memo-license\"\u003eLicense\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#mailbox_with_mail-get-in-touch\"\u003eGet in touch\u003c/a\u003e\n  \u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://insomnia.rest/run/?label=Run%20in%20Insomnia\u0026uri=https%3A%2F%2Fraw.githubusercontent.com%2FStefanoSaffran%2Fecoleta%2Fmaster%2FInsomnia_2020-06-06.json\" target=\"_blank\"\u003e\u003cimg src=\"https://insomnia.rest/images/run.svg\" alt=\"Run in Insomnia\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## :computer: Project \n\n Ecoleta is an application that aims to help people find places that collect specific types of waste, encouraging people to recycle more.\n\n \u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://res.cloudinary.com/stefanosaffran/image/upload/v1591434863/Omnistack/j7gkzljoqptkidehvbuv.gif\" \u003e\n\u003c/p\u003e\n\n## :rocket: Built with\n\nThis project was developed with the following technologies:\n\n\u003cdetails\u003e\n  \u003csummary\u003eBackend\u003c/summary\u003e\n\n-   [Node.js](https://nodejs.org/)\n-   [Express](https://expressjs.com/)\n-   [TypeORM](https://typeorm.io/)\n-   [Typescript](https://www.typescriptlang.org/)\n-   [TS-Node-Dev](https://www.npmjs.com/package/ts-node-dev)\n-   [Celebrate](https://github.com/arb/celebrate)\n-   [Tsyringe](https://github.com/microsoft/tsyringe)\n-   [uuidv4](https://www.npmjs.com/package/uuidv4)\n-   [Cors](https://www.npmjs.com/package/cors)\n-   [ESLint](https://eslint.org/)\n-   [Prettier](https://prettier.io/)\n-   [VS Code](https://code.visualstudio.com/)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eFrontend\u003c/summary\u003e\n\n-   [React](https://pt-br.reactjs.org/)\n-   [Typescript](https://www.typescriptlang.org/)\n-   [Styled Components](https://styled-components.com/)\n-   [Context API](https://reactjs.org/docs/context.html)\n-   [React-toggle](https://github.com/aaronshaf/react-toggle)\n-   [React-spring](https://www.react-spring.io/)\n-   [uuidv4](https://www.npmjs.com/package/uuidv4)\n-   [Axios](https://www.npmjs.com/package/axios)\n-   [React Dropzone](https://github.com/react-dropzone/react-dropzone)\n-   [React Icons](https://react-icons.netlify.com/#/)\n-   [Leaflet](https://leafletjs.com/)\n-   [React Leaflet](https://react-leaflet.js.org/)\n-   [ESLint](https://eslint.org/)\n-   [Prettier](https://prettier.io/)\n-   [VS Code](https://code.visualstudio.com/)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eMobile\u003c/summary\u003e\n\n-   [React](https://pt-br.reactjs.org/)\n-   [React Native](https://reactnative.dev/)\n-   [Expo](https://expo.io/learn)\n-   [Styled Components](https://styled-components.com/)\n-   [Typescript](https://www.typescriptlang.org/)\n-   [React Navigation](https://reactnavigation.org/)\n-   [Axios](https://www.npmjs.com/package/axios)\n-   [Expo Google Fonts](https://github.com/expo/google-fonts)\n-   [Expo Location](https://docs.expo.io/versions/latest/sdk/location/)\n-   [Expo Mail Composer](https://docs.expo.io/versions/latest/sdk/mail-composer/)\n-   [React Native Appearance](https://github.com/expo/react-native-appearance)\n-   [React Native Picker Select](https://www.npmjs.com/package/react-native-picker-select)\n-   [ESLint](https://eslint.org/)\n-   [Prettier](https://prettier.io/)\n-   [VS Code](https://code.visualstudio.com/)\n\n\u003c/details\u003e\n\n## :information_source: How to run\n\n### Requirements\n\nTo run the application you will need:\n* [Git](https://git-scm.com)\n* [Node](https://nodejs.org/)\n* [Yarn](https://yarnpkg.com/) \n\nI strongly recommend using [Docker](https://www.docker.com/) to run the databases.\n\u003cbr\u003e\nIf you decide to use docker, follow this steps to install and run the docker image.\n\n```bash\n# install Postgres image (if you don't specify an username it will be postgres by default)\n$ docker run --name imagename -e POSTGRES_PASSWORD=yourPassword -p 5432:5432 -d postgres\n\n# start Postgres\n$ docker start imageName\n\n```\n### Backend\nNow clone the repository and install the dependencies.\n```bash\n# to clone the repository\n$ git clone https://github.com/StefanoSaffran/ecoleta.git\n\n# go into the backend folder\n$ cd ecoleta/backend\n\n#install the backend dependencies\n$ yarn\n\n```\nIn order to connect to the database, you will need to enter the access informations into a ormconfig.json. You can find more about it [here](https://typeorm.io/#/using-ormconfig).\n\n```bash\n# run migrations\n$ yarn typeorm migration:run\n\n# run api\n$ yarn dev:server\n```\n\n### Frontend\n\n```bash\n# in another tab of the terminal install the frontend dependencies and run it \n$ cd frontend\n$ yarn\n$ yarn start\n```\n\n### Mobile\n\nThe Application was developed using Expo. It is a free and open source toolchain built around React Native to facilitate the process of running and testing applications. [Click here](https://expo.io/learn) to get start with Expo.\n\n```bash\n# install the dependencies\ncd mobile\nyarn\n```\n\nIn order to run the application on your device, you need to change the ip config.\n\n[api.ts](https://github.com/StefanoSaffran/ecoleta/blob/master/mobile/src/services/api.ts)\n```javascript\n  baseURL: 'http://192.168.0.185:3333',\n```\nreplace 192.168.0.185 with your machine's ip.\n\nNow with everything on place, run the application.\n\n```bash\n\n# to run the app\nyarn start\n\n```\nExpo will open a page in your browser, scan the QRcode on the page and wait for the app to load.\n\n\u003e The Application was developed and tested on Iphone 6s and Android Studio Emulator.\n\n## :memo: License\n\nThis project is under the MIT license. See the [LICENSE](https://github.com/StefanoSaffran/ecoleta/blob/master/LICENSE) for more information\n\n## :mailbox_with_mail: Get in touch!\n\n\u003ca href=\"https://stefanosaffran.com\" target=\"_blank\" \u003e\n  \u003cimg alt=\"Website - Stefano Saffran\" src=\"https://img.shields.io/badge/Website--%23F8952D?style=social\"\u003e\n\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\n\u003ca href=\"https://www.linkedin.com/in/stefanosaffran/\" target=\"_blank\" \u003e\n  \u003cimg alt=\"Linkedin - Stefano Saffran\" src=\"https://img.shields.io/badge/Linkedin--%23F8952D?style=social\u0026logo=linkedin\"\u003e\n\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\n\u003ca href=\"mailto:stefanoas@gmail.com\" target=\"_blank\" \u003e\n  \u003cimg alt=\"Email - Stefano Saffran\" src=\"https://img.shields.io/badge/Email--%23F8952D?style=social\u0026logo=gmail\"\u003e\n\u003c/a\u003e \n\n---\n\nMade with :coffee: and ❤️ by Stefano Saffran.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefanosaffran%2Fecoleta","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstefanosaffran%2Fecoleta","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefanosaffran%2Fecoleta/lists"}