Skip to content

gaganaparvathi09/ev-charging

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

1 Commit
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

โšก EV Charging Station Finder - Kerala

A modern desktop application for finding and registering EV charging stations in Kerala, India with provider registration features.

๐ŸŒŸ Features

  • ๐Ÿ” Station Search: Find nearby EV charging stations
  • ๐Ÿ“ Live Location: Auto-detect user location (Kochi default)
  • ๐Ÿ‘ค Provider Registration: Register your own charging station
  • ๐Ÿ—บ๏ธ Interactive Maps: Visualize stations on map
  • ๐Ÿ’ฐ Custom Pricing: Set your own charging rates
  • โฐ Time Management: Control charging time limits
  • ๐ŸŽจ Modern UI: Dark theme with intuitive interface
  • ๐Ÿ“Š Real-time Availability: Check station status

๐Ÿš€ Quick Start

Prerequisites

  • Python 3.7 or higher
  • Windows, macOS, or Linux

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/ev-charging-kerala.git
    cd ev-charging-kerala
  2. Install dependencies

    pip install -r requirements.txt
  3. Run the application

    python ev_charging_with_providers.py

๐Ÿ“‹ Requirements

tkinter
requests
folium

๐ŸŽฎ How to Use

For EV Owners:

  1. Launch app - Auto-detects your location (Kochi, Kerala)
  2. Search stations - Find nearby charging points within 25km
  3. View details - Check pricing, availability, power types
  4. Get directions - Navigate to stations

For Charging Station Providers:

  1. Click "โž• REGISTER AS PROVIDER" - Orange button in top header
  2. Fill details - Station info, pricing, time limits, contact
  3. Submit - Your station appears in searches immediately
  4. Manage - Update availability and pricing anytime

๐ŸŒ Coverage

Currently supports Kerala, India with stations in:

  • Kochi (MG Road, Ernakulam)
  • Lulu Mall (Edappally)
  • Cochin International Airport (Nedumbassery)
  • Kalady Town (Near Sree Sankara Temple)
  • And growing... (Add your station!)

๐Ÿ’ก Features Details

๐Ÿ” Search & Filters

  • Radius search (1-50 km slider)
  • Access type (Public, Private, Registered Providers)
  • Power type (Type 2, CCS, CHAdeMO)
  • Real-time availability checking
  • Distance-based sorting

๐Ÿ‘ค Provider Features

  • Custom pricing models (per kWh, per hour)
  • Time limit controls (1 hour, 2 hours, etc.)
  • Operating hours management
  • Contact information display
  • Persistent storage (JSON database)
  • Instant activation after registration

๏ฟฝ๏ธ Map Integration

  • Interactive Folium maps
  • Color-coded stations (Public=Green, Private=Orange, Provider=Purple)
  • Distance calculations using Haversine formula
  • Browser-based viewing

๏ฟฝ๏ธ Technical Stack

  • Frontend: Tkinter (Python GUI)
  • Maps: Folium with OpenStreetMap
  • Location: IP-based geolocation (ipinfo.io, ipapi.co)
  • Data: JSON storage for providers
  • Distance: Haversine formula
  • Threading: Non-blocking operations

๐Ÿ“ฑ Future Roadmap

  • Mobile app (React Native)
  • Payment integration (Razorpay, PayTM)
  • Booking system (Reserve slots)
  • Rating system (User reviews)
  • More cities (Bangalore, Chennai, Mumbai)
  • Real-time data (API integration)
  • AI recommendations (Smart suggestions)

๐Ÿค Contributing

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

๐Ÿ“„ License

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

๐Ÿ“ž Contact

๐ŸŽฏ Quick Demo

  1. Run the app: python ev_charging_with_providers.py
  2. Auto-locates to Kochi, Kerala
  3. Shows 4 stations automatically
  4. Register as provider using top header button
  5. Search and filter with left panel controls

โšก Powering Kerala's EV Revolution! ๐Ÿš—โšก

  • ๐Ÿ’ฐ Compare pricing information
  • ๐Ÿ“Š Real-time slot availability
  • ๐Ÿ—บ๏ธ Mock data for demonstration (can be extended with real APIs)

Installation

  1. Clone or download this repository
  2. Install dependencies:
pip install -r requirements.txt

Usage

Run the application:

python ev_charging_finder.py

Example Usage

๐Ÿ”‹ EV Charging Station Finder
========================================

๐Ÿ“ Enter your location (press Enter for default NYC coordinates):
Latitude (default: 40.7128): 40.7580
Longitude (default: -74.0060): -73.9855

Search radius in km (default: 10): 5
Minimum available slots required (default: 1): 1

๐Ÿ” Searching for charging stations within 5.0 km...

๐Ÿ”‹ Found 2 available charging stations:
============================================================

๐Ÿ“ Station 1: Tesla Supercharger - Downtown
   ๐Ÿ“ Address: 123 Main St, City Center
   ๐Ÿ“ Distance: 0.89 km
   ๐Ÿ”Œ Available Slots: 3/8
   โšก Power Types: Type 2, CCS, CHAdeMO
   ๐Ÿ’ช Max Power: 250 kW
   ๐Ÿ’ฐ Price: $0.28/kWh
   ๐ŸŸข Status: OPEN
----------------------------------------

๐Ÿ“ Station 2: ChargePoint Station - Mall
   ๐Ÿ“ Address: 456 Shopping Ave, West District
   ๐Ÿ“ Distance: 1.23 km
   ๐Ÿ”Œ Available Slots: 2/4
   โšก Power Types: Type 2, CCS
   ๐Ÿ’ช Max Power: 150 kW
   ๐Ÿ’ฐ Price: $0.32/kWh
   ๐ŸŸข Status: OPEN
----------------------------------------

Code Structure

  • ev_charging_finder.py - Main application with EVChargingFinder class
  • requirements.txt - Python dependencies
  • README.md - Documentation

Key Methods

EVChargingFinder Class

  • find_nearby_stations() - Find stations within radius
  • calculate_distance() - Calculate distance between coordinates
  • filter_by_power_type() - Filter by connector type
  • filter_by_max_power() - Filter by power requirements
  • display_stations() - Format and display results

Extending the Application

Adding Real API Integration

To integrate with real charging station APIs (like OpenChargeMap, PlugShare, etc.):

  1. Get an API key from the service
  2. Replace the mock data in _generate_mock_data() with API calls
  3. Update the __init__ method to use the API key

Example:

def get_real_stations(self, lat, lon, radius):
    url = f"https://api.openchargemap.io/v3/poi"
    params = {
        "latitude": lat,
        "longitude": lon,
        "distance": radius,
        "distanceunit": "KM",
        "key": self.api_key
    }
    response = requests.get(url, params=params)
    return response.json()

Adding Map Visualization

Install additional dependencies:

pip install folium

Add a method to generate maps:

def create_map(self, stations, user_lat, user_lon):
    import folium
    
    # Create map centered on user location
    m = folium.Map(location=[user_lat, user_lon], zoom_start=13)
    
    # Add user marker
    folium.Marker([user_lat, user_lon], 
                  popup="Your Location", 
                  icon=folium.Icon(color='blue')).add_to(m)
    
    # Add station markers
    for station in stations:
        color = 'green' if station['available_slots'] > 0 else 'red'
        folium.Marker([station['latitude'], station['longitude']], 
                      popup=station['name'],
                      icon=folium.Icon(color=color)).add_to(m)
    
    m.save('charging_stations_map.html')

Dependencies

  • requests - HTTP requests for API integration
  • geopy - Advanced geocoding and distance calculations (optional)
  • folium - Interactive maps (optional)

License

This project is open source and available under the MIT License.

About

V Charging Station Finder with Provider Registration

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages