{"id":16464636,"url":"https://github.com/menoc61/gabage-minitoring-react-native","last_synced_at":"2026-04-10T01:53:24.939Z","repository":{"id":189708389,"uuid":"681132200","full_name":"menoc61/gabage-minitoring-react-native","owner":"menoc61","description":"A garbage monitoring system using Expo, Firebase, and IoT (Arduino) is a comprehensive solution that combines mobile application development, cloud-based data storage, and hardware integration to monitor the fill-level of garbage bins in real-time. This system aims to optimize waste management processes ","archived":false,"fork":false,"pushed_at":"2023-09-14T02:12:45.000Z","size":430,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-10T10:29:40.520Z","etag":null,"topics":["arduino","arduino-uno","expo","firebase","gabage-monitoring","iot","waste-management-system"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/menoc61.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}},"created_at":"2023-08-21T10:38:21.000Z","updated_at":"2024-04-12T08:01:42.000Z","dependencies_parsed_at":"2023-08-21T12:52:58.216Z","dependency_job_id":"9b7c2fc0-b3c4-4666-af7f-31a827876be3","html_url":"https://github.com/menoc61/gabage-minitoring-react-native","commit_stats":{"total_commits":4,"total_committers":2,"mean_commits":2.0,"dds":0.25,"last_synced_commit":"e69998dca38310136f2455be9c532975a98415e1"},"previous_names":["menoc61/gabage-minitoring-react-native"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/menoc61%2Fgabage-minitoring-react-native","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/menoc61%2Fgabage-minitoring-react-native/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/menoc61%2Fgabage-minitoring-react-native/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/menoc61%2Fgabage-minitoring-react-native/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/menoc61","download_url":"https://codeload.github.com/menoc61/gabage-minitoring-react-native/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241014058,"owners_count":19894186,"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":["arduino","arduino-uno","expo","firebase","gabage-monitoring","iot","waste-management-system"],"created_at":"2024-10-11T11:28:56.131Z","updated_at":"2025-12-31T01:13:26.353Z","avatar_url":"https://github.com/menoc61.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# expo-firebase-starter 🔥\n\n![Supports Expo iOS](https://img.shields.io/badge/iOS-4630EB.svg?style=flat-square\u0026logo=APPLE\u0026labelColor=999999\u0026logoColor=fff)\n![Supports Expo Android](https://img.shields.io/badge/Android-4630EB.svg?style=flat-square\u0026logo=ANDROID\u0026labelColor=A4C639\u0026logoColor=fff)\n[![runs with Expo Go](https://img.shields.io/badge/Runs%20with%20Expo%20Go-4630EB.svg?style=flat-square\u0026logo=EXPO\u0026labelColor=f3f3f3\u0026logoColor=000)](https://expo.dev/client)\n\nIs a quicker way to start with Expo + Firebase (using JS SDK) projects. It includes:\n\n- based on Expo SDK `46`\n- navigation using `react-navigation` 6.x.x\n- Firebase JS SDK v9\n- Firebase as the backend for email auth\n- custom and reusable components\n- custom hook to toggle password field visibility on a TextInput\n- handles server errors using Formik\n- Login, Signup \u0026 Password Reset form built using Formik \u0026 yup\n- show/hide Password Field's visibility 👁\n- uses a custom Provider using Context API \u0026 Firebase's `onAuthStateChanged` handler to check the user's auth state with\n- handles Forgot Password Reset using Firebase email method\n- uses [Expo Vector Icons](https://icons.expo.fyi/)\n- uses [KeyboardAwareScrollView](https://github.com/APSL/react-native-keyboard-aware-scroll-view) package to handle keyboard appearance and automatically scrolls to focused TextInput\n- uses `dotenv` and `expo-constants` packages to manage environment variables (so that they are not exposed on public repositories)\n- all components are now functional components and use [React Hooks](https://reactjs.org/docs/hooks-intro.html)\n\n## Installation\n\n1. Create a new project using the firebase starter template.\n\n```bash\nnpx create-react-native-app --template https://github.com/expo-community/expo-firebase-starter\n```\n\n2. Rename the file `example.env` to `.env`\n3. Update `.env` with your own configuration, e.g.:\n\n```shell\n# Rename this file to \".env\" before use\n# Replace XXXX's with your own Firebase config keys\nAPI_KEY=XXXX\nAUTH_DOMAIN=XXXX\nPROJECT_ID=XXXX\nSTORAGE_BUCKET=XXXX\nMESSAGING_SENDER_ID=XXXX\nAPP_ID=XXXX\n```\n\n4. Start the project:\n\n- `yarn ios` -- open on iOS\n- `yarn android` -- open on Android\n\n## File Structure\n\n```shell\nExpo Firebase Starter\n├── assets ➡️ All static assets, includes app logo\n├── components ➡️ All re-suable UI components for form screens\n│   └── Button.js ➡️ Custom Button component using Pressable, comes with two variants and handles opacity\n│   └── TextInput.js ➡️ Custom TextInput component that supports left and right cons\n│   └── Icon.js ➡️ Icon component\n│   └── FormErrorMessage.js ➡️ Component to display server errors from Firebase\n│   └── LoadingIndicator.js ➡️ Loading indicator component\n│   └── Logo.js ➡️ Logo component\n│   └── View.js ➡️ Custom View component that supports safe area views\n├── hooks ➡️ All custom hook components\n│   └── useTogglePasswordVisibility.js ➡️ A custom hook that toggles password visibility on a TextInput component on a confirm password field\n├── config ➡️ All configuration files\n│   └── firebase.js ➡️ Configuration file to initialize firebase with firebaseConfig and auth\n│   └── images.js ➡️ Require image assets, reusable values across the app\n│   └── theme.js ➡️ Default set of colors, reusable values across the app\n├── providers ➡️ All custom providers that use React Context API\n│   └── AuthenticatedUserProvider.js ➡️ An Auth User Context component that shares Firebase user object when logged-in\n├── navigation\n│   └── AppStack.js ➡️ Protected routes such as Home screen\n│   └── AuthStack.js ➡️ Routes such as Login screen, when the user is not authenticated\n│   └── RootNavigator.js ➡️ Switch between Auth screens and App screens based on Firebase user logged-in state\n├── screens\n│   └── ForgotPassword.js ➡️ Forgot Password screen component\n│   └── HomeScreen.js ➡️ Protected route/screen component\n│   └── LoginScreen.js ➡️ Login screen component\n│   └── SignupScreen.js ➡️ Signup screen component\n├── App.js ➡️ Entry Point for Mobile apps, wrap all providers here\n├── app.config.js ➡️ Expo config file\n└── babel.config.js ➡️ Babel config (should be using `babel-preset-expo`)\n```\n\n## Screens\n\nMain screens:\n\n- Login\n- Signup\n- Forgot password\n- Home (Bare Minimum) with a logout button\n\n![Login screen with validation](https://i.imgur.com/cydaOYN.png)\n\n![Successful Signup](https://i.imgur.com/62kcirI.png)\n\n![Forgot Password](https://i.imgur.com/9J9a4Nl.png)\n\n![Validation on Signup screens](https://i.imgur.com/DG0wTjG.png)\n\n## ⚠️ Please Note\n\nExpo uses Firebase Web SDK and does not support all Firebase services such as phone auth. If you are looking forward to use those services, please use `react-native-firebase` in a Expo bare project, or an [Expo custom dev client](https://blog.expo.dev/introducing-custom-development-clients-5a2c79a9ddf8) or a plain React Native project.\n\n[**Here is more on what and why Expo cannot support complete Firebase integration**](https://expo.canny.io/feature-requests/p/full-native-firebase-integration)\n\n---\n\n\u003cstrong\u003eBuilt with 💜 by [@amanhimself](https://twitter.com/amanhimself)\u003c/strong\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmenoc61%2Fgabage-minitoring-react-native","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmenoc61%2Fgabage-minitoring-react-native","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmenoc61%2Fgabage-minitoring-react-native/lists"}