CiviMeter is an app that empowers community members to report improperly parked cars. By submitting evidence and details of a parking violation, you help promote safer, more organized streets—and earn rewards along the way!
- Report Parking Violations: Snap a photo of a poorly parked car and submit it through the app.
- AI-Powered Analysis: Our AI extracts key details like license plate and location.
- Earn Rewards: Submit reports and earn points that can be redeemed for exciting rewards like gift cards and prizes.
- Community Impact: Contribute to safer neighborhoods and ensure that community resources are used effectively.
- Snap a photo of a poorly parked car.
- Our AI extracts key details like license plate and location.
- Submit the report and earn points instantly.
- Redeem your points for exciting rewards like gift cards and prizes!
CiviMeter encourages responsible parking habits and cleaner streets. By reporting problems, you contribute to safer neighborhoods and ensure that community resources are used effectively. As a reward for your hard work, you can use the parking ticket fees to earn coins, which can be redeemed for gift cards and other exciting prizes. Together, we make a positive impact—one report at a time.
Several cities, including New York City, have proposed or implemented legislation to empower citizens to report parking violations, aiming to improve urban mobility and safety.
- Proposed Citizen Reporting Program: In 2022, Council Member Lincoln Restler introduced a bill that would allow New Yorkers to report illegal parking by submitting photos or videos to the Department of Transportation. If the report led to a ticket, the citizen would receive 25% of the $175 fine.
- Program Modifications: By 2023, the bill advanced with modifications. While the financial incentive was removed, the legislation focused on creating an app to facilitate the seamless filing of complaints for illegal parking behavior.
- Los Angeles: The Los Angeles Department of Transportation (LADOT) has a comprehensive parking enforcement program where traffic officers patrol 24/7 to enforce parking laws. While not citizen-driven, it reflects a commitment to strict parking regulation enforcement.
These initiatives demonstrate a growing trend toward involving citizens in urban management, particularly in reporting parking violations. Such programs aim to enhance compliance with parking regulations, improve traffic flow, and promote safer streets.
- Clone the repository:
git clone https://github.com/yourusername/CiviMeter.git
- Navigate to the backend directory:
cd CiviMeter/backend - Create a virtual environment:
python -m venv venv
- Activate the virtual environment:
- On Windows:
venv\Scripts\activate
- On macOS/Linux:
source venv/bin/activate
- On Windows:
- Install dependencies:
pip install pymongo pip install bson pip install gridfs pip install openai pip install flask
- Configure system variables:
Ensure the environment variables "OPENAI_ORG", "OPENAI_PROJECT", "OPENAI_API_KEY", "MONGO_URI" have been set. Additionally, you will likely need to change the host IP and/or configure a new MongoDB Atlas project.
- Start the Flask server:
py app.py
- Navigate to the frontend directory:
cd CiviMeter/frontend - Install dependencies:
npm install
- Install
npxif not already installed:npm install -g npx
- Start the development server:
npx expo start
- URL:
/api/submit_incident - Method:
POST - Description: Upload a photo of a parking violation.
- Parameters:
image: The photo of the parking violation.userId: The ID of the user submitting the report.latitude: The latitude of the location.longitude: The longitude of the location.index: The incident ID.
- URL:
/api/history - Method:
POST - Description: Fetch the history of submitted reports.
- Parameters:
userId: The ID of the user.
- URL:
/api/usercoins - Method:
POST - Description: Fetch the number of coins a user has.
- Parameters:
userId: The ID of the user.
- URL:
/api/giftcards - Method:
GET - Description: Fetch the available gift cards.
- URL:
/api/userprofile - Method:
POST - Description: Fetch the user's profile.
- Parameters:
userId: The ID of the user.
- URL:
/api/userprofile/upload - Method:
POST - Description: Upload the user's profile.
- Parameters:
userProfile: The user's profile data.
- URL:
/api/locations - Method:
GET - Description: Fetch the locations of reported incidents.
This project is licensed under the MIT License.