Skip to content

groverception/garbage-collector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

13 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ—‘οΈ Garbage Collector

A cross-platform mobile application built with React Native and Expo that empowers citizens to report and manage garbage cleanup in their communities. This app bridges the gap between concerned citizens and municipal cleanup efforts, making it easy to document, report, and volunteer for garbage cleanup tasks.

πŸ“‹ Table of Contents

🎯 Overview

Garbage Collector is a civic engagement tool that allows users to:

  • πŸ“Έ Photograph and report garbage in public spaces
  • πŸ“ Specify exact locations of reported garbage
  • 🀝 Volunteer for cleanup tasks
  • πŸ“Š Track cleanup progress and impact
  • βœ… Verify completed cleanup efforts

The app uses a local SQLite database to store reports and manage volunteer tasks, ensuring data persistence across sessions.

✨ Features

πŸ†• Onboarding Experience

  • Interactive multi-slide onboarding flow
  • Introduction to app features and purpose
  • First-time user setup

πŸ“€ Report Garbage

  • Camera or gallery photo selection
  • Location input for reported garbage
  • Detailed description of the situation
  • User attribution for accountability
  • Form validation and error handling

πŸ‘₯ Volunteer System

  • Browse available cleanup tasks
  • Filter by status (Open, In Progress, Resolved, Verified)
  • Volunteer for specific tasks
  • Update task status with comments
  • Activity timeline tracking
  • Task verification system

πŸ“œ History Tracking

  • View all submitted reports
  • See report status and timestamps
  • Track personal contribution

βš™οΈ Settings

  • Manage user preferences
  • View app information

πŸ› οΈ Tech Stack

πŸ“¦ Prerequisites

Before you begin, ensure you have the following installed:

  • Node.js: v18.x or higher (Download)
  • npm: v8.x or higher (comes with Node.js)
  • Expo CLI: Install globally via npm install -g expo-cli
  • iOS Development (macOS only):
    • Xcode 14.0 or higher
    • iOS Simulator
  • Android Development:
    • Android Studio
    • Android SDK
    • Android Emulator or physical device

πŸš€ Installation

  1. Clone the repository

    git clone <repository-url>
    cd garbage-collector
  2. Install dependencies

    npm install
  3. Verify installation

    npx expo doctor

    This command checks for common issues with your Expo installation.

πŸ“± Running the Application

Development Server

Start the Expo development server:

npm start

This will open the Expo Developer Tools in your browser, where you can:

  • Scan the QR code with the Expo Go app (iOS/Android)
  • Press i to open iOS Simulator
  • Press a to open Android Emulator
  • Press w to open in web browser

Platform-Specific Commands

iOS (macOS only)

npm run ios

Runs the app in the iOS Simulator. Requires Xcode to be installed.

Android

npm run android

Runs the app in the Android Emulator or connected device. Requires Android Studio and SDK setup.

Web

npm run web

Runs the app in a web browser at http://localhost:8081.

Linting

Run ESLint to check for code quality issues:

npm run lint

πŸ—οΈ Building for Production

Development Build (Recommended for testing)

# iOS
eas build --platform ios --profile development

# Android
eas build --platform android --profile development

Production Build

# iOS (requires Apple Developer account)
eas build --platform ios --profile production

# Android
eas build --platform android --profile production

Note: Production builds require setting up an Expo Application Services (EAS) account and configuring eas.json.

Web Build

Generate a static web build:

npx expo export:web

The built files will be in the dist/ directory.

🀝 Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch
    git checkout -b feature/amazing-feature
  3. Commit your changes
    git commit -m 'feat: add amazing feature'
  4. Push to the branch
    git push origin feature/amazing-feature
  5. Open a Pull Request

Commit Convention

This project follows Conventional Commits:

  • feat: - New features
  • fix: - Bug fixes
  • refactor: - Code refactoring
  • docs: - Documentation changes
  • test: - Test additions or modifications
  • chore: - Maintenance tasks

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments


Made with ❀️ for cleaner communities

Releases

No releases published

Packages

 
 
 

Contributors