WebBills is a secure, user-centric web application for managing bills, payments, financial entries, and user accounts. It features robust authentication, fine-grained access control, and a modern RESTful API. The application is designed for easy deployment and scalability, supporting Docker and cloud-native workflows.
- User Authentication & Security: JWT-based authentication, secure password hashing, and refresh token support.
- Bill Management: Create, update, and view bills. Bills can be archived, recycled, and restored.
- Entry Management: Track financial entries with advanced filtering, sorting, and statistics (including top payees/payers, overpaid entries, and more).
- Payment Tracking: Record, update, and view payments linked to entries. Automatic calculation of paid/overpaid status.
- Recycle Bin: Soft-delete (recycle) bills, entries, and payments, with endpoints to view and restore recycled items.
- User Profile: View and update user details, change email/password, and soft-delete (recycle) user accounts.
- Comprehensive API: All features are accessible via RESTful endpoints under
/api/v1/. - Dockerized Deployment: Easily build and run the app in a containerized environment. Includes a deployment script for streamlined setup.
This application is built using the SLMR stack:
- Spring Boot for backend REST APIs
- Linux (WSL + Docker) for containerized deployment
- MySQL as the relational data store
- React as the frontend framework
- Java 17+
- Maven 3.6+
- Docker (for containerized deployment)
- Python 3 (for utility scripts, if needed)
git clone https://github.com/mhackett909/WebBills.git
cd WebBills./mvnw clean installdocker-compose up --buildThe application will start on http://localhost:8080.
sh deploy-bills-app.sh
For automated Maven build, Docker image creation, and container startup for the bills application only.
Edit src/main/resources/application.properties or application-dev.properties for environment-specific settings, such as database connection and JWT secrets.
See the bruno/web-bills/ folder for example requests and environments.
Find the latest source code and updates at: WebBills GitHub Repository
Front end: WebBills UI GitHub Repository
Run all tests with:
./mvnw testTest reports are available in the target/surefire-reports/ directory.
- See
task-def-template.jsonfor cloud/container orchestration template. - See
.github/workflows/main.ymlfor auto-deploy workflow.