mirror of
https://github.com/yummy4friends/y4f.git
synced 2024-12-30 22:27:08 +01:00
Compare commits
No commits in common. "6f8dabbd3f2a8bec72ed45e64a7cb9b2ef643b41" and "6c1b7bd3369274ca03c047b36be045bd9de78ab8" have entirely different histories.
6f8dabbd3f
...
6c1b7bd336
46
README.md
46
README.md
@ -1,47 +1,3 @@
|
|||||||
# y4f
|
# y4f
|
||||||
|
|
||||||
## Description (German)
|
[![Deploy blazor to GitHub Pages](https://github.com/yummy4friends/y4f/actions/workflows/main.yml/badge.svg?branch=dev)](https://github.com/yummy4friends/y4f/actions/workflows/main.yml)
|
||||||
|
|
||||||
Yummy4Friends ist eine benutzerfreundliche und visuell ansprechende Webapp zur Onlinebestellung von Speisen mit der dynamischen Einbindung einer Kunden- und Speisendatenbank unter Berücksichtigung von Sonderwünschen. Zur Kundenbindung wird auch die Verwaltung von Kundenrabatten, Vorbestellmöglichkeiten sowie konfigurierbare Abholtermine realisiert.
|
|
||||||
|
|
||||||
## Description (English)
|
|
||||||
|
|
||||||
Yummy4Friends is a user friendly and visually appealing WebApp for ordering food or other things online. Food or other stuff get dynamically fetched from a customer and food database while also taking into account special requests. To attract customers one can also offer limeted time sales/coupons, ordering in advance as well as being able to choosing their preferred pickup time.
|
|
||||||
|
|
||||||
## Tech Stack
|
|
||||||
|
|
||||||
[Blazor WebAssembly](https://dotnet.microsoft.com/en-us/apps/aspnet/web-apps/blazor)
|
|
||||||
|
|
||||||
## Dependecies
|
|
||||||
|
|
||||||
On Ubuntu our dependencies are:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
nala install dotnet-sdk-7.0 docker-ce docker-ce-cli docker-buildx-plugin docker-compose-plugin
|
|
||||||
```
|
|
||||||
|
|
||||||
Dependency names will depend on your linux distribution.
|
|
||||||
|
|
||||||
For this this project you also need Traefik. Or you can use your own reverse proxy and edit the docker-compose files to reflect that.
|
|
||||||
|
|
||||||
## Running it
|
|
||||||
|
|
||||||
Clone the repo.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
git clone https://github.com/yummy4friends/y4f.git && cd y4f
|
|
||||||
```
|
|
||||||
|
|
||||||
Start the website with docker-compose.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
docker-compose up --build -d
|
|
||||||
```
|
|
||||||
|
|
||||||
Also start up the API.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd src/WebApi/ && docker-compose up --build -d
|
|
||||||
```
|
|
||||||
|
|
||||||
This setup is for showcasing the project and is therefore not intended for production.
|
|
||||||
|
@ -12,11 +12,12 @@ services:
|
|||||||
- traefik.http.routers.y4f-webapi.tls=true
|
- traefik.http.routers.y4f-webapi.tls=true
|
||||||
- traefik.http.routers.y4f-webapi.tls.certResolver=default
|
- traefik.http.routers.y4f-webapi.tls.certResolver=default
|
||||||
networks:
|
networks:
|
||||||
- y4f-default
|
- default
|
||||||
- traefik
|
- traefik
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
y4f-default:
|
default:
|
||||||
|
name: y4f-default
|
||||||
external: true
|
external: true
|
||||||
traefik:
|
traefik:
|
||||||
external: true
|
external: true
|
@ -1,82 +0,0 @@
|
|||||||
@page "/Bestelluebersicht"
|
|
||||||
@layout ChefinLayout
|
|
||||||
|
|
||||||
<div class="container d-flex flex-column">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-8">
|
|
||||||
<br /><br />
|
|
||||||
<table class="table table-bordered">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th colspan="2">Aktive Bestellungen</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td><a href="BDetail">#1234 12:30</a></td>
|
|
||||||
<td><a href="BDetail">#2345 18:45</a></td>
|
|
||||||
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="BDetail">#3456 13:00</a></td>
|
|
||||||
<td><a href="BDetail">#4567 19:00</a></td>
|
|
||||||
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="BDetail">#5678 14:30</a></td>
|
|
||||||
<td><a href="BDetail">#6789 19:15</a></td>
|
|
||||||
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="BDetail">#4321 15:15</a></td>
|
|
||||||
<td><a href="BDetail">#5432 19:15</a></td>
|
|
||||||
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="BDetail">#6543 15:30</a></td>
|
|
||||||
<td><a href="BDetail">#7654 19:15</a></td>
|
|
||||||
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="BDetail">#7654 15:30</a></td>
|
|
||||||
<td> </td>
|
|
||||||
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="BDetail">#8765 16:00</a></td>
|
|
||||||
<td> </td>
|
|
||||||
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="BDetail">#9876 17:30</a></td>
|
|
||||||
<td> </td>
|
|
||||||
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-3">
|
|
||||||
<p id="text" readonly >Abholzeit</p>
|
|
||||||
<br />
|
|
||||||
<form id="button" action="Bestelluebersicht">
|
|
||||||
<input type="submit" value="30 Min" class="btn">
|
|
||||||
</form>
|
|
||||||
<form id="button" action="Bestelluebersicht">
|
|
||||||
<input type="submit" value="45 Min" class="btn">
|
|
||||||
</form>
|
|
||||||
<form id="button" action="Bestelluebersicht">
|
|
||||||
<input type="submit" value="1 Std" class="btn">
|
|
||||||
</form>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@code {
|
|
||||||
|
|
||||||
}
|
|
@ -1,37 +0,0 @@
|
|||||||
tbody {
|
|
||||||
border-color: black;
|
|
||||||
}
|
|
||||||
td {
|
|
||||||
text-align:center;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
table {
|
|
||||||
border-radius: 50px !important;
|
|
||||||
margin-left: 50px;
|
|
||||||
}
|
|
||||||
td > a {
|
|
||||||
text-decoration: none;
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
#button {
|
|
||||||
margin-bottom: 35px;
|
|
||||||
border-radius: 50px;
|
|
||||||
margin-left: 100px;
|
|
||||||
}
|
|
||||||
#text {
|
|
||||||
margin-top: 50px;
|
|
||||||
margin-bottom: 45px;
|
|
||||||
margin-left: 100px;
|
|
||||||
width: 69%;
|
|
||||||
padding-top: 2px;
|
|
||||||
padding-bottom: 2px;
|
|
||||||
padding: 8px;
|
|
||||||
color: black;
|
|
||||||
background-color: #89F9A5;
|
|
||||||
border-style:none;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
thead {
|
|
||||||
background-color: #89F9A5;
|
|
||||||
border-color: #89F9A5;
|
|
||||||
}
|
|
@ -1,139 +0,0 @@
|
|||||||
@page "/BestelluebersichtD-Chefin"
|
|
||||||
@layout ChefinLayout
|
|
||||||
|
|
||||||
<div class="container">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-sm-12 col-lg-6">
|
|
||||||
@*Tabelle Ihre Bestellung*@
|
|
||||||
<div class="tbl-container">
|
|
||||||
<table class="table bdr">
|
|
||||||
<thead class="bg_green">
|
|
||||||
<tr>
|
|
||||||
<td>Ihre Bestellung</td>
|
|
||||||
<th></th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody class="bg_lightgreen" style="background-color:white;">
|
|
||||||
<tr>
|
|
||||||
<td class="br" style="padding-top:20px; padding-bottom:0px; border-bottom-width: 0px;">
|
|
||||||
1 Nudel mit Hühnerfleisch (groß)
|
|
||||||
<div style="font-size:0.7rem;padding-left:15px;">mit Knoblauchsoße</div>
|
|
||||||
</td>
|
|
||||||
<td class="d-flex justify-content-center align-items-center" style="padding-top:20px; padding-bottom:0px; border-style:hidden;">9,10€</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="br" style=" padding-top:0px; border-bottom-width: 0px;">1 Coca Cola</td>
|
|
||||||
<td class="d-flex justify-content-center align-items-center" style="padding-top:0px; border-style:hidden;">2,50€</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="br" style=" padding-top:0px; border-bottom-width: 0px;"></td>
|
|
||||||
<td class="d-flex justify-content-center align-items-center" style="border-style:hidden;"></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="br" style=" padding-top:0px; border-bottom-width: 0px;"></td>
|
|
||||||
<td class="d-flex justify-content-center align-items-center" style="border-style:hidden;"></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="br" style=" padding-top:0px; border-bottom-width: 0px;"></td>
|
|
||||||
<td class="d-flex justify-content-center align-items-center" style="border-style:hidden;"></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="br" style=" padding-top:0px; border-bottom-width: 0px;"></td>
|
|
||||||
<td class="d-flex justify-content-center align-items-center" style="border-style:hidden;"></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="br" style=" padding-top:0px; border-bottom-width: 0px;"></td>
|
|
||||||
<td class="d-flex justify-content-center align-items-center" style="border-style:hidden;"></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="br" style=" padding-top:0px; border-bottom-width: 0px;"></td>
|
|
||||||
<td class="d-flex justify-content-center align-items-center" style="border-style:hidden;"></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="br" style=" padding-top:0px; border-bottom-width: 0px;"></td>
|
|
||||||
<td class="d-flex justify-content-center align-items-center" style="border-style:hidden;"></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="br" style=" padding-top:0px; border-bottom-width: 0px;"></td>
|
|
||||||
<td class="d-flex justify-content-center align-items-center" style="border-bottom-width: 0px; border-style:hidden;"></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="br" style=" padding-top:0px; border-bottom-width: 0px;"></td>
|
|
||||||
<td class="d-flex justify-content-center align-items-center" style="border-bottom-width: 0px; border-style:hidden;"></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="br" style=" padding-top:0px; border-bottom-width: 0px;"></td>
|
|
||||||
<td class="d-flex justify-content-center align-items-center" style="border-bottom-width: 0px; border-style:hidden;"></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="br" style=" padding-top:0px; border-bottom-width: 0px;"></td>
|
|
||||||
<td class="d-flex justify-content-center align-items-center" style="border-bottom-width: 0px; border-style:hidden;"></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="br" style=" padding-top:0px; border-bottom-width: 0px;"></td>
|
|
||||||
<td class="d-flex justify-content-center align-items-center" style="border-bottom-width: 0px; border-style:hidden;"></td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
<tfoot class="bg_lightgreen">
|
|
||||||
<tr style="border-top:solid 1px black; background-color:white;">
|
|
||||||
<th class="" style="text-align:right;">Summe</th>
|
|
||||||
<td class="d-flex justify-content-center align-items-center">11,60€</td>
|
|
||||||
</tr>
|
|
||||||
</tfoot>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-12 col-lg-6">
|
|
||||||
|
|
||||||
<div class="d-flex flex-column align-items-center ">
|
|
||||||
<div class="tbl-container w-100">
|
|
||||||
<!-- <== overflow: hidden applied to parent -->
|
|
||||||
<table class="table table-bordered bdr " style=" border-radius: 50px; margin-left: 50px;">
|
|
||||||
<thead class="bg_green">
|
|
||||||
<tr>
|
|
||||||
<td class="d-flex justify-content-center align-items-center" style="border-bottom:0px;">
|
|
||||||
<p>Abholzeit</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody >
|
|
||||||
<tr>
|
|
||||||
<td class="d-flex justify-content-center align-items-center" style="padding-top:0px; background-color:white;">
|
|
||||||
<div style="margin:20px;">
|
|
||||||
<div class="d-flex justify-content-center align-items-center" >
|
|
||||||
<p>12:30 Uhr</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<div class="d-flex flex-column" style="align-items: center; margin-left: 100px;">
|
|
||||||
<button class="btn_back w-75">Zurück</button>
|
|
||||||
<button class="btn btn-danger w-75" style="border-radius: 50px; padding-top:12px; padding-bottom:12px; color:black;">Bestellung auflösen</button>
|
|
||||||
<button class="btn_forward w-75">Bestellung abschließen</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
@*Buttons*@
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
@*<div class="h-100">
|
|
||||||
@*Essen Abholen?
|
|
||||||
<div class="row h-25 w-100">
|
|
||||||
<div class="col">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>*@
|
|
||||||
@code {
|
|
||||||
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
button {
|
|
||||||
margin: 10px;
|
|
||||||
}
|
|
@ -1,25 +0,0 @@
|
|||||||
<nav class="navbar navbar-expand-md navbar-light mb-4 me-5 ms-5 ">
|
|
||||||
<div class="container-fluid">
|
|
||||||
@*<a class="navbar-brand" href="">Yummy4Friends</a>*@
|
|
||||||
<a class="navbar-brand" href="">
|
|
||||||
<img src="assets/Logo_new.png" alt="Yummy4Friends" width="60px" height="auto">
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<ul class="navbar-nav">
|
|
||||||
|
|
||||||
<li class="nav-item">
|
|
||||||
<NavLink class="nav-link" href="RegistrierungA">
|
|
||||||
#1
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" class="bi bi-person-fill" viewBox="0 0 16 16">
|
|
||||||
<path d="M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1H3Zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z" />
|
|
||||||
</svg>
|
|
||||||
</NavLink>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
@code {
|
|
||||||
|
|
||||||
}
|
|
@ -1,14 +0,0 @@
|
|||||||
@inherits LayoutComponentBase
|
|
||||||
|
|
||||||
|
|
||||||
<div >
|
|
||||||
<y4f.Shared.Chefin.NavChefin />
|
|
||||||
|
|
||||||
<main class="container">
|
|
||||||
|
|
||||||
|
|
||||||
@Body
|
|
||||||
|
|
||||||
</main>
|
|
||||||
|
|
||||||
</div>
|
|
@ -1,5 +0,0 @@
|
|||||||
html, body {
|
|
||||||
/*background-color: #C7FFD5;*/
|
|
||||||
padding: 0px;
|
|
||||||
margin: 0px;
|
|
||||||
}
|
|
@ -1,35 +0,0 @@
|
|||||||
<nav class="navbar navbar-expand-md navbar-light mb-4 me-5 ms-5 ">
|
|
||||||
<div class="container-fluid">
|
|
||||||
@*<a class="navbar-brand" href="">Yummy4Friends</a>*@
|
|
||||||
|
|
||||||
<button class="navbar-toggler @NavButtonCssClass" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse"
|
|
||||||
aria-controls="navbarCollapse" aria-label="Toggle navigation" @onclick="ToggleNavMenu">
|
|
||||||
<span class="navbar-toggler-icon"></span>
|
|
||||||
</button>
|
|
||||||
<div class="collapse navbar-collapse justify-content-end @NavBarCssClass" id="navbarCollapse" @onclick="ToggleNavMenu">
|
|
||||||
<ul class="navbar-nav">
|
|
||||||
|
|
||||||
<li class="nav-item">
|
|
||||||
<NavLink class="nav-link" href="RegistrierungA">
|
|
||||||
Admin
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" class="bi bi-person-fill" viewBox="0 0 16 16">
|
|
||||||
<path d="M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1H3Zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z" />
|
|
||||||
</svg>
|
|
||||||
</NavLink>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
@code {
|
|
||||||
private bool collapseNavMenu = true;
|
|
||||||
private string? NavBarCssClass => collapseNavMenu ? null : "show";
|
|
||||||
private string? NavButtonCssClass => collapseNavMenu ? "collapsed" : null;
|
|
||||||
|
|
||||||
|
|
||||||
private void ToggleNavMenu()
|
|
||||||
{
|
|
||||||
collapseNavMenu = !collapseNavMenu;
|
|
||||||
}
|
|
||||||
}
|
|
@ -3,19 +3,15 @@
|
|||||||
|
|
||||||
<div class="container col-lg-5 col-md-9 col-sm-12 d-flex flex-column " id="content">
|
<div class="container col-lg-5 col-md-9 col-sm-12 d-flex flex-column " id="content">
|
||||||
<p>Benutzername:</p>
|
<p>Benutzername:</p>
|
||||||
<center>
|
|
||||||
<input type="text" class="form-control" id="name" name="name">
|
<input type="text" class="form-control" id="name" name="name">
|
||||||
</center>
|
|
||||||
<p>Passwort:</p>
|
<p>Passwort:</p>
|
||||||
<center>
|
|
||||||
<input type="text" class="form-control" id="password" name="password">
|
<input type="text" class="form-control" id="password" name="password">
|
||||||
</center>
|
|
||||||
<center>
|
<form id="button" action="Bestelluebersicht">
|
||||||
|
<input type="submit" value="Login" class="btn">
|
||||||
<form id="button" action="Bestelluebersicht">
|
</form>
|
||||||
<input type="submit" value="Login" class="btn">
|
|
||||||
</form>
|
|
||||||
</center>
|
|
||||||
</div>
|
</div>
|
||||||
@code {
|
@code {
|
||||||
|
|
||||||
|
@ -2,16 +2,10 @@
|
|||||||
color: grey;
|
color: grey;
|
||||||
margin-bottom:0px;
|
margin-bottom:0px;
|
||||||
margin-top: 15px;
|
margin-top: 15px;
|
||||||
margin-left: 61px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
form {
|
form {
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
border-radius: 50px;
|
|
||||||
}
|
|
||||||
|
|
||||||
input {
|
|
||||||
border-radius: 50px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,8 +3,6 @@
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
<NavStartseite />
|
|
||||||
|
|
||||||
<main class="container">
|
<main class="container">
|
||||||
|
|
||||||
|
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 9.0 KiB After Width: | Height: | Size: 1.1 KiB |
Binary file not shown.
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 2.6 KiB |
Binary file not shown.
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 6.2 KiB |
Loading…
Reference in New Issue
Block a user