Log clear hint for 403 (IP whitelist), 401, 429, 5xx. Commands exit with failure and print error when API returns no data. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
SpiceManagementSystem
Dieses Projekt ermöglicht das Verwalten von Grundzutaten und Gewürzmischungen über ein Web-Panel. Um die lokale Entwicklungsumgebung zu starten, müssen zunächst alle Abhängigkeiten per composer install nachinstalliert werden.
Ist das geschehehn, muss zudem MariaDB installiert werden.
Anschließend muss die Datenbank migriert werden - siehe Datenbankstruktur.
Um den lokalen Entwicklungsserver zu starten folgendes eingeben:
php artisan serve
Vision
Dashboard:
- Füllstandsanzeigen (Rohstoffe)
- Produkte im Lager (Inventar)
- Produkt Sales in Zeitspanne (Todo: Warenausgang DB Tabelle)
FOKUS: Warenwirtschaft (Lager, etc.)
Todo:
- DB Schema abändern, sodass alle Änderungen an einem Produkt gespeichert werden und als Produkthistorie abgerufen werden können.
- Recipes funktionsfähig machen (Prozentual?)
- Garbage collector Produktbilder
- Produktgröße und -preise kombinieren
- Inventar (Unique items in inventar tabelle mit "ist noch da?" flag)
- Bei Inventar anlegen automatisch füllstände der rohstoffe je prozent im rezept und verpackungsgröße anpassen
- Warenausgang (Produktverkauf anlegen)
- Dashboard machen (s.o.)
- Frontend schöner machen (Umsortieren der Sidebar Elemente, etc.)
- Continious Deployment
Cronjobs
Den folgenden Cronjob auf dem Server anlegen, um die Laravel jobs auszuführen:
0 4 * * * /usr/bin/php8.3 /var/www/html/your_laravel_app/artisan uploads:cron > /tmp/cron_log.txt
Datenbankstruktur
Um die Tabellen in Filament anzulegen, folgenden Befehl ausführen:
php artisan migrate
bzw. im DEV-Mode wenn grundstäzlich geändert wird zu erneuten migrieren und Migrations-Cache leeren:
php artisan migrate:refresh
Table supplier {
id int [primary key]
name varchar [not null]
}
Table spices_suppliers { // delivery (i just try to use naming convetions)
id int [primary key]
spice_id int [ref: > spices.id]
supplier_id int [ref: > supplier.id]
amount decimal(10,2)
}
Table recipes {
id int [pk, increment]
name varchar(255) [not null]
description text
}
Table spices {
id int [pk, increment]
name varchar(255) [not null]
amount decimal(10,2)
unit text
}
Table recipes_spices { // meta for every ingredient column of a spice
spice_id int [ref: > spices.id]
recipe_id int [ref: > recipes.id]
amount_in_percent decimal(4,2) [not null]
indexes {
(recipe_id, spice_id) [pk]
}
}
Table packings {
id inbt [pk, increment]
name varchar(255)
size decimal(10,2)
}
Table products {
id int [pk, increment]
title text
images json
description text
package_content text
package_id int [ref: > packings.id]
recipe_id int [ref: > recipes.id]
}
Table products_sizes {
id int [pk, increment]
gtin int
description text
product_id int [ref: > products.id]
packing_id int [ref: > packings.id]
price float
}
Table products_inventory {
id int [pk, increment]
product_id int [ref: > products.id]
size_id int [ref: > products_sizes.id]
out_at timestamp
}
IONOS-Shared Webhosting
Variablen für GH Action
Datenbank:
- DB_DATABASENAME
- DB_DATABASEUSER
- DB_HOSTNAME
MariaDB Version 10.11., Port 3306
SFTP:
- SFTP_HOSTNAME
- SFTP_USER
Domain: https://sms.bluefooted-booby-spices.com/,
Short-Domain sms.spices.blue, PHP Version 8.3
Um die Applikation auf Ionos Shared Webhosting zu hosten, muss die .htaccess-Datei so aussehen:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ /index.php [L]
</IfModule>
built with
About Laravel
Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as:
- Simple, fast routing engine.
- Powerful dependency injection container.
- Multiple back-ends for session and cache storage.
- Expressive, intuitive database ORM.
- Database agnostic schema migrations.
- Robust background job processing.
- Real-time event broadcasting.
Laravel is accessible, powerful, and provides tools required for large, robust applications.
Learning Laravel
Laravel has the most extensive and thorough documentation and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework.
You may also try the Laravel Bootcamp, where you will be guided through building a modern Laravel application from scratch.
If you don't feel like reading, Laracasts can help. Laracasts contains thousands of video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library.
Laravel Sponsors
We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the Laravel Partners program.
Premium Partners
- Vehikl
- Tighten Co.
- WebReinvent
- Kirschbaum Development Group
- 64 Robots
- Curotec
- Cyber-Duck
- DevSquad
- Jump24
- Redberry
- Active Logic
- byte5
- OP.GG
Contributing
Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the Laravel documentation.
Code of Conduct
In order to ensure that the Laravel community is welcoming to all, please review and abide by the Code of Conduct.
Security Vulnerabilities
If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via taylor@laravel.com. All security vulnerabilities will be promptly addressed.
License
The Laravel framework is open-sourced software licensed under the MIT license.