mirror of
https://github.com/Solo-Web-Works/BillTrak.git
synced 2026-01-29 08:40:34 +00:00
📄 docs: Update readme #skipGA
This commit is contained in:
149
README.md
149
README.md
@@ -1,50 +1,133 @@
|
||||
# BillTrak
|
||||
|
||||
BillTrak is a web application designed to help users manage and track their bills. It provides features to add, edit, and view bills, as well as visualize year-to-date (YTD) amounts using charts.
|
||||
## Project Title
|
||||
BillTrak - A Simple Bill Tracking Web Application
|
||||
|
||||
## Description
|
||||
BillTrak is a lightweight, web-based application designed to help users manage and track their bills and payments. It provides an intuitive interface for adding, editing, and viewing bills, along with visualizations of year-to-date spending through interactive charts.
|
||||
|
||||
## Features
|
||||
- **Bill Management**: Add, edit, and view bills with details like date, payee, amount, payment ID, and comments
|
||||
- **Payee Management**: Add and manage payees (bill recipients)
|
||||
- **Yearly Overview**: View bills by year with sorting options (date, payee)
|
||||
- **Visual Analytics**: Interactive pie chart showing year-to-date spending distribution
|
||||
- **Dark Mode**: User-friendly dark mode toggle for comfortable viewing
|
||||
- **Responsive Design**: Works seamlessly across devices
|
||||
- **Data Persistence**: SQLite database for reliable data storage
|
||||
|
||||
- Add new bills and payees
|
||||
- Edit existing bills
|
||||
- View bills by year and sort them
|
||||
- Display YTD amounts and visualize them using a pie chart
|
||||
- Dark mode toggle for better user experience
|
||||
## Installation
|
||||
|
||||
## Technologies Used
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose installed
|
||||
- Basic understanding of web applications
|
||||
|
||||
- HTML, Tailwind CSS, JavaScript
|
||||
- Chart.js for data visualization
|
||||
- Docker for containerization
|
||||
|
||||
## Usage
|
||||
|
||||
1. Copy the `bills-sample.db` file to `bills.db` in a folder docker can access. This will be the SQLite database used to store bill data.
|
||||
|
||||
2. Start the container using `docker compose up -d` with the following `docker-compose.yml` configuration:
|
||||
```yaml
|
||||
services:
|
||||
app:
|
||||
### Steps
|
||||
1. Configure the `docker-compose.yml` file:
|
||||
```yaml
|
||||
services:
|
||||
app:
|
||||
container_name: BillTrak
|
||||
restart: unless-stopped
|
||||
image: ghcr.io/solo-web-works/billtrak:main
|
||||
|
||||
ports:
|
||||
- "8888:80" # Map port 8080 on the host to port 80 in the container. Change the left side to change the host port.
|
||||
- "8888:80" # Map port 8888 on the host to port 80 in the container. Change the left side to change the host port.
|
||||
|
||||
volumes:
|
||||
# - .:/var/www/html # Mount the current directory for live development
|
||||
- ./data/bills.db:/var/www/html/data/bills.db # Persist SQLite data
|
||||
```
|
||||
3. Access the application at http://localhost:8888
|
||||
# Mount the current directory for live development
|
||||
# - .:/var/www/html
|
||||
- ./data/bills.db:/var/www/html/data/bills.db # Bind mount to persist SQLite data
|
||||
```
|
||||
|
||||
2. Set up the database:
|
||||
```bash
|
||||
cp bills-sample.db ./data/bills.db
|
||||
```
|
||||
|
||||
3. Start the application using Docker:
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
4. Access the application at:
|
||||
```
|
||||
http://localhost:8888
|
||||
```
|
||||
|
||||
## Usage
|
||||
1. **Adding a Bill**:
|
||||
- Fill out the "Add New Payment" form with date, payee, amount, and optional details
|
||||
- Click "Add Bill" to save
|
||||
|
||||
2. **Adding a Payee**:
|
||||
- Use the "Add New Payee" form in the sidebar
|
||||
- Enter the payee name and click "Add Payee"
|
||||
|
||||
3. **Viewing Bills**:
|
||||
- Bills are automatically displayed for the selected year
|
||||
- Use the sort dropdown to organize bills by date or payee
|
||||
|
||||
4. **Editing a Bill**:
|
||||
- Click the "Edit" button on any bill
|
||||
- Modify the details in the popup modal and click "Save"
|
||||
|
||||
5. **Viewing Analytics**:
|
||||
- The YTD Chart section shows a pie chart of spending distribution
|
||||
- The YTD Summary displays total amounts by payee
|
||||
|
||||
## Configuration
|
||||
The application can be configured through the following methods:
|
||||
|
||||
1. **Port Configuration**:
|
||||
Modify the `docker-compose.yml` file to change the host port:
|
||||
```yaml
|
||||
ports:
|
||||
- "8888:80" # Change 8888 to your preferred port
|
||||
```
|
||||
|
||||
2. **Database Configuration**:
|
||||
The SQLite database file is located at `data/bills.db`. This location should be bind mounted in your compose file for data persistence.
|
||||
|
||||
3. **Environment Variables**:
|
||||
Add environment variables to the `docker-compose.yml` file for advanced configuration:
|
||||
```yaml
|
||||
environment:
|
||||
- PHP_ERROR_REPORTING=E_ALL
|
||||
- PHP_DISPLAY_ERRORS=On
|
||||
```
|
||||
|
||||
## Contribution Guidelines
|
||||
We welcome contributions! Please follow these steps:
|
||||
|
||||
1. Fork the repository
|
||||
2. Create a new branch for your feature/bugfix
|
||||
3. Commit your changes with clear, descriptive messages
|
||||
4. Submit a pull request with a detailed explanation of your changes
|
||||
|
||||
Please ensure your code follows the existing style and includes appropriate documentation.
|
||||
|
||||
## Testing
|
||||
The application includes basic functionality testing:
|
||||
|
||||
1. Start the application using Docker
|
||||
2. Open the application in your browser
|
||||
3. Test all features:
|
||||
- Add, edit, and delete bills
|
||||
- Add new payees
|
||||
- Verify chart updates
|
||||
- Test sorting functionality
|
||||
- Verify dark mode toggle
|
||||
|
||||
## Acknowledgements
|
||||
- **Chart.js** for data visualization
|
||||
- **Tailwind CSS** for styling
|
||||
- **PHP** and **SQLite** for backend functionality
|
||||
- **Docker** for containerization and easy deployment
|
||||
|
||||
## Roadmap
|
||||
- [ ] Implement user authentication
|
||||
- [ ] Add CSV import/export functionality
|
||||
- [ ] Implement bill reminders and notifications
|
||||
- [ ] Add advanced reporting features
|
||||
|
||||
- Add feature to import bills from CSV files
|
||||
- Add feature to export bills to CSV files
|
||||
- Add authentication and user accounts
|
||||
- Add notifications for upcoming bills
|
||||
- Got an idea? Open an issue!
|
||||
|
||||
## Contributing
|
||||
|
||||
Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.
|
||||
For feature requests or bug reports, please open an issue on (GitHub)[https://github.com/Solo-Web-Works/BillTrak/issues].
|
||||
|
||||
Reference in New Issue
Block a user