{"id":19044229,"url":"https://github.com/arturogonzalezm/car_payments","last_synced_at":"2026-05-05T03:37:22.162Z","repository":{"id":235924874,"uuid":"791556294","full_name":"arturogonzalezm/car_payments","owner":"arturogonzalezm","description":null,"archived":false,"fork":false,"pushed_at":"2024-08-21T01:46:31.000Z","size":34,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-02T08:14:36.112Z","etag":null,"topics":["python","python3","python311","streamlit","streamlit-dashboard","streamlit-webapp"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arturogonzalezm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-24T23:42:47.000Z","updated_at":"2024-08-21T01:46:34.000Z","dependencies_parsed_at":"2024-05-04T20:30:51.711Z","dependency_job_id":null,"html_url":"https://github.com/arturogonzalezm/car_payments","commit_stats":null,"previous_names":["arturogonzalezm/car_payments"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arturogonzalezm%2Fcar_payments","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arturogonzalezm%2Fcar_payments/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arturogonzalezm%2Fcar_payments/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arturogonzalezm%2Fcar_payments/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arturogonzalezm","download_url":"https://codeload.github.com/arturogonzalezm/car_payments/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240100558,"owners_count":19747689,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["python","python3","python311","streamlit","streamlit-dashboard","streamlit-webapp"],"created_at":"2024-11-08T22:45:15.891Z","updated_at":"2026-05-05T03:37:22.109Z","avatar_url":"https://github.com/arturogonzalezm.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![License: MIT](https://img.shields.io/badge/License-MIT-purple.svg)](https://github.com/arturogonzalezm/car_payments/blob/master/LICENSE)\n[![PyLint](https://github.com/arturogonzalezm/car_payments/actions/workflows/workflow.yml/badge.svg)](https://github.com/arturogonzalezm/car_payments/actions/workflows/workflow.yml)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n\n# Car Loan Payment Dashboard\n\nThe Car Loan Payment Dashboard is a Streamlit-based application designed to calculate and visualize car loan payments. It integrates financial calculations with interactive elements to provide users with a detailed understanding of their loan terms, including monthly repayments, interest amounts, principal payments, and overall loan progress.\n\n## Features\n\n- Calculation of monthly car loan payments\n- Interactive inputs for car price, interest rate, loan duration, and admin fees\n- Visualization of monthly balances and payment breakdowns\n- Summary statistics for overall loan payments\n\n## Installation\n\nTo run the Car Loan Payment Dashboard, you will need to install Python and several packages. Below are the instructions to set up your environment:\n\n### Prerequisites\n\n- Python 3.8 or higher\n- pip\n\n### Dependencies\n\nInstall the required packages using pip:\n\n```bash\npip install pandas streamlit plotly\n```\n\n### Running the Dashboard\n\nTo run the Car Loan Payment Dashboard, use the following command:\n\n```bash\nstreamlit run app.py\n```\n\nThe dashboard will open in your default web browser.\n\n## Code Structure\n\n### DashboardFacade\nThis class serves as the facade for the dashboard, integrating UI components with the loan calculation logic.\n\n- **Methods:**\n  - `__init__`: Initializes the UI and calculator components.\n  - `setup_dashboard`: Configures the dashboard elements and binds them to Streamlit.\n\n### DashboardUI\nResponsible for the creation and management of Streamlit UI components.\n\n- **Methods:**\n  - `display_title`: Displays the main title of the dashboard.\n  - `display_columns_inputs`: Provides input fields for the user to specify loan details.\n  - `setup_tabs`: Configures the tabs for separating different sections of the dashboard.\n\n### LoanCalculator\nHandles the financial calculations related to the car loan.\n\n- **Methods:**\n  - `calculate_monthly_repayment`: Calculates the monthly repayment amount based on the loan details.\n  - `calculate_balances`: Generates a detailed breakdown of payments over the loan period, returning a DataFrame.\n\n## Interaction Sequence Diagram\n\nBelow is a sequence diagram illustrating the interaction flow between the user, Dashboard UI, Dashboard Facade, and Loan Calculator components of the Car Loan Payment Dashboard.\n\n```mermaid\nsequenceDiagram\n    participant User\n    participant DashboardUI as Dashboard UI\n    participant DashboardFacade as Dashboard Facade\n    participant LoanCalculator as Loan Calculator\n\n    User-\u003e\u003e+DashboardUI: Access Dashboard\n    DashboardUI-\u003e\u003e+DashboardFacade: Initialize DashboardFacade\n    DashboardFacade-\u003e\u003e+DashboardUI: Create UI Components\n    DashboardUI-\u003e\u003eDashboardFacade: UI Ready\n\n    DashboardFacade-\u003e\u003e+DashboardUI: display_columns_inputs()\n    DashboardUI-\u003e\u003eUser: Enter Loan Details\n    User-\u003e\u003eDashboardUI: Submit Loan Details\n    DashboardUI-\u003e\u003eDashboardFacade: Return Loan Details\n\n    DashboardFacade-\u003e\u003e+LoanCalculator: calculate_balances(Car Price, Interest Rate, Term, Fee)\n    LoanCalculator-\u003e\u003e-DashboardFacade: Return Monthly Balances DataFrame\n\n    DashboardFacade-\u003e\u003e+DashboardUI: setup_tabs()\n    DashboardUI-\u003e\u003eDashboardFacade: Tabs Configured\n\n    DashboardFacade-\u003e\u003eDashboardUI: Display Data\n    DashboardUI-\u003e\u003eUser: Show Loan Calculation Results\n\n    DashboardUI-\u003e\u003eDashboardUI: Wait for User Interaction\n    User-\u003e\u003eDashboardUI: User Interacts (Adjust inputs/View different tabs)\n\n    DashboardUI-\u003e\u003eDashboardFacade: Re-calculate as Needed\n    DashboardFacade-\u003e\u003eLoanCalculator: Recalculate if Parameters Changed\n    LoanCalculator-\u003e\u003eDashboardFacade: Update Data\n\n    DashboardFacade-\u003e\u003eDashboardUI: Update Display\n    DashboardUI-\u003e\u003eUser: Display Updated Results\n```\n\n## Conclusion\nThe Car Loan Payment Dashboard is a comprehensive tool for managing and understanding car loan payments. By leveraging Python with Streamlit and Plotly, it provides an interactive and informative platform for users to visualize their loan schedules and financial obligations.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farturogonzalezm%2Fcar_payments","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farturogonzalezm%2Fcar_payments","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farturogonzalezm%2Fcar_payments/lists"}