Compare commits

...

7 Commits

Author SHA1 Message Date
FUH22860
6f8dabbd3f
new Favicon (#40) 2023-06-23 18:47:25 +02:00
zha19115
fe765064de new Favicon 2023-06-23 18:47:18 +02:00
FUH22860
ece3af8316
Chefin Stuff new (#39)
Chefin changes new
2023-06-23 18:07:07 +02:00
zha19115
4180c3c61e Chefin Stuff new 2023-06-23 18:05:13 +02:00
FUH22860
fe4a58e4ea
Fix docker-compose (#35)
Fixes the docker-compose of the WebApi
2023-06-23 14:33:25 +02:00
FUH22860
688315441e
Add content to README.md (#38)
* Add content to README.md

* Add project description

* Update README.md
2023-06-23 14:32:57 +02:00
f41229cd71
Fix docker-compose 2023-06-22 22:49:08 +02:00
16 changed files with 405 additions and 10 deletions

View File

@ -1,3 +1,47 @@
# y4f
[![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)
## Description (German)
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.

View File

@ -12,12 +12,11 @@ services:
- traefik.http.routers.y4f-webapi.tls=true
- traefik.http.routers.y4f-webapi.tls.certResolver=default
networks:
- default
- y4f-default
- traefik
restart: unless-stopped
networks:
default:
name: y4f-default
y4f-default:
external: true
traefik:
external: true

View File

@ -0,0 +1,82 @@
@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 &nbsp; 12:30</a></td>
<td><a href="BDetail">#2345 &nbsp; 18:45</a></td>
</tr>
<tr>
<td><a href="BDetail">#3456 &nbsp; 13:00</a></td>
<td><a href="BDetail">#4567 &nbsp; 19:00</a></td>
</tr>
<tr>
<td><a href="BDetail">#5678 &nbsp; 14:30</a></td>
<td><a href="BDetail">#6789 &nbsp; 19:15</a></td>
</tr>
<tr>
<td><a href="BDetail">#4321 &nbsp; 15:15</a></td>
<td><a href="BDetail">#5432 &nbsp; 19:15</a></td>
</tr>
<tr>
<td><a href="BDetail">#6543 &nbsp; 15:30</a></td>
<td><a href="BDetail">#7654 &nbsp; 19:15</a></td>
</tr>
<tr>
<td><a href="BDetail">#7654 &nbsp; 15:30</a></td>
<td>&nbsp;</td>
</tr>
<tr>
<td><a href="BDetail">#8765 &nbsp; 16:00</a></td>
<td>&nbsp;</td>
</tr>
<tr>
<td><a href="BDetail">#9876 &nbsp; 17:30</a></td>
<td>&nbsp;</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 {
}

View File

@ -0,0 +1,37 @@
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;
}

View File

@ -0,0 +1,139 @@
@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 {
}

View File

@ -0,0 +1,3 @@
button {
margin: 10px;
}

View File

@ -0,0 +1,25 @@
<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 {
}

View File

@ -0,0 +1,14 @@
@inherits LayoutComponentBase
<div >
<y4f.Shared.Chefin.NavChefin />
<main class="container">
@Body
</main>
</div>

View File

@ -0,0 +1,5 @@
html, body {
/*background-color: #C7FFD5;*/
padding: 0px;
margin: 0px;
}

View File

@ -0,0 +1,35 @@
<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;
}
}

View File

@ -3,15 +3,19 @@
<div class="container col-lg-5 col-md-9 col-sm-12 d-flex flex-column " id="content">
<p>Benutzername:</p>
<center>
<input type="text" class="form-control" id="name" name="name">
</center>
<p>Passwort:</p>
<center>
<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>
</center>
</div>
@code {

View File

@ -2,10 +2,16 @@
color: grey;
margin-bottom:0px;
margin-top: 15px;
margin-left: 61px;
}
form {
margin-top: 20px;
border-radius: 50px;
}
input {
border-radius: 50px;
}

View File

@ -3,6 +3,8 @@
<div>
<NavStartseite />
<main class="container">

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 75 KiB