π Find your nearest EV charging spot with ease
Discover over 1 million charging stations worldwide with real-time availability
This project is currently in early development. Many features are planned but not yet implemented.
ChargeEase is a comprehensive, full-stack EV (Electric Vehicle) charging station finder that revolutionizes how drivers locate, book, and manage their charging sessions. With access to over 1 million charging stations worldwide, ChargeEase makes electric vehicle ownership convenient, efficient, and stress-free.
To accelerate the adoption of electric vehicles by making charging infrastructure easily accessible and user-friendly for everyone, everywhere.
- π GPS-powered location discovery - Fully functional geolocation integration
- πΊοΈ Interactive search interface - Advanced search with filters and real-time results
- π Advanced filtering - Filter by charging speed, connector type, price, amenities
- π Smart sorting - Sort by distance, rating, price, availability
- π― Real-time search - Debounced search with instant results
- π« Responsive design - Mobile-first approach with perfect tablet/desktop experience
- π Dark mode support - Automatic and manual theme switching
- β‘ Smooth animations - Framer Motion powered micro-interactions
- π Component library - Reusable UI components with variants
- π± Mobile optimized - Touch-friendly interface with gesture support
- π Secure login/signup - JWT-based authentication with validation
- π€ User profiles - Comprehensive user management
- π Protected routes - Route-level authentication guards
- π§ Social login ready - Google/Apple OAuth integration prepared
- π Password recovery - Reset password functionality
- π§ Geolocation API - Real-time location detection
- πΊοΈ Map integration ready - Prepared for Mapbox/Google Maps
- π Location-based search - Find stations near current location
- π― Address autocomplete - Smart address input
- π React Query - Advanced server state management
- π¦ Context API - Global state for authentication
- π£ Custom hooks - Reusable logic for auth, geolocation
- π± Local storage - Persistent user preferences
- π API services - Complete REST API integration
- π TypeScript types - Comprehensive type definitions
- β‘ Optimistic updates - Instant UI feedback
- π Background sync - Auto-refresh and cache invalidation
- π¨ Error boundaries - Graceful error recovery
- π Form validation - Real-time validation with Zod
- π Retry mechanisms - Automatic retry for failed requests
- π Loading states - Beautiful loading indicators
- π± Mobile-first - Optimized for all screen sizes
- π» Desktop enhanced - Rich desktop experience
- π¨ Consistent styling - Design system with Tailwind CSS
- πΌοΈ Adaptive layouts - Grid and flexbox layouts
Ensure you have the following installed on your system:
-
Clone the repository
git clone https://github.com/yourusername/chargeease.git cd chargeease
-
Install dependencies
# Install frontend dependencies cd frontend && npm install # Install backend dependencies (if setting up full stack) cd ../backend && npm install
-
Set up environment variables
# Frontend environment (optional) cd frontend cp .env.example .env # Edit .env with your configuration: # VITE_API_URL=http://localhost:5000/api/v1 # VITE_MAPBOX_TOKEN=your_mapbox_token (when ready)
-
Start the development server
# Start frontend development server cd frontend && npm run dev # App runs on http://localhost:5173 # Start backend (optional) cd backend && npm run dev # Server runs on http://localhost:5000
-
Open your browser Navigate to
http://localhost:5173
to see ChargeEase in action! π
chargeease/
βββ frontend/ # React TypeScript frontend β
β βββ public/ # Static assets
β βββ src/
β β βββ components/ # UI components
β β β βββ ui/ # Reusable UI components β
β β β β βββ Button.tsx # Multi-variant button component
β β β β βββ Input.tsx # Advanced input with validation
β β β β βββ ...
β β β βββ auth/ # Authentication components β
β β β β βββ LoginPage.tsx
β β β β βββ SignupPage.tsx
β β β β βββ ProtectedRoute.tsx
β β β βββ common/ # Common components β
β β β β βββ ErrorBoundary.tsx
β β β β βββ ...
β β β βββ home/ # Home page components β
β β β β βββ Hero.tsx # Hero section
β β β β βββ SearchBar.tsx # Advanced search
β β β β βββ PopularDestinations.tsx
β β β β βββ TopRatedSpots.tsx
β β β β βββ ChargingClub.tsx
β β β βββ layout/ # Layout components β
β β β βββ Header.tsx # Advanced navigation
β β β βββ Footer.tsx
β β β βββ MainLayout.tsx
β β βββ pages/ # Page components β
β β β βββ SearchPage.tsx # Comprehensive search page
β β β βββ auth/ # Auth pages
β β β βββ ...
β β βββ hooks/ # Custom React hooks β
β β β βββ useAuth.ts # Authentication hook
β β β βββ useGeolocation.ts # Location services
β β β βββ ...
β β βββ services/ # API services β
β β β βββ api.ts # Complete API client
β β β βββ ...
β β βββ utils/ # Utility functions β
β β β βββ helpers.ts # Helper functions
β β β βββ constants.ts # App constants
β β β βββ ...
β β βββ types/ # TypeScript definitions β
β β β βββ index.ts # Complete type system
β β βββ App.tsx # Main app with routing β
β β βββ main.tsx # App entry point β
β βββ package.json # Frontend dependencies
β βββ vite.config.ts # Vite configuration
β βββ tailwind.config.js # Tailwind CSS config
β βββ tsconfig.json # TypeScript config
βββ backend/ # Express.js backend (API Ready)
β βββ server.js # Basic server setup
β βββ ... # Full backend to be implemented
βββ README.md # This file β
βββ .gitignore # Git ignore rules
- User registration with email validation
- Secure login with JWT authentication
- Password strength validation
- Remember me functionality
- Social login integration (UI ready)
- Protected route authentication
- User profile management
- Logout functionality
- Location-based station search
- Advanced filtering system
- Charging speed (Level 1, 2, DC Fast, Supercharger)
- Connector types (J1772, CCS, CHAdeMO, Tesla)
- Price range filtering
- Amenities filtering
- Host type filtering
- Real-time search with debouncing
- GPS location detection
- Distance calculation and sorting
- Search results pagination
- Responsive design (mobile-first)
- Dark mode support
- Smooth animations and transitions
- Loading states and error handling
- Form validation with real-time feedback
- Accessibility features
- SEO-friendly routing
- Type-safe API integration
- Optimistic UI updates
- Background data synchronization
- Local storage for preferences
- Error boundary implementation
- Retry mechanisms for failed requests
- Advance station reservations
- Booking confirmation system
- Calendar integration
- Booking history tracking
- Cancellation and modification
- Waitlist functionality
- Multiple payment methods
- Secure payment processing (Stripe)
- Pricing calculation
- Invoice generation
- Subscription management
- Refund processing
- Live station availability
- Real-time notifications
- WebSocket connections
- Push notifications
- Live chat support
- Route planning integration
- Carbon footprint tracking
- Community reviews and ratings
- AI-powered recommendations
- Multi-language support
- Offline functionality
ChargeEase uses a comprehensive design system built with Tailwind CSS:
/* Primary Colors */
--orange-primary: #FF6B35; /* Main brand color */
--orange-light: #FF8A65; /* Hover states */
--orange-dark: #E55722; /* Active states */
/* Neutral Colors */
--gray-900: #1F2937; /* Dark backgrounds */
--gray-800: #374151; /* Card backgrounds */
--gray-600: #6B7280; /* Text secondary */
--gray-300: #D1D5DB; /* Borders */
--white: #FFFFFF; /* Text primary */
/* Status Colors */
--success: #10B981; /* Available stations */
--warning: #F59E0B; /* Limited availability */
--error: #EF4444; /* Unavailable */
--info: #3B82F6; /* Informational */
- Atomic Design: Atoms β Molecules β Organisms β Templates β Pages
- Consistent Spacing: 8px grid system (4, 8, 16, 24, 32, 48, 64px)
- Responsive Breakpoints: Mobile-first approach
- Accessibility: WCAG 2.1 AA compliance
npm run dev # Start Vite dev server (http://localhost:5173)
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run ESLint
npm run type-check # TypeScript type checking
npm run dev # Start with nodemon (http://localhost:5000)
npm run start # Start production server
npm run test # Run backend tests
- Unit Tests: Jest + React Testing Library
- Component Tests: Isolated component testing
- E2E Tests: Cypress end-to-end tests
- Visual Regression: Chromatic visual testing
- Code Splitting: Route-based and component-based splitting
- Lazy Loading: Images and non-critical components
- Bundle Analysis: Regular bundle size monitoring
- Caching Strategy: React Query for API responses
- JWT Authentication: Secure token-based auth
- Input Validation: Zod schema validation
- XSS Protection: React's built-in protection
- Type Safety: Full TypeScript implementation
- Error Boundaries: Graceful error handling
- HTTPS Everywhere: SSL/TLS encryption
- CORS Protection: Configured for production domains
- Rate Limiting: API abuse prevention
- Input Sanitization: Server-side validation
- Environment Variables: Secure credential management
- Project setup and architecture
- Core UI components
- Authentication system
- Basic search functionality
- Responsive design
- Complete API integration
- Map integration (Mapbox/Google Maps)
- Booking system
- Payment processing
- User dashboard
- Real-time notifications
- Community features
- AI recommendations
- Mobile app (React Native)
- Advanced analytics
- Performance optimization
- Internationalization
- Enterprise features
- API partnerships
- Global expansion
We welcome contributions! Here's how you can help:
- Backend API Development: Express.js server implementation
- Map Integration: Mapbox or Google Maps integration
- Payment System: Stripe integration
- Testing: Unit and integration tests
- Documentation: API docs and user guides
- π΄ Fork the repository
- πΏ Create a feature branch
git checkout -b feature/amazing-new-feature
- π» Make your changes
- Follow our coding standards
- Add tests for new features
- Update documentation
- π§ͺ Test your changes
npm run lint npm run type-check npm run build
- π Commit with conventional commits
git commit -m "feat: add real-time station availability" git commit -m "fix: resolve payment processing issue"
- π Push and create PR
- π Documentation
- π¬ Discord Community
- π§ Email Support
- π« GitHub Issues
This project is licensed under the MIT License - see the LICENSE file for details.
If you find ChargeEase helpful, please consider giving it a star! Your support helps us continue developing and improving the platform.
Made with β‘ and π by the ChargeEase Team
Accelerating the future of electric mobility, one charge at a time π±