/ScrapSnapWEB

PWA app with Vue & VitePWA. Schedule waste collections, manage users (different roles and permissions), check collection points on map, report illegal disposals.

Primary LanguageCSSMIT LicenseMIT

ScrapSnap

ScrapSnap Logo

👋 Welcome to ScrapSnap, an innovative Progressive Web Application (PWA) designed to revolutionize waste management and enhance community cleanliness. This README provides an overview of the features, installation instructions, and usage guidelines for ScrapSnap. Plus, with its PWA capabilities, ScrapSnap can seamlessly work offline on both web and mobile platforms, ensuring uninterrupted access to its features regardless of connectivity.

Pitch (Google Slides)

Check out NestJS API (Typescript, MongoDB, Minio).


Table of Contents

Features

ScrapSnap offers a range of features designed to streamline waste management and encourage community participation:

  • Scheduled Waste Collection: View your area's scheduled waste collection times and dates to ensure timely disposal.
  • Collection Points on Map: Locate nearby waste collection points on an interactive map.
  • Custom Waste Collection Orders: Order custom waste collection services for specific needs or larger quantities of waste.
  • Report Inappropriate Disposal Sites: Take photos of inappropriate or illegal landfill sites and upload them through the app.
  • Earn Points and Discounts: Earn points for reporting issues, which can be redeemed for discounts on various services.

Installation

Usage

Contribution

We welcome contributions from the community! To contribute:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature-branch).
  3. Make your changes and commit them (git commit -m 'Add new feature').
  4. Push to the branch (git push origin feature-branch).
  5. Create a pull request detailing your changes.

Customize configuration

See Vite Configuration Reference.

Project Setup

npm install

Compile and Hot-Reload for Development

npm run dev

Compile and Minify for Production

npm run build

Lint with ESLint

npm run lint