Property management app
Find a file
Ruidy afc61e02f1
Some checks failed
CI / checks (push) Has been cancelled
refactor: improve booking error handling and responses
Refactor booking retrieval to return errors instead of nil values,
enabling more robust error handling throughout the booking, payment,
and PDF endpoints. Add custom HTTP error page rendering for not found
and internal server errors. Update interfaces and tests to match new
method signatures. This improves user feedback and code maintainability.
2025-11-17 19:26:45 +01:00
.github/workflows chore(build,ci,docs): switch to Makefile, consolidate CI, add caching + AGENTS (#47) 2025-08-30 22:36:11 -04: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 refactor: improve booking error handling and responses 2025-11-17 19:26:45 +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 (#48) 2025-10-19 15:48:59 +02: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
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(deps): migrate from Echo to Chi, update Stripe/Sentry (#49) 2025-11-02 21:45:37 +01:00
go.sum feat(deps): migrate from Echo to Chi, update Stripe/Sentry (#49) 2025-11-02 21:45:37 +01:00
main.go refactor(stripe): remove support for Stripe Connect account 2025-10-30 17:03:55 +01:00
Makefile feat(payments): add Stripe dashboard links for card payments 2025-11-16 18:04:35 +01:00
README.md feat(payments): add Stripe dashboard links for card payments 2025-11-16 18:04:35 +01:00

Rentease

RentEase

Rentease is a property-management application to help landlords to manage your rental properties efficiently. With Rentease, you can create invoices, generate activity reports, and sync all the booking platforms you use.

Features

  • Invoice Management: Create and manage invoices for your rental properties with ease.
  • Activity Reports: Generate detailed reports of rental activities to keep track of your property performance.
  • Platform Sync: Sync bookings across multiple platforms to streamline your rental management.

RentEase Screenshot

Getting Started

To get started with Rentease, follow these steps.

Prerequisites

You need a version of the Go programming language installed. You can either install it via your package manager or via Go's official website. You also need a PostgreSQL database. You can install it locally using Homebrew or use a cloud alternative such as Railway, fly.io, etc.

Installation

  1. Clone the repository

    git clone https://github.com/rjNemo/rentease.git
    cd rentease
    
  2. Install the dependencies

    go mod download
    
  3. Setup PostgreSQL: Ensure you have PostgreSQL installed and running. Create a database for Rentease:

    createdb rentease
    
  4. Configure the application: Create a .env file in the project root with the following environment variables:

    DB_HOST=localhost
    DB_PORT=5432
    DB_USER=your_db_username
    DB_PASSWORD=your_db_password
    DB_NAME=rentease
    # Stripe configuration (optional until you enable automatic sync)
    APP_STRIPE_SECRET_KEY=sk_test_your_key
    APP_STRIPE_WEBHOOK_SECRET=whsec_your_webhook_secret
    APP_STRIPE_ACCOUNT_ID=acct_your_account_id
    

    Leave the Stripe variables blank to continue using manual cash entry only. When set, Rentease will pull payments from Stripe, process webhooks sent to /webhooks/stripe, and expose a manual sync endpoint at POST /api/stripe/sync (protected by the existing API key middleware). Providing APP_STRIPE_ACCOUNT_ID also enables dashboard links for synchronized card payments.

  5. Start the application

    make dev
    

Development Commands

Use the included Makefile for common tasks:

  • make dev: Run the dev container with live reload (Air) on http://localhost:8000.
  • make run: Build and run the production image locally.
  • make test: Run go test ./... inside the dev container.
  • make format: Generate templ files and format code.
  • make lint: Lint with golangci-lint.
  • make stop: Stop the dev container.
  1. Access the application: Open your browser and go to http://localhost:8000 to start using Rentease.

Built With

Rentease is built using the following technologies:

  • Go: The core application logic is written in Go, providing a robust and efficient backend.
  • Htmx: For handling AJAX requests and enhancing the user interface with minimal JavaScript.
  • Templ: Used for templating and rendering dynamic HTML content.
  • Gorm: An ORM library for Go, used for database interactions.
  • PostgreSQL:The database used to store all application data.

Roadmap

See the open issues for a full list of proposed features (and known issues).

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".

Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

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