How munlaly/webgurus-nyarigyak-1csoport works
Purpose and Shape
This is an early-stage meal-planning and recipe/inventory application built on Laravel. The domain schema exists, but HTTP controllers and application routes are effectively skeletal. A separate Nuxt frontend is scaffolded, while Laravel also retains its default Vite/Vue frontend scaffold.
Entry Points and Runtime
Laravel serves HTTP requests through public/index.php, bootstraps application bindings and middleware in bootstrap/app.php, and defines web endpoints in routes/web.php. CLI and scheduled/console commands enter through artisan and routes/console.php.
The backend runtime is PHP/Laravel with Composer dependencies (composer.json). Local development is configured for DDEV in .ddev/config.yaml. The browser-facing frontend may be independently run as Nuxt from frontend/nuxt.config.ts.
Domain Persistence Model
Eloquent models define the core meal-planning data graph:
• Recipe catalog and classification: app/Models/Recipes.php, app/Models/Category.php, app/Models/Ingredients.php.
• Recipe-to-ingredient association: app/Models/RecipeIngredient.php.
• Per-user state: app/Models/User.php, app/Models/UserInventory.php, app/Models/UserSettings.php.
• Planned meals: app/Models/MealPlan.php.
Database structure is authored through corresponding migrations, especially database/migrations/2026_08_06_205202_create_recipes_table.php, database/migrations/2026_08_06_205230_create_recipe_ingredients_table.php, and database/migrations/2026_08_06_205301_create_meal_plans_table.php.
Primary Intended Data Flow
The intended business flow is: authenticated user → user settings and inventory → select recipes composed of ingredients → create meal-plan records. Recipe ingredients form the key boundary between the global recipe catalog and user-specific inventory/planning data. Persistence is mediated by Laravel Eloquent models, with connection settings centralized in config/database.php.
No domain orchestration layer, API controllers, or concrete request handlers are present beyond the base app/Http/Controllers/Controller.php; implementing these is the main missing application layer.
Authentication and User Boundary
Laravel’s standard user foundation is present in app/Models/User.php and database/migrations/0001_01_01_000000_create_users_table.php. Authentication behavior is configured in config/auth.php. User-owned inventory, settings, and plans should be authorization-scoped at the controller/service boundary before querying or mutating their associated models.
Presentation Boundaries
Two frontend paths coexist:
• Laravel/Vite/Vue scaffold: resources/js/app.js, resources/js/App.vue, vite.config.js.
• Standalone Nuxt application scaffold: frontend/app/app.vue, frontend/nuxt.config.ts.
Neither tree, from the available structure, establishes an explicit backend API contract. Decide whether Nuxt consumes Laravel APIs or whether Laravel serves the Vite application before extending UI work, to avoid parallel frontend ownership.
Platform Services
Laravel configuration exposes database, cache, sessions, filesystem storage, mail, logging, and queues through config/database.php, config/cache.php, config/session.php, config/filesystems.php, config/mail.php, and config/queue.php. Default cache and jobs schema migrations exist, so asynchronous work can be introduced for future plan generation or notifications, but no jobs are currently implemented.
Main entry points: User.php Users and preferences · Controller.php Controller boundary · RecipeIngredient.php Recipe ingredients · web.php Web routes
Components 18
Laravel runtime
- HTTP entry
public/index.php - Application bootstrap · Registers application bindings and middleware.
bootstrap/app.php - Web routes · Endpoints are currently skeletal.
routes/web.php - Controller boundary · Missing request orchestration and ownership authorization belong here.
app/Http/Controllers/Controller.php - CLI entry
artisan - Console commands
routes/console.php - Authentication
config/auth.php
Meal-planning domain
- Eloquent persistence · Mediates domain reads and writes.
- Users and preferences · User identity, settings, and inventory ownership.
app/Models/User.php - User inventory
app/Models/UserInventory.php - User settings
app/Models/UserSettings.php - Recipe catalog · Recipes, categories, and ingredients are global catalog data.
app/Models/Recipes.php - Recipe ingredients · Connects recipes to ingredients and is the catalog-to-planning boundary.
app/Models/RecipeIngredient.php - Meal plans · User-owned planned meal records.
app/Models/MealPlan.php - Application database · Connection configuration is centralized in Laravel.
config/database.php - Domain schema · Creates recipe, recipe-ingredient, meal-plan, and user tables.
database/migrations/2026_08_06_205202_create_recipes_table.php
Frontend options
- Laravel Vite/Vue scaffold · Alternative browser UI path served by Laravel.
resources/js/app.js - Standalone Nuxt scaffold · Its backend API contract is not yet defined.
frontend/nuxt.config.ts
Connections 21
- HTTP entry → Application bootstrap: boots
- Application bootstrap → Web routes: loads
- Web routes → Controller boundary: should dispatch to
- Controller boundary → Authentication: authenticates and scopes
- Controller boundary → Eloquent persistence: orchestrates
- CLI entry → Console commands: loads
- Authentication → Users and preferences: identifies
- Eloquent persistence → Users and preferences: persists
- Eloquent persistence → Recipe catalog: persists
- Eloquent persistence → Recipe ingredients: persists
- Eloquent persistence → Meal plans: persists
- Users and preferences → User inventory: owns
- Users and preferences → User settings: owns
- Users and preferences → Meal plans: owns
- Recipe catalog → Recipe ingredients: composed of
- Recipe ingredients → User inventory: matches against
- Recipe ingredients → Meal plans: informs selection
- Eloquent persistence → Application database: reads and writes
- Domain schema → Application database: defines
- Laravel Vite/Vue scaffold → Web routes: possible Laravel-served UI
- Standalone Nuxt scaffold → Controller boundary: requires API contract