Skip to content
Open

Zeug #68

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
b4f7fb5
Split money requests between several users
afffe18 Oct 17, 2026
df05425
Aufladen-Knopf im Header an die Farbe der anderen Nav-Knöpfe angleichen
afffe18 Oct 17, 2026
9a34ca5
Kreditwürdig-Haken im User-Details-Popup beim Userwechsel zurücksetzen
afffe18 Oct 17, 2026
89190da
Gruppenkauf-Wiederholung: "Stunden vorher" speichern und im Cron berü…
afffe18 Oct 17, 2026
fa25a4b
Alte LDAP-Nutzernamen beim Keycloak-Login an den Anzeigenamen angleichen
afffe18 Oct 18, 2026
7829111
Adminrecht aus LDAP-Gruppe bei jedem Keycloak-Login übernehmen
afffe18 Oct 18, 2026
9ffdcf7
Geld einfordern: einfache Ansicht wie vorher, Gruppenabrechnung per S…
afffe18 Oct 18, 2026
ad3555e
Punkt und Komma als Dezimaltrenner in allen Betragsfeldern
afffe18 Oct 18, 2026
4c39d9e
Gruppenbestellung: Einzelartikel erst bei der Abrechnung abbuchen
afffe18 Oct 18, 2026
021bcf7
Nach jedem Container-Update alle Nutzer einmal abmelden
afffe18 Oct 18, 2026
8cce2ec
Development
afffe18 Oct 18, 2026
831cb25
Pfand für Artikel separat kaufen
afffe18 Oct 18, 2026
c0172b7
Filter-Knöpfe im Kaufen-Tab einheitlich darstellen
afffe18 Oct 18, 2026
5dc21bc
Inventar nach Spalten sortierbar
afffe18 Oct 18, 2026
897e58f
Gruppenbestellung: Einkäufer, Kategorie-Filter und überarbeitete Abre…
claude Oct 18, 2026
ad0fe50
Statistiken im Profil und für Admins
claude Oct 18, 2026
c22c96a
Roter Punkt am Konto-Tab bei Geldeinzügen
claude Oct 18, 2026
258b215
Aufräumen: Sicherheitslücke, Buchungsfehler und toter Code
claude Oct 18, 2026
2e169a8
Persistent Buy filters & Readme Todos
afffe18 Oct 18, 2026
7ec4e94
Einheitliche Kachel-Hintergründe und Overscroll-Farbe
afffe18 Oct 18, 2026
4811957
Minor graphical improvements + improved /all-users page
13Bytes Oct 26, 2026
522b76a
update db path to current prisma standard
13Bytes Oct 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

# Prisma
# https://www.prisma.io/docs/reference/database-reference/connection-urls#env
# Relative SQLite paths are relative to the project root for both migrations and the app.
DATABASE_URL="file:./db.sqlite"

# Next Auth
Expand Down Expand Up @@ -42,4 +43,4 @@ LDAP_ADMIN_GROUP=""
# Keycloak
KEYCLOAK_ISSUER=""
KEYCLOAK_CLIENT_ID=""
KEYCLOAK_CLIENT_SECRET=""
KEYCLOAK_CLIENT_SECRET=""
25 changes: 14 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# LabEats
**LabEats allows a group of people to manage money in combination with item-sales, procurement and group-orders in a moderated prepaid fashion.**

A tool to manage (food)(orders) in the Aerospace Lab (an awesome club in Germany).\
A tool to manage food orders in the Aerospace Lab (an awesome club in Germany).\
It is designed with our club in mind, but can surely be adapted to fit more needs.

<img src="https://13bytes.github.io/LabFoodDesk/screenshots/buy.png" height=500>
Expand Down Expand Up @@ -46,11 +46,20 @@ Only secured by basic HTTP auth (set in `./nginx/prismaStudio-htpasswd`), this p


## Development

This is a NextJS project. Some file-conventions apply.
Getting started:

Install dependencies:
`npm install` \
copy `.env.example` to `.env` and set `NEXTAUTH_SECRET` (e.g. `openssl rand -base64 32`) \
create a small database to test edits:
`npm run db:seed` \
run (PowerShell):
`$env:DATABASE_URL="file:./screenshots.db"; npm run dev` \
run (bash/zsh):
`DATABASE_URL="file:./screenshots.db" npm run dev`

Start Developing:
`npm run dev`
Log in via "Server Konsole" with `sally.ride@example.com` (admin). The magic link is printed in the terminal.

Update types based on current schema:
`npx prisma generate`
Expand All @@ -64,23 +73,17 @@ Create DB Migrations (for production)
`npx prisma migrate dev`

### Open ToDos
- Automatisches abmelden aller Accounts nach update (via changes)
- Android Zahlentastatur Komma ausgeblendet
- Kostenanpassung bei Gruppenbestellung greift für alle der gleichen Kategorien
#### Nice Improvements:
- Item-Page: Kategorie-filter für user persistieren
- Gruppen-Split
- Verrechnungskonten-Auszahlung für Admins auch selbst möglich
- Gruppen-Kauf auf eine/mehrere Kategorien beschränken
- Gruppen-Kauf auf mehrere Kategorien beschränken (eine Kategorie geht bereits)
- Personen einen "Projekt-Tag" geben
- Verrechnungkonten global anzeigen
- Vorbesteller-Items mit Fix-Preis (Default-Feld vorausfüllen)
- Ofengebühr für mehrfachbestellungen optional deaktivieren
- write test-cases (https://www.prisma.io/docs/orm/prisma-client/testing/integration-testing)

---

## Questions & Contact

Stuck somewhere? Or you want to adopt LabEats to your needs? \
You can contact me at coding@13bytes.de or create a [issue](https://github.com/13Bytes/LabFoodDesk/issues).
2 changes: 1 addition & 1 deletion eslint.config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import nextVitals from "eslint-config-next/core-web-vitals"

export default defineConfig([
{
ignores: ["src/generated/prisma/**"],
ignores: ["src/generated/prisma/**", ".next/**"],
},
{
files: ["**/*.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"],
Expand Down
4 changes: 4 additions & 0 deletions next.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@
const config = {
reactStrictMode: true,
output: 'standalone',
// new value on every build - sessions of older builds are rejected (src/server/sessionBuild.ts)
env: {
SESSION_BUILD_ID: String(Date.now()),
},
/**
* If you have the "experimental: { appDir: true }" setting enabled, then you
* must comment the below `i18n` config out.
Expand Down
Loading