{"id":31644461,"url":"https://github.com/aswath0001/expense-tracker","last_synced_at":"2026-05-03T20:32:42.905Z","repository":{"id":310445803,"uuid":"1039846686","full_name":"aswath0001/Expense-Tracker","owner":"aswath0001","description":"Expense Tracker is a financial management application that helps users monitor their spending by recording and categorizing expenses. It provides insights through date-based filtering and visual reports to improve budgeting.","archived":false,"fork":false,"pushed_at":"2025-08-25T12:02:49.000Z","size":90,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-08-25T13:28:56.683Z","etag":null,"topics":["java","postman","springboot","sql"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aswath0001.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2025-08-18T04:31:35.000Z","updated_at":"2025-08-25T12:02:52.000Z","dependencies_parsed_at":"2025-08-25T13:14:37.676Z","dependency_job_id":null,"html_url":"https://github.com/aswath0001/Expense-Tracker","commit_stats":null,"previous_names":["aswath0001/expense-tracker"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aswath0001/Expense-Tracker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aswath0001%2FExpense-Tracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aswath0001%2FExpense-Tracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aswath0001%2FExpense-Tracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aswath0001%2FExpense-Tracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aswath0001","download_url":"https://codeload.github.com/aswath0001/Expense-Tracker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aswath0001%2FExpense-Tracker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278722768,"owners_count":26034461,"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","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["java","postman","springboot","sql"],"created_at":"2025-10-07T04:52:58.809Z","updated_at":"2025-10-07T04:53:04.590Z","avatar_url":"https://github.com/aswath0001.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"Expense Tracker\n\nA robust, scalable,and production-ready expense tracking system built with Spring Boot and MySQL. It supports full financial tracking, user management, split expenses, and real-time balance calculations.\n\nSetup Instructions\n\nClone the Repository\n\ngit clone https://github.com/aswath0001/expense-tracker.git\ncd expense-tracker\n\n🚀 Features Overview\n1. 👤 User Management\n\n✅ User Registration – Create new users with email validation\n\n✅ Get All Users – Retrieve full list of users\n\n✅ Get User by ID – Fetch specific user details\n\n✅ Update User – Modify user data\n\n✅ Delete User – Remove users with relationship handling\n\n2. 💸 Expense Management\n\n✅ Create Expenses – Add new expense records\n\n✅ View All Expenses – Full expense history\n\n✅ Get Expense by ID – Retrieve specific expense\n\n✅ Update Expenses – Modify existing records\n\n✅ Delete Expenses – Remove records cleanly\n\n✅ Date Range Filtering – Filter expenses by date\n\n✅ Title-based Search – Find expenses by name/title\n\n3. 💰 Income Tracking\n\n✅ Record Income – Add income entries\n\n✅ View All Income – Complete income log\n\n✅ Get Income by ID – Specific income details\n\n✅ Update Income – Edit income data\n\n✅ Delete Income – Remove entries\n\n4. 👥 Split Expense System\n\n✅ Create Splits – Divide expenses among users\n\n✅ View All Splits – See all divisions\n\n✅ Get Split by ID – Fetch a specific split\n\n✅ Settle Splits – Mark splits as settled\n\n✅ Delete Splits – Remove records\n\n✅ Payer-based Filtering – See what each user owes\n\n✅ Payee-based Filtering – See what each user receives\n\n5. 📊 Balance Management\n\n✅ Automatic Balance Updates – Real-time balance changes\n\n✅ User Balance Tracking – Current financial position\n\n✅ Transaction History – Full record of income, expenses, and splits\n\n🗄️ Database Structure\n🔑 Core Tables\n\nuser – User accounts, balance tracking\n\nexpense – Expense records with categories and timestamps\n\nincome – Income records with source tracking\n\nsplit_expense – Shared expenses across users\n\nexpense_participant – Links participants in splits\n\n🔗 Key Relationships\n\nUsers can create multiple expenses and income entries\n\nExpenses can be split between multiple users\n\nAutomatic balance sync between users\n\nReferential integrity using foreign keys\n\n🧠 Technical Architecture\n⚙️ Backend\n\nSpring Boot 3.x – Modern Java framework\n\nSpring Data JPA – ORM and repository pattern\n\nRESTful APIs – Clean, maintainable, scalable\n\nCORS Enabled – Cross-origin resource sharing\n\nError Handling – Centralized and descriptive\n\n🗃️ Database\n\nMySQL – Relational database integration\n\nAuto-increment IDs – Primary key management\n\nForeign Key Constraints – Referential integrity\n\nTransaction Management – ACID-compliant operations\n\nLazy Loading – Efficient resource use\n\n✅ Data Validation\n\nUnique email enforcement\n\nProper data type validation\n\nForeign key constraints for relationships\n\nReal-time balance sync logic\n\n🔄 Workflow Example\n\nA user creates an expense: ₹1000 Dinner\n\nSplit with 3 friends → ₹333.33 each\n\nAutomatic balance update:\n\nPayer’s balance: -₹666.67\n\nEach payee’s balance: +₹333.33\n\nSplits are marked as settled when paid\n\n🚦 Production-Ready Features\n\n✅ Database migrations with schema updates\n\n✅ Proper HTTP status codes \u0026 error responses\n\n✅ Full input validation\n\n✅ Optimized SQL queries via JPA\n\n✅ Scalable codebase and modular design\n\n🛠️ Getting Started\nPrerequisites\n\nJava 17+\n\nMaven\n\nMySQL Server\n\nConfigure application.properties\n\nspring.datasource.url=jdbc:mysql://localhost:3306/expense_db\nspring.datasource.username=root\nspring.datasource.password=your_password\nspring.jpa.hibernate.ddl-auto=update\n\nRun the Application\n\nmvn spring-boot:run\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faswath0001%2Fexpense-tracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faswath0001%2Fexpense-tracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faswath0001%2Fexpense-tracker/lists"}