Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
20 changes: 17 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,21 @@
# Four-Points

Internal operations app for a hotel, complementing its commercial PMS (Opera):
logbook, parking, maintenance, groups, cashier, blacklist, staff scheduling,
shift checklists, F&B revenue and invoice backoffice.
Hotel operations app built from years of real front-desk work, with a shift
scheduler that solves the monthly roster with constraint programming.

[![Live demo](https://img.shields.io/badge/Live_demo-one_click,_no_sign--up-2ea043?style=flat-square)](https://four-points.stackbp.es/login)
[![CI](https://github.com/bpstack/four-points/actions/workflows/ci.yml/badge.svg)](https://github.com/bpstack/four-points/actions/workflows/ci.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue?style=flat-square)](LICENSE)

![Four-Points dashboard](docs/images/dashboard.png)

It complements the hotel's commercial PMS (Opera): logbook, parking,
maintenance, groups, cashier, blacklist, staff scheduling, shift checklists,
F&B revenue and invoice backoffice.

| Staff scheduling (OR-Tools) | Parking |
| --- | --- |
| ![Monthly roster generated by the solver](docs/images/scheduling.png) | ![Parking overview](docs/images/parking.png) |

- **Frontend**: Next.js 16 (App Router), React 19, Tailwind CSS, NextUI.
- **Backend**: Express 5 + TypeScript, MySQL 8, Cloudinary for files.
Expand All @@ -23,6 +36,7 @@ Full documentation lives in [`docs/`](docs/general/README.md):
- [Backoffice](docs/backoffice/README.md)
- [Blacklist](docs/blacklist/README.md)
- [Conciliation](docs/conciliation/README.md)
- [Public demo](docs/demo/README.md) — how the demo account works and when it resets

## Try it

Expand Down
31 changes: 31 additions & 0 deletions docs/DECISIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,14 @@
> sola.
>
> El **porqué** vive aquí; el estado actual vive en `SESSION.md`.
>
> **Documentos archivados:** lo que salió del repositorio está listado en
> [ADR-040](#adr-040--la-documentación-obsoleta-se-archiva-fuera-del-repositorio)
> (documentación obsoleta) y
> [ADR-041](#adr-041--los-documentos-de-la-publicación-se-archivan-juntos) (el
> proceso de publicación: `ROADMAP.md`, `GITCLEAN.md`, `VERIFY.md`), con el
> comando que recupera cada uno del historial. La copia local está en
> `docs/_archive/`, que git ignora.

---

Expand Down Expand Up @@ -870,3 +878,26 @@
- **Consecuencias:** los documentos del proceso de publicación (`GITCLEAN.md`,
`VERIFY.md`, `ROADMAP.md`, `SESSION.md`) se archivan igual cuando el
repositorio sea público.

## ADR-041 — Los documentos de la publicación se archivan juntos

- **Estado:** ✅ aceptada (2026-10-05)
- **Fecha:** 2026-10-05
- **Decisión:** `ROADMAP.md`, `GITCLEAN.md` y `VERIFY.md` pasan a
`docs/_archive/open-source-release/`, con un README que dice qué es cada
uno. Se recuperan del historial público:

| Fichero | Comando |
| --- | --- |
| `ROADMAP.md` | `git show 5f0daa2:docs/ROADMAP.md` |
| `GITCLEAN.md` | `git show 025e76c:docs/GITCLEAN.md` |
| `VERIFY.md` | `git show 025e76c:docs/VERIFY.md` |

Lo pendiente vive solo en `TODO.md`, y si
un punto depende de otro se dice en el propio punto.
- **Motivo:** describían el paso de privado a público, que terminó el
2026-10-05: todas las fases cerradas, el historial reescrito y auditado,
ninguna fila de `VERIFY.md` sin probar o fallida (194 filas). Juntos cuentan
el proceso entero; sueltos en `docs/` parecían trabajo vivo.
- **Consecuencias:** las ADR anteriores que los citan no se tocan; el comando
de arriba los recupera. `SESSION.md` sigue en `docs/`. Aplica ADR-040.
261 changes: 0 additions & 261 deletions docs/GITCLEAN.md

This file was deleted.

Loading
Loading