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
[!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
- ๐ก Home
- ๐ EcoCycle Repo Structure
- ๐ก Installation Guide
- ๐ About EcoCycle
- ๐ Documentation
- ๐ Live Demo
- ๐ License
- ๐ค Contributing
- ๐ Contact
๐ 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:
-
Ensure you have SQLite installed on your system. Most systems come with SQLite pre-installed. You can check by running:
sqlite3 --version -
Initialize the database by running the following command:
python main.py --init-db
-
The database file
ecocycle.dbwill be created in the project directory. This file will store all user data, preferences, trips, and stats. -
You can manage the database using standard SQLite tools or the provided
database_manager.pymodule.
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.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - 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
- His contact is: shirish.pothi.27@nexus.edu.sg
- Alternatively, use this link with a pre-written Gmail format to email him with.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
422dfea0eef52a24828152a74c46ba4a9dae24379f461b1e78abbaeb566cb36e
|
|
| MD5 |
16889596419cf721df9d3a291ddf1fdc
|
|
| BLAKE2b-256 |
1c491314e139c9bd46700950f5a14f8f1a03fb9a95c5dedb8a23da54257568ab
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fae5eb85632ab903a5552b24c999c372ef7a5f170f5b123401f83e589f975ce8
|
|
| MD5 |
17df3f326516a363bc0ce7b2a3d1c99e
|
|
| BLAKE2b-256 |
ded65320c2e0e70323e344dfc80ec050258c2d2b154e05c3ccb2f528a55d16dd
|