# MEMORY.md — De Tamarinde Management System

## Project Identity

**Application name:** De Tamarinde Management System
**Organization:** De Tamarinde — recreation facility of Loge Volharding No. 6 (Freemasonry lodge, Suriname)
**Location:** Paramaribo, Suriname
**Language:** Dutch (UI), English (codebase, documentation)
**Type:** Internal web application (non-profit)

## Organization Context

De Tamarinde is the recreational branch of Loge Volharding No. 6. It operates:
- A **bar and kitchen** serving lodge members
- A **recreation hall** available for rental to members, other lodges, and third parties

It is a **non-profit**. All revenue goes toward:
- Bar and kitchen supplies (restocking)
- Maintenance of grounds and buildings
- Fixed operating costs (utilities, etc.)
- Social projects benefiting Surinamese society

Reports are presented periodically to the **board and members of Loge Volharding No. 6**.

## Current Situation (Before This App)

- Orders tracked with pen and paper
- No inventory management system
- No POS system
- No reservation system
- No automated reporting
- One person manages everything: purchasing, bar sales, kitchen sales, hall coordination

## Application Goals

Replace manual, paper-based operations with a unified web app that:
1. Tracks inventory (purchases and consumption)
2. Registers operating expenses (monthly bills and labor payments)
3. Handles POS sales for bar and kitchen
4. Manages hall reservations and rental administration
5. Generates automated reports for the board
6. Uses AI to reduce administrative burden

## Target Users

- **Admin / Manager** — full access (currently one person doing everything)
- **Bar staff** — POS access only
- **Kitchen staff** — POS access only
- **Board members** — read-only access to reports and dashboards
- Total users: more than 3

## Device & Platform Requirements

- Web application (browser-based, no install required)
- Must work on: tablet (bar), smartphone (mobile), laptop/PC (office)
- Responsive design required

## Module Priority Order

1. **Inventory Management** — purchases, stock levels, low-stock alerts
2. **Vaste Lasten** — monthly bills and labor/work payments
3. **Inventaris (Assets)** — register of durable belongings (chairs, tables, equipment) and their condition
4. **POS System** — bar and kitchen sales, end-of-day closing
5. **Hall Reservations** — booking calendar, contracts, invoicing
6. **Automated Reporting** — board dashboards, AI-generated summaries, PDF export

## AI Features Planned

- Low-stock alerts and reorder suggestions based on consumption patterns
- Automatic end-of-day sales summaries
- AI-written board reports (revenue, top products, hall occupancy, social budget)
- Follow-up reminders for hall rental inquiries
- Anomaly detection (unusual spending or revenue patterns)

## Technical Decisions

- **Stack:** Laravel 13 (PHP 8.5), React SPA (Vite + React Router), Blade used only as minimal mount shell (`resources/views/app.blade.php`)
- Single web app, all modules in one interface
- Role-based access control (Admin, Bar Staff, Kitchen Staff, Board Member)
- **Data persistence:** Laravel database (Eloquent models, migrations) — not browser-only storage
- **AI layer:** `laravel/ai` package with Anthropic Claude API (`claude-sonnet-4-6`); all AI outputs require human review before use
- **Deployment:** Laravel Cloud (see `.claude/skills/deploying-laravel-cloud/`)
- Offline-capable POS/inventory preferred where feasible (service worker or queue sync — TBD)

## Key Domain Terms

| Term | Meaning |
|------|---------|
| Loge | Lodge (Freemasonry) |
| Bestuur | Board of directors |
| Leden | Members (of the lodge) |
| Verhuur | Rental |
| Zaal | Hall / event space |
| Inkoop | Purchase / procurement |
| Voorraad | Inventory / stock (consumables that are sold) |
| Inventaris | Asset register of durable belongings (chairs, tables, equipment) |
| Kassasluiting | End-of-day cash closing |
| Vaste lasten | Fixed operating costs |
| Rekening | Bill / invoice (utility or supplier) |
| Arbeidskosten | Labor / work payments to helpers |
| Sociale projecten | Social community projects |

## File Structure Convention (Laravel)

```
app/
  Models/              # Eloquent models (Product, Order, Reservation, etc.)
  Http/Controllers/    # Module controllers
  Services/            # Business logic (inventory, POS, reporting)
  Enums/               # Roles, payment methods, reservation status
database/
  migrations/
  factories/
  seeders/
resources/
  views/
    app.blade.php    # Minimal React mount shell only
  js/
    app.jsx          # React entry point
    router.jsx       # Client-side routes
    components/      # Shared UI components
    pages/           # Module pages (voorraad, vaste-lasten, inventaris, pos, zaal, etc.)
  css/
    tamarinde.css    # De Tamarinde design system
routes/
  web.php
docs/
  PRD.md               # Full product requirements
  MEMORY.md            # This file — project context for AI assistants
```

Module build order: Inventory → Vaste lasten → Inventaris → POS → Hall Reservations → Reporting (see `docs/PRD.md`).

## Notes for AI Assistant

- Always refer to the organization as "De Tamarinde" (not "the bar" or "the venue")
- The app is non-commercial; tone in UI copy should be warm and community-oriented
- Currency: Surinamese Dollar (SRD)
- Date format: DD-MM-YYYY (Surinamese convention)
- Reports must be suitable for presentation in a formal lodge meeting
