# Rentease

![RentEase](assets/icons/favicon-main.png)

<!--toc:start-->

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

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][product-screenshot]](https://example.com)

## 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
   ```

5. Start the application

   ```sh
   make dev
   ```

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.
