VoltPoint is a comprehensive web application designed to locate and manage electric vehicle (EV) charging stations. Built with modern PHP technologies, it provides an intuitive interface for users to find nearby charging points and for administrators to manage the charging infrastructure.
Click on the thumbnail to watch the project presentation on YouTube
- Interactive Map: Locate EV charging stations using geolocation services
- Station Management: Track charging points, EVSE units, and connectors
- Session Tracking: Monitor charging sessions and user history
- User Management: Role-based access control (Admin/User)
- Dashboard: Administrative interface for managing stations and users
- Secure Authentication: Login system with role-based permissions
- PHP 8.2+: Modern PHP with strict typing
- Symfony 7.0: Full-stack PHP framework
- Doctrine ORM: Database abstraction and ORM
- Twig: Template engine for views
- MariaDB 10.5: Relational database management
- Docker: Containerized development environment
- Nginx: High-performance web server
- Docker Compose: Multi-container orchestration
- Geocoder PHP (Nominatim): Geolocation services
- Nucleos Maps Bundle: Interactive mapping
- Symfony Forms: Form handling and validation
- Symfony Security: Authentication and authorization
Before starting, ensure you have the following installed:
- Docker (20.10+)
- Docker Compose (1.29+)
- Git
-
Clone the repository
git clone https://github.com/thmsgo18/VoltPoint.git cd VoltPoint -
Configure environment variables
cp .env .env.local # Edit .env.local with your configuration -
Start Docker containers
docker-compose up -d
-
Install dependencies
docker exec -it php-nginx composer install -
Run database migrations
docker exec -it php-nginx php bin/console doctrine:migrations:migrate -
Create an admin user
docker exec -it php-nginx php bin/console app:create-admin -
Access the application
Open your browser and navigate to:
http://localhost
VoltPoint/
├── config/ # Application configuration
├── docker/ # Docker configuration files
│ ├── nginx/ # Nginx configuration
│ └── php/ # PHP Dockerfile and config
├── migrations/ # Database migrations
├── public/ # Public assets (CSS, JS, entry point)
├── src/ # Application source code
│ ├── Command/ # Console commands
│ ├── Controller/ # Controllers
│ ├── Entity/ # Doctrine entities
│ ├── Form/ # Form types
│ ├── Repository/ # Data repositories
│ └── Security/ # Authentication logic
├── templates/ # Twig templates
├── translations/ # i18n translations
├── var/ # Cache and logs
└── vendor/ # Composer dependencies
# Run database migrations
docker exec -it php-nginx php bin/console doctrine:migrations:migrate
# Create admin user
docker exec -it php-nginx php bin/console app:create-admin
# Create connector type
docker exec -it php-nginx php bin/console app:create-connector
# Clear cache
docker exec -it php-nginx php bin/console cache:clear# Start containers
docker-compose up -d
# Stop containers
docker-compose down
# View logs
docker-compose logs -f
# Restart services
docker-compose restart- Admin: Full access to manage stations, users, and view all charging sessions
- User: Can view stations, start/stop charging sessions, and view personal history
The application uses the following main entities:
- User: Application users with authentication
- Station: Physical locations of charging stations
- EVSE: Electric Vehicle Supply Equipment units
- Connector: Individual charging connectors
- RechargeSession: Charging session records
The application provides a web interface for:
- User registration and authentication
- Station browsing and searching
- Charging session management
- Administrative dashboard
For more detailed information about the project, please refer to:
- Docker Setup Guide
- Architecture documentation in Présentation.pdf
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is proprietary software.
Thomas - thmsgo18
- OpenStreetMap & Nominatim for geolocation services
- The Symfony and PHP communities
- All contributors to this project
Made with love for the electric vehicle community
