GeoSnap is an open-source project that allows you to upload photos with metadata, geolocate them, and visualize their exact locations on a map with interactive polygons. Ideal for mapping properties, tracking outdoor activities, and more.
- Upload photos with metadata
- Geolocate photos and display them on a Google Map
- Create albums and draw polygons around photo clusters
- Open-source and free to use
- PHP >= 7.3
- Composer
- Laravel
- MySQL
- Node.js & npm
-
Clone the repository:
git clone https://github.com/raulcastro/GeoSnap.git cd GeoSnap
-
Install dependencies:
composer install npm install
-
Copy the
.env
file:cp .env.example .env
-
Generate the application key:
php artisan key:generate
-
Configure your
.env
file: Update your.env
file with your database credentials and other necessary configuration. -
Update PHP Configuration: Ensure your PHP configuration allows for file uploads of up to 20MB. Edit your
php.ini
file to include the following settings:upload_max_filesize = 20M post_max_size = 20M
You can find the location of your
php.ini
file by running:php --ini
After making these changes, restart your web server:
sudo apachectl restart
or
valet restart
-
Run migrations:
php artisan migrate
-
Create storage link:
php artisan storage:link
-
Set permissions:
sudo chmod -R 775 storage bootstrap/cache sudo chown -R www-data:www-data storage bootstrap/cache
-
Serve the application:
php artisan serve
-
Access the application: Open your web browser and go to
http://localhost:8000
.
- Backend: Laravel
- Database: MySQL
- Storage: Firebase Storage or Amazon S3 (optional)
- Maps: Google Maps API
- Admin Panel: AdminLTE
-
The project is configured to handle photo uploads with a maximum file size of 20MB. Ensure your PHP settings are configured accordingly.
-
If you encounter any issues with file uploads, verify that your
php.ini
settings are correctly configured and that your web server has been restarted to apply the changes.
GeoSnap is licensed under the GPL-3.0 license.
We welcome contributions from the community. Please read our contributing guidelines for more information.
For any questions or suggestions, please contact Raúl Castro.