mirror of
https://github.com/rjNemo/rentease.git
synced 2026-06-06 02:36:49 +00:00
Some checks are pending
CI / checks (push) Waiting to run
- Add `APP_STRIPE_ACCOUNT_ID` to config and README. - Pass Stripe account ID to payment view models. - Show "View in Stripe" badge linking to the payment in Stripe dashboard for card payments when account ID and payment ID are present. - Update Makefile to run format/lint locally instead of in container. - Update templates and generated code to support new dashboard link.
138 lines
4.5 KiB
Markdown
138 lines
4.5 KiB
Markdown
# Rentease
|
|
|
|

|
|
|
|
<!--toc:start-->
|
|
|
|
- [Rentease](#rentease)
|
|
- [Features](#features)
|
|
- [Getting Started](#getting-started)
|
|
- [Prerequisites](#prerequisites)
|
|
- [Installation](#installation)
|
|
- [Built With](#built-with)
|
|
- [Roadmap](#roadmap)
|
|
- [Contributing](#contributing)
|
|
- [License](#license)
|
|
|
|
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.
|
|
|
|

|
|
|
|
## 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](https://go.dev/).
|
|
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
|
|
|
|
```sh
|
|
git clone https://github.com/rjNemo/rentease.git
|
|
cd rentease
|
|
```
|
|
|
|
2. Install the dependencies
|
|
|
|
```sh
|
|
go mod download
|
|
```
|
|
|
|
3. **Setup PostgreSQL**:
|
|
Ensure you have PostgreSQL installed and running. Create a database for Rentease:
|
|
|
|
```sh
|
|
createdb rentease
|
|
```
|
|
|
|
4. **Configure the application**:
|
|
Create a `.env` file in the project root with the following environment variables:
|
|
|
|
```sh
|
|
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
|
|
|
|
```sh
|
|
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.
|
|
|
|
6. **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](https://go.dev/): The core application logic is written in Go, providing a
|
|
robust and efficient backend.
|
|
- [Htmx](https://htmx.org/): For handling AJAX requests and enhancing the user interface
|
|
with minimal JavaScript.
|
|
- [Templ](https://templ.guide/): Used for templating and rendering dynamic HTML content.
|
|
- [Gorm](https://gorm.io/docs): An ORM library for Go, used for database interactions.
|
|
- [PostgreSQL](https://www.postgresql.org/):The database used to store all application
|
|
data.
|
|
|
|
## Roadmap
|
|
|
|
See the [open issues](https://github.com/users/rjNemo/projects/2/views/1) 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.
|