Skip to main content

EcoCycle - Sustainable Transportation Tracker and Route Planner

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

Download Source Code Documentation
Try it out! Contact The Developer Context

[!WARNING] The software and files provided in this repository by Shirish Pothi and the EcoCycle team are provided "as is" and without warranties of any kind, express or implied. We disclaim all liability for any direct, indirect, incidental, special, or consequential damages arising out of the use or inability to use the software or any files in this repository. Use at your sole discretion and risk.


๐Ÿ“‚ Directory

๐Ÿ“Œ Quick Navigation

๐Ÿ“ EcoCycle Repo Structure

Click to expand ๐Ÿ“‚
โ”œโ”€โ”€ Main Python Modules
โ”‚   โ”œโ”€โ”€ main.py                  # Application entry point
โ”‚   โ”œโ”€โ”€ mini.py                  # Minimal version of the application
โ”‚   โ”œโ”€โ”€ cli.py                   # Command-line interface
โ”‚   โ”œโ”€โ”€ admin_panel.py           # Administrator controls
โ”‚   โ”œโ”€โ”€ ai_route_planner.py      # AI-based route planning
โ”‚   โ”œโ”€โ”€ ascii_art.py             # ASCII art for CLI interface
โ”‚   โ”œโ”€โ”€ carbon_footprint.py      # Carbon footprint calculations
โ”‚   โ”œโ”€โ”€ check_sheets_config.py   # Google Sheets config checker
โ”‚   โ”œโ”€โ”€ dashboard.py             # User dashboard interface
โ”‚   โ”œโ”€โ”€ data_visualization.py    # Data visualization tools
โ”‚   โ”œโ”€โ”€ database_manager.py      # Database operations
โ”‚   โ”œโ”€โ”€ dependency_manager.py    # Package dependency management
โ”‚   โ”œโ”€โ”€ eco_challenges.py        # Environmental challenges
โ”‚   โ”œโ”€โ”€ eco_tips.py              # Environmental tips
โ”‚   โ”œโ”€โ”€ enhanced_ascii_art.py    # Enhanced ASCII graphics
โ”‚   โ”œโ”€โ”€ notification_system.py   # User notifications
โ”‚   โ”œโ”€โ”€ sheets_manager.py        # Google Sheets integration
โ”‚   โ”œโ”€โ”€ social_gamification.py   # Social features and gamification
โ”‚   โ”œโ”€โ”€ user_manager.py          # User account management
โ”‚   โ”œโ”€โ”€ utils.py                 # Utility functions
โ”‚   โ””โ”€โ”€ weather_route_planner.py # Weather-based route planning
โ”‚
โ”œโ”€โ”€ Tests
โ”‚   โ”œโ”€โ”€ test_cli.py
โ”‚   โ”œโ”€โ”€ test_eco_tips.py
โ”‚   โ”œโ”€โ”€ test_enhanced_ui.py
โ”‚   โ”œโ”€โ”€ test_user_manager.py
โ”‚   โ”œโ”€โ”€ test_utils.py
โ”‚   โ””โ”€โ”€ test_weather_route_planner.py
โ”‚
โ”œโ”€โ”€ Demo Modules
โ”‚   โ”œโ”€โ”€ demo_animations.py       # Animation demonstrations
โ”‚   โ””โ”€โ”€ demo_enhanced_ui.py      # Enhanced UI demonstrations
โ”‚
โ”œโ”€โ”€ Logs
โ”‚   โ”œโ”€โ”€ ecocycle.log             # Main application logs
โ”‚   โ”œโ”€โ”€ ecocycle_cli.log         # CLI-specific logs
โ”‚   โ””โ”€โ”€ ecocycle_debug.log       # Debug information
โ”‚
โ”œโ”€โ”€ visualizations               # Generated data visualizations
โ”‚
โ”œโ”€โ”€ Configuration Files
โ”‚   โ”œโ”€โ”€ pyproject.toml           # Project dependencies and metadata
โ”‚   โ”œโ”€โ”€ poetry.lock              # Poetry lock file
โ”‚   โ”œโ”€โ”€ requirements.txt         # Package requirements
โ”‚   โ””โ”€โ”€ template.env             # Environment variables template
โ”‚
โ””โ”€โ”€ Documentation
    โ”œโ”€โ”€ README.md                # Project overview
    โ”œโ”€โ”€ GUIDE.md                 # User guide
    โ”œโ”€โ”€ LICENSE.md               # License information
    โ”œโ”€โ”€ SECURITY.md              # Security guidelines
    โ””โ”€โ”€ Code of Conduct.md       # Project code of conduct

๐ŸŒฑ EcoCycle - Cycle Into A Greener Tomorrow

Our program was originally developed for the Lenovo and Intel's EDUtech ASIA hackathon, under the sustainable campus theme.

Through deliberation, we decided to create a functional program for proof of concept. Thus, the EcoCycle program was born.

EcoCycle is a command-line application that helps cyclists track their cycling activities, calculate their environmental impact, and engage with a community of environmentally conscious cyclists.

It is designed to promote cycling as a sustainable mode of transportation and encourage users to reduce their carbon footprint.

Features

  • ๐Ÿšด Trip Logging: Record your cycling trips with distance, duration, and date
  • ๐Ÿ“Š Statistics Dashboard: View comprehensive stats on your cycling activities
  • ๐Ÿ“ˆ Data Visualization: Analyze your cycling data with charts and graphs
  • ๐ŸŒ Carbon Footprint Calculator: Calculate your carbon savings from cycling
  • ๐ŸŒฆ๏ธ Weather & Route Planning: Check weather conditions and plan optimal routes
  • ๐Ÿ† Social Features: Earn achievements, join challenges, and share your progress
  • ๐Ÿ”” Notification System: Get reminders, weekly summaries, and eco tips
  • โ› SQLite Database Integration: Store and manage user data, preferences, trips, and stats

Preview

 ______     ______     ______     ______     __  __     ______     __         ______    
/\  ___\   /\  ___\   /\  __ \   /\  ___\   /\ \_\ \   /\  ___\   /\ \       /\  ___\   
\ \  __\   \ \ \____  \ \ \/\ \  \ \ \____  \ \____ \  \ \ \____  \ \ \____  \ \  __\   
 \ \_____\  \ \_____\  \ \_____\  \ \_____\  \/\_____\  \ \_____\  \ \_____\  \ \_____\ 
  \/_____/   \/_____/   \/_____/   \/_____/   \/_____/   \/_____/   \/_____/   \/_____/ 

Cycle into a greener tomorrow
----------------------------------------------------------------------------------------------
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ EcoCycle โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Daily Tip โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ Sunday: Explore new areas by bike and discover your community.                             โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ User Profile โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ Logged in as: Guest User                                                                   โ”‚
โ”‚ Stats: 5 trips, 11.7 km, 1.52 kg CO2 saved, 4530 kcal burned                               โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Main Menu โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ โ•ญโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ                                                    โ”‚
โ”‚ โ”‚ 0 โ”‚ Exit Program                    โ”‚                                                    โ”‚
โ”‚ โ”‚ 1 โ”‚ Log a cycling trip              โ”‚                                                    โ”‚
โ”‚ โ”‚ 2 โ”‚ View statistics                 โ”‚                                                    โ”‚
โ”‚ โ”‚ 3 โ”‚ Calculate carbon footprint      โ”‚                                                    โ”‚
โ”‚ โ”‚ 4 โ”‚ Weather and route planning      โ”‚                                                    โ”‚
โ”‚ โ”‚ 5 โ”‚ Eco-challenges                  โ”‚                                                    โ”‚
โ”‚ โ”‚ 6 โ”‚ Settings and preferences        โ”‚                                                    โ”‚
โ”‚ โ”‚ 7 โ”‚ Social sharing and achievements โ”‚                                                    โ”‚
โ”‚ โ”‚ 8 โ”‚ Logout                          โ”‚                                                    โ”‚
โ”‚ โ•ฐโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ                                                    โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
Select an option: 

SQLite Database Setup

EcoCycle now uses an SQLite database to store user data, preferences, trips, and stats. Follow these steps to set up the database:

  1. Ensure you have SQLite installed on your system. Most systems come with SQLite pre-installed. You can check by running:

    sqlite3 --version
    
  2. Initialize the database by running the following command:

    python main.py --init-db
    
  3. The database file ecocycle.db will be created in the project directory. This file will store all user data, preferences, trips, and stats.

  4. You can manage the database using standard SQLite tools or the provided database_manager.py module.


Pip Library Compatibility

We are thrilled to announce that with EcoCycle Version 2.0, not only is this program available on the releases to download and run locally - it has just been added to the PyPI package installation library!

Installation

Using pip (recommended)

pip install ecocycle

Manual Installation

git clone https://github.com/shirishpothi/ecocycle
cd ecocycle
pip install ecocycle

Quick Start

# Start the application
python main.py

# Log a cycling trip
python main.py log --distance 10.5 --duration 45

# View statistics
python main.py stats

# Check weather for cycling
python main.py weather --location "New York"

Dependencies

  • Required:

    • colorama
    • python-dotenv
  • Recommended:

    • matplotlib, numpy, plotly (for data visualization)
    • requests, folium (for weather and route planning)
    • tabulate, qrcode, pillow (for social features)
    • fpdf (for PDF reports)

EcoCycle's use of the Apache 2 License

At EcoCycle, we're not just building software; we're cultivating a regenerative ecosystem of technological solutions for a sustainable future. Our choice of the Apache 2.0 license wasn't a matter of convenience โ€“ it's core to our mission. We see the Apache 2.0 license not as a restriction, but as a powerful catalyst for collaborative growth.


Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

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

CI/CD Pipeline

EcoCycle uses a comprehensive CI/CD pipeline to ensure code quality and automate deployment:

  • Continuous Integration: Automated testing, linting, and code quality checks run on every push and pull request
  • Continuous Deployment: Automatic deployment to PyPI when a new release tag is created
  • Docker Support: Containerized deployment for consistent environments
  • Code Coverage: Tracking of test coverage to maintain code quality

Running Tests Locally

# Install dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Run tests with coverage
pytest --cov=.

# Run linting
flake8 .
black --check .
isort --check .

Documentation

For detailed information, please refer to the User Guide.


Contact Us

There is 1 active developer on this project: Shirish Pothi

โฌ† Back to Top

The EcoCycle team consists of: Shirish Pothi, Ryan Eng, Ashlesha Sahoo and Rochelle Joseph - all from Nexus International School.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ecocycle-3.4.0.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ecocycle-3.4.0-py3-none-any.whl (635.8 kB view details)

Uploaded Python 3

File details

Details for the file ecocycle-3.4.0.tar.gz.

File metadata

  • Download URL: ecocycle-3.4.0.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.0

File hashes

Hashes for ecocycle-3.4.0.tar.gz
Algorithm Hash digest
SHA256 422dfea0eef52a24828152a74c46ba4a9dae24379f461b1e78abbaeb566cb36e
MD5 16889596419cf721df9d3a291ddf1fdc
BLAKE2b-256 1c491314e139c9bd46700950f5a14f8f1a03fb9a95c5dedb8a23da54257568ab

See more details on using hashes here.

File details

Details for the file ecocycle-3.4.0-py3-none-any.whl.

File metadata

  • Download URL: ecocycle-3.4.0-py3-none-any.whl
  • Upload date:
  • Size: 635.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.0

File hashes

Hashes for ecocycle-3.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fae5eb85632ab903a5552b24c999c372ef7a5f170f5b123401f83e589f975ce8
MD5 17df3f326516a363bc0ce7b2a3d1c99e
BLAKE2b-256 ded65320c2e0e70323e344dfc80ec050258c2d2b154e05c3ccb2f528a55d16dd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page