Erster Upload
This commit is contained in:
@@ -0,0 +1,226 @@
|
||||
# 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:
|
||||
- [x] DB Schema abändern, sodass alle Änderungen an einem Produkt gespeichert werden und als Produkthistorie abgerufen werden können.
|
||||
- [x] Recipes funktionsfähig machen (Prozentual?)
|
||||
- [x] Garbage collector Produktbilder
|
||||
- [x] Produktgröße und -preise kombinieren
|
||||
- [x] Inventar (Unique items in inventar tabelle mit "ist noch da?" flag)
|
||||
- [x] Bei Inventar anlegen automatisch füllstände der rohstoffe je prozent im rezept und verpackungsgröße anpassen
|
||||
- [x] Warenausgang (Produktverkauf anlegen)
|
||||
- [ ] Dashboard machen (s.o.)
|
||||
- [x] Frontend schöner machen (Umsortieren der Sidebar Elemente, etc.)
|
||||
- [x] 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
|
||||
<p align="center"><a href="https://laravel.com" target="_blank"><img src="https://raw.githubusercontent.com/laravel/art/master/logo-lockup/5%20SVG/2%20CMYK/1%20Full%20Color/laravel-logolockup-cmyk-red.svg" width="400" alt="Laravel Logo"></a></p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/laravel/framework/actions"><img src="https://github.com/laravel/framework/workflows/tests/badge.svg" alt="Build Status"></a>
|
||||
<a href="https://packagist.org/packages/laravel/framework"><img src="https://img.shields.io/packagist/dt/laravel/framework" alt="Total Downloads"></a>
|
||||
<a href="https://packagist.org/packages/laravel/framework"><img src="https://img.shields.io/packagist/v/laravel/framework" alt="Latest Stable Version"></a>
|
||||
<a href="https://packagist.org/packages/laravel/framework"><img src="https://img.shields.io/packagist/l/laravel/framework" alt="License"></a>
|
||||
</p>
|
||||
|
||||
## 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](https://laravel.com/docs/routing).
|
||||
- [Powerful dependency injection container](https://laravel.com/docs/container).
|
||||
- Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage.
|
||||
- Expressive, intuitive [database ORM](https://laravel.com/docs/eloquent).
|
||||
- Database agnostic [schema migrations](https://laravel.com/docs/migrations).
|
||||
- [Robust background job processing](https://laravel.com/docs/queues).
|
||||
- [Real-time event broadcasting](https://laravel.com/docs/broadcasting).
|
||||
|
||||
Laravel is accessible, powerful, and provides tools required for large, robust applications.
|
||||
|
||||
## Learning Laravel
|
||||
|
||||
Laravel has the most extensive and thorough [documentation](https://laravel.com/docs) 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](https://bootcamp.laravel.com), where you will be guided through building a modern Laravel application from scratch.
|
||||
|
||||
If you don't feel like reading, [Laracasts](https://laracasts.com) 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](https://partners.laravel.com).
|
||||
|
||||
### Premium Partners
|
||||
|
||||
- **[Vehikl](https://vehikl.com/)**
|
||||
- **[Tighten Co.](https://tighten.co)**
|
||||
- **[WebReinvent](https://webreinvent.com/)**
|
||||
- **[Kirschbaum Development Group](https://kirschbaumdevelopment.com)**
|
||||
- **[64 Robots](https://64robots.com)**
|
||||
- **[Curotec](https://www.curotec.com/services/technologies/laravel/)**
|
||||
- **[Cyber-Duck](https://cyber-duck.co.uk)**
|
||||
- **[DevSquad](https://devsquad.com/hire-laravel-developers)**
|
||||
- **[Jump24](https://jump24.co.uk)**
|
||||
- **[Redberry](https://redberry.international/laravel/)**
|
||||
- **[Active Logic](https://activelogic.com)**
|
||||
- **[byte5](https://byte5.de)**
|
||||
- **[OP.GG](https://op.gg)**
|
||||
|
||||
## Contributing
|
||||
|
||||
Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions).
|
||||
|
||||
## Code of Conduct
|
||||
|
||||
In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#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](mailto:taylor@laravel.com). All security vulnerabilities will be promptly addressed.
|
||||
|
||||
## License
|
||||
|
||||
The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).
|
||||
Reference in New Issue
Block a user