An open API service indexing awesome lists of open source software.

https://github.com/mohit7982/billcollector

Let BillCollector collect your bills from different personalized web portals.
https://github.com/mohit7982/billcollector

automation automations chrome-headless chromium cron docker duckdns github-config invoice-pdf linkedin portal python selenium vaultwarden

Last synced: 2 months ago
JSON representation

Let BillCollector collect your bills from different personalized web portals.

Awesome Lists containing this project

README

        

# BillCollector πŸ“œπŸ’°

![BillCollector](https://img.shields.io/badge/BillCollector-Collect%20Your%20Bills-blue)

Welcome to **BillCollector**! This project helps you collect bills from various personalized web portals. With BillCollector, you can automate the tedious task of gathering invoices, making your life easier and more organized.

## Table of Contents

- [Features](#features)
- [Technologies Used](#technologies-used)
- [Installation](#installation)
- [Usage](#usage)
- [Configuration](#configuration)
- [Contributing](#contributing)
- [License](#license)
- [Contact](#contact)

## Features 🌟

- **Automated Bill Collection**: BillCollector automatically retrieves your bills from different web portals.
- **Personalized Portals**: Customize your settings to connect to your preferred billing websites.
- **PDF Invoice Generation**: Get your invoices in a clean PDF format for easy access and storage.
- **Docker Support**: Run BillCollector easily in a Docker container.
- **Cron Jobs**: Schedule regular bill collection to keep your finances up to date.
- **Secure Storage**: Use Vaultwarden or Bitwarden for secure password management.
- **Nginx Proxy**: Manage your web traffic efficiently with Nginx.
- **Headless Browsing**: Utilize Chrome Headless or Chromium for seamless automation.

## Technologies Used πŸ› οΈ

BillCollector leverages a range of technologies to deliver its functionality:

- **Python**: The core language for the project.
- **Selenium**: For web automation and interaction.
- **Docker**: Containerization for easy deployment.
- **DuckDNS**: Dynamic DNS service for reliable access.
- **YAML**: For configuration files.
- **Nginx**: Web server for proxy management.
- **Vaultwarden/Bitwarden**: Secure credential storage.

## Installation βš™οΈ

To get started with BillCollector, follow these steps:

1. **Clone the Repository**:

```bash
git clone https://github.com/Mohit7982/BillCollector.git
cd BillCollector
```

2. **Install Dependencies**:

Make sure you have Python installed. Then, install the required packages:

```bash
pip install -r requirements.txt
```

3. **Set Up Docker** (Optional):

If you prefer to run BillCollector in a Docker container, you can use the provided Dockerfile. Build and run the container:

```bash
docker build -t billcollector .
docker run -d billcollector
```

4. **Download the Latest Release**:

Visit the [Releases section](https://github.com/Mohit7982/BillCollector/releases) to download the latest version of BillCollector. You need to execute the downloaded file.

## Usage πŸ“Š

Once you have BillCollector set up, you can start using it to collect your bills. Here’s how:

1. **Configuration**:

Edit the `config.yaml` file to set up your billing portals. Specify the URLs, login credentials, and any other necessary details.

Example `config.yaml`:

```yaml
portals:
- name: "Electricity Bill"
url: "https://example.com/electricity"
username: "your_username"
password: "your_password"
- name: "Water Bill"
url: "https://example.com/water"
username: "your_username"
password: "your_password"
```

2. **Run the Collector**:

Execute the following command to start collecting bills:

```bash
python bill_collector.py
```

3. **Schedule with Cron**:

To automate the bill collection, set up a cron job. Edit your crontab with:

```bash
crontab -e
```

Add the following line to run the collector every day at 8 AM:

```bash
0 8 * * * /path/to/python /path/to/bill_collector.py
```

## Configuration βš™οΈ

BillCollector uses a YAML file for configuration. Here’s a breakdown of the main settings:

- **portals**: List of billing portals to connect to.
- **schedule**: Define how often you want to run the collector.
- **output**: Specify the format and location for saving the invoices.

### Example Configuration

```yaml
portals:
- name: "Internet Bill"
url: "https://internetprovider.com/bill"
username: "your_username"
password: "your_password"
schedule:
cron: "0 8 * * *"
output:
format: "pdf"
directory: "/path/to/save/invoices"
```

## Contributing 🀝

We welcome contributions to BillCollector! Here’s how you can help:

1. **Fork the Repository**: Click on the "Fork" button on GitHub.
2. **Create a Branch**: Use a descriptive name for your branch.
```bash
git checkout -b feature/your-feature-name
```
3. **Make Changes**: Implement your feature or fix.
4. **Commit Your Changes**: Write a clear commit message.
```bash
git commit -m "Add feature: your-feature-description"
```
5. **Push to Your Branch**:
```bash
git push origin feature/your-feature-name
```
6. **Create a Pull Request**: Submit your changes for review.

## License πŸ“„

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.

## Contact πŸ“¬

For questions or feedback, feel free to reach out:

- **GitHub**: [Mohit7982](https://github.com/Mohit7982)
- **Email**: [email protected]

## Releases πŸ”—

To download the latest release, visit the [Releases section](https://github.com/Mohit7982/BillCollector/releases). You need to execute the downloaded file.

Thank you for checking out BillCollector! We hope it makes your bill collection process smoother and more efficient.