Property management app
Find a file
Ruidy be5b707fa0
Some checks failed
CI / checks (push) Has been cancelled
feat(booking): improve item sync and add tests (#51)
Enhance the booking sync logic to trim and match item names more
robustly,
falling back to creating a generic item when no host item is found. Add
unit tests for item creation and fallback behavior in booking sync.
2025-12-01 15:06:22 +01:00
.github/workflows Feat/stripe integration (#50) 2025-11-21 15:47:01 +01:00
assets update deps 2025-06-23 19:02:48 +02:00
cmd/cron feat/stripe integration (#48) 2025-10-19 15:48:59 +02:00
docs improve layout 2024-11-25 14:58:18 +01:00
internal feat(booking): improve item sync and add tests (#51) 2025-12-01 15:06:22 +01:00
pkg move cron code to pkg 2025-03-23 23:00:02 +01:00
scripts Raw 34 enable payments (#35) 2025-01-24 17:30:35 +01:00
thoughts/shared Feat/stripe integration (#50) 2025-11-21 15:47:01 +01:00
.air.toml feat/stripe integration (#48) 2025-10-19 15:48:59 +02:00
.env.example refactor: unify ID and API key naming conventions 2025-10-03 19:47:41 +02:00
.gitignore refactor: unify ID and API key naming conventions 2025-10-03 19:47:41 +02:00
.golangci.yml feat(logging): add slog-based structured logging 2025-09-12 12:17:22 -04:00
AGENTS.md chore(build,ci,docs): switch to Makefile, consolidate CI, add caching + AGENTS (#47) 2025-08-30 22:36:11 -04:00
docker-compose.dev.yml Feat/stripe integration (#50) 2025-11-21 15:47:01 +01:00
Dockerfile chore(go): bump Go to 1.25 (Dockerfiles + go.mod); respect .gitignore 2025-09-12 11:24:06 -04:00
Dockerfile.dev chore(go): bump Go to 1.25 (Dockerfiles + go.mod); respect .gitignore 2025-09-12 11:24:06 -04:00
go.mod Feat/stripe integration (#50) 2025-11-21 15:47:01 +01:00
go.sum Feat/stripe integration (#50) 2025-11-21 15:47:01 +01:00
main.go Feat/stripe integration (#50) 2025-11-21 15:47:01 +01:00
Makefile Feat/stripe integration (#50) 2025-11-21 15:47:01 +01:00
README.md docs: update README 2025-11-22 09:36:53 +01:00

RentEase

Smart property management for short and midterm rentals: ingest bookings from multiple sources, keep owners and guests in sync, and turn payments into clean financial reporting.

RentEase Logo

Features

  • Invoice management: Create and track invoices for each stay.
  • Activity reports: Export booking and payment reports for owners and accountants.
  • Multi-platform sync: Consolidate bookings from different channels.
  • Stripe automation (optional): Pull card payments from Stripe, validate webhooks, and trigger manual syncs when needed.
  • PDF generation: Produce guest-ready invoices and summaries.

Visuals

RentEase Screenshot

Quick Start

Prerequisites

  • Go (go.mod targets 1.25.4; use Go 1.22+ in practice)
  • Docker + Docker Compose (for the recommended dev stack)
  • PostgreSQL 14+ (Docker Compose starts one automatically)
git clone https://github.com/rjNemo/rentease.git
cd rentease
make dev

This starts the app on http://localhost:8000 with hot reload and a local Postgres instance.

Run locally without Docker

git clone https://github.com/rjNemo/rentease.git
cd rentease
go mod download
cp .env.example .env    # create this file using the Configuration section below
go run .

Set APP_PORT (defaults to 4200) to change the listening port when running locally.

Configuration

Configuration is driven by environment variables (parsed with the APP_ prefix). Minimum required variables:

APP_DATABASE_URL=postgres://user:pass@localhost:5432/rentease?sslmode=disable
APP_ADMIN=admin@example.com
APP_ADMIN_SECRET=choose-a-strong-password
APP_API_KEY=your-api-key
APP_SECRET_KEY=signing-secret
APP_SESSION_SECRET=session-secret
APP_ORIGINS=http://localhost:8000
# Optional
APP_PORT=8000
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_STRIPE_SECRET_KEY=
APP_STRIPE_WEBHOOK_SECRET=
APP_SENTRY_DSN=

Stripe values can be left blank for manual payment entry only. When provided, webhooks are received at /webhooks/stripe and a manual sync is available at POST /api/stripe/sync (API key protected).

Usage

  • Start the stack (make dev) and open http://localhost:8000.
  • Default dev credentials (from docker-compose.dev.yml):
    • admin@example.com & supersecret.
  • Create bookings, issue invoices, and review payments from the dashboard.

Development

  • make dev — run the dev stack with hot reload on :8000.
  • make test — run go test ./....
  • make format — generate templ files and format Go + templ sources.
  • make lint — run golangci-lint.
  • make run — build and run the production image locally.
  • make stop — shut down the dev stack.

Tech Stack

  • Go backend with PostgreSQL
  • Templ for server-rendered components
  • htmx for dynamic interactions with minimal JavaScript
  • GORM for database access
  • Stripe integration for payment syncing

Project Layout

  • internal/service/booking — booking lifecycle, items, reporting, PDF generation.
  • internal/service/payment — manual payments plus Stripe sync and webhook handling.
  • internal/view — templ components (generate _templ.go files locally).

Roadmap

Track planned work and known issues on the project board.

Contributing

Issues and pull requests are welcome! To propose a change:

  1. Fork the repository.
  2. Create a feature branch (git checkout -b feature/amazing-idea).
  3. Run the test suite and linters (make test, make lint).
  4. Open a PR describing your change and any setup notes.

Support

Need help or found a bug? Please open an issue in this repository with as much context as possible (logs, steps, and expected behavior).

License

Distributed under the MIT License. See LICENSE.md for more information.

Status

Active development.