A modern desktop application for finding and registering EV charging stations in Kerala, India with provider registration 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
- Python 3.7 or higher
- Windows, macOS, or Linux
-
Clone the repository
git clone https://github.com/yourusername/ev-charging-kerala.git cd ev-charging-kerala -
Install dependencies
pip install -r requirements.txt
-
Run the application
python ev_charging_with_providers.py
tkinter
requests
folium- Launch app - Auto-detects your location (Kochi, Kerala)
- Search stations - Find nearby charging points within 25km
- View details - Check pricing, availability, power types
- Get directions - Navigate to stations
- Click "โ REGISTER AS PROVIDER" - Orange button in top header
- Fill details - Station info, pricing, time limits, contact
- Submit - Your station appears in searches immediately
- Manage - Update availability and pricing anytime
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!)
- 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
- 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
- Interactive Folium maps
- Color-coded stations (Public=Green, Private=Orange, Provider=Purple)
- Distance calculations using Haversine formula
- Browser-based viewing
- 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
- 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)
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Developer: Your Name
- Email: your.email@example.com
- GitHub: https://github.com/yourusername
- Run the app:
python ev_charging_with_providers.py - Auto-locates to Kochi, Kerala
- Shows 4 stations automatically
- Register as provider using top header button
- 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)
- Clone or download this repository
- Install dependencies:
pip install -r requirements.txtRun the application:
python ev_charging_finder.py๐ 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
----------------------------------------
ev_charging_finder.py- Main application with EVChargingFinder classrequirements.txt- Python dependenciesREADME.md- Documentation
find_nearby_stations()- Find stations within radiuscalculate_distance()- Calculate distance between coordinatesfilter_by_power_type()- Filter by connector typefilter_by_max_power()- Filter by power requirementsdisplay_stations()- Format and display results
To integrate with real charging station APIs (like OpenChargeMap, PlugShare, etc.):
- Get an API key from the service
- Replace the mock data in
_generate_mock_data()with API calls - 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()Install additional dependencies:
pip install foliumAdd 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')requests- HTTP requests for API integrationgeopy- Advanced geocoding and distance calculations (optional)folium- Interactive maps (optional)
This project is open source and available under the MIT License.