first commit

This commit is contained in:
Doar Mihai
2026-04-28 16:10:27 +03:00
commit b73f568d90
107 changed files with 18067 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
<?php
use App\Http\Controllers\AuthController;
use App\Http\Controllers\API\CityController;
use App\Http\Controllers\API\FavoriteController;
use App\Http\Controllers\API\TripController;
use App\Http\Controllers\API\UserController;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
*/
// Authentication routes (public)
Route::post('/register', [AuthController::class, 'register']);
Route::post('/login', [AuthController::class, 'login']);
// Public city routes (no authentication required)
Route::prefix('cities')->group(function () {
Route::get('/search', [CityController::class, 'search']);
Route::get('/{city}', [CityController::class, 'show']);
Route::get('/{city}/attractions', [CityController::class, 'attractions']);
Route::get('/{city}/map-data', [CityController::class, 'mapData']);
});
// Protected routes (require authentication)
Route::middleware('auth:sanctum')->group(function () {
// Auth routes
Route::post('/logout', [AuthController::class, 'logout']);
Route::get('/user', [AuthController::class, 'user']);
// User profile
Route::get('/profile', [UserController::class, 'show']);
Route::put('/profile', [UserController::class, 'update']);
// Cities (protected actions)
Route::post('/cities', [CityController::class, 'store']);
// Favorites
Route::get('/favorites', [FavoriteController::class, 'index']);
Route::post('/favorites/{city}', [FavoriteController::class, 'store']);
Route::delete('/favorites/{city}', [FavoriteController::class, 'destroy']);
// Trips
Route::apiResource('trips', TripController::class);
});
+8
View File
@@ -0,0 +1,8 @@
<?php
use Illuminate\Foundation\Inspiring;
use Illuminate\Support\Facades\Artisan;
Artisan::command('inspire', function () {
$this->comment(Inspiring::quote());
})->purpose('Display an inspiring quote');
+28
View File
@@ -0,0 +1,28 @@
<?php
use App\Http\Controllers\CityController;
use App\Http\Controllers\Auth\LoginController;
use App\Http\Controllers\Auth\RegisterController;
use Illuminate\Support\Facades\Route;
// Homepage
Route::get('/', function () {
// Get popular cities with thumbnails
$popularCities = \App\Models\City::whereNotNull('thumbnail_url')
->inRandomOrder()
->limit(4)
->get(['id', 'name', 'slug', 'country', 'thumbnail_url']);
return view('welcome', compact('popularCities'));
});
// Authentication Routes
Route::get('/login', [LoginController::class, 'showLoginForm'])->name('login');
Route::post('/login', [LoginController::class, 'login']);
Route::post('/logout', [LoginController::class, 'logout'])->name('logout');
Route::get('/register', [RegisterController::class, 'showRegistrationForm'])->name('register');
Route::post('/register', [RegisterController::class, 'register']);
// City pages (web views)
Route::get('/cities/{city}', [CityController::class, 'show'])->name('cities.show');