This project is a fully developed backend system that manages event locations in a database. Users can add, edit, and delete event locations. Each location is displayed on a Google Maps widget based on its address. The system also provides data through an API for external services to access.

Key Features
Google Maps Integration: A map that shows the exact location of the event venue. Addresses are converted into geographic coordinates for display on Google Maps.
API Provision: An API that provides event data to external services
Data Validation: Comprehensive validation for all user inputs (email, adress,...)
Dynamic Forms: User-friendly forms for creating and editing event locations
Technologies
Laravel: PHP framework used for backend development.
Laravel Compilor: Laravel Mix
Frontend Framework: Laravel Blade
Google Maps API: Used for displaying event locations on a map.
GuzzleHTTP Client: Used to retrieve coordinates based on addresses using Google Maps Geocoding.
Frontend
The frontend was built using Laravel Blade templates, allowing for easy user interaction with the system. The map integration provides a visual component, showing the event location directly on Google Maps.
Forms
Users can add, edit, or delete event locations through a simple interface. Input validation is enforced, warning users about invalid entries, such as incorrect email formats or phone numbers.

View Eventlocation

Dashboard

Edit Eventlocation

Create new Eventlocation
Google Maps Integration
The Google Maps integration allows the address of each event location to be displayed on a map. The system uses the Google Geocoding API to convert the entered address into latitude and longitude, which is then used to position the marker on the map.

Details Page with Google Maps

Google Maps Widget
API provision for external systems
The system provides event data via an API, which can be used by external services. The API follows RESTful principles, allowing for standardized communication, so third-party systems can retrieve and use the event location data.
Available data via API
Event locations: Name, address, coordinates, and additional information.
JSON Format: Easily integrated into external systems.
Endpoint: /api/EventLocationsApi
Usage
The system provides an API that external services can use to retrieve event location data. This could be utilized in a mobile app or an external website to display event locations.

JSON Output

API Controller

API Registration
Database and Migrations
The entire database structure was built using Laravel migrations. Specific validations for event location input were added to ensure only valid information is stored.
Migration: Structured the database tables for event locations
Model-Controller Structure: Efficient separation of logic in models and controllers for clean and maintainable code.

Database tables migration

add coordination to database

Event Model

.env
Documention (readme.md)
Full code documentation
