{"id":25919771,"url":"https://github.com/emveskioja/expense-tracker","last_synced_at":"2025-03-03T15:16:02.241Z","repository":{"id":279069034,"uuid":"936595973","full_name":"EMVeskioja/Expense-tracker","owner":"EMVeskioja","description":"Expense tracker with a receipt scanner and a pie chart","archived":false,"fork":false,"pushed_at":"2025-03-03T14:34:40.000Z","size":22,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-03T15:15:59.236Z","etag":null,"topics":["backend-api","contributions-welcome","crud-operation","expense-tracker","fullstack","h2-database","java","open-source","pie-chart","postgresql","react","receipt-scanner","rest-api","restful-api","spring-boot"],"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/EMVeskioja.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}},"created_at":"2025-02-21T11:01:51.000Z","updated_at":"2025-03-03T14:34:44.000Z","dependencies_parsed_at":"2025-02-23T15:35:04.189Z","dependency_job_id":"34823906-f4ab-49fe-9863-7b86317f6e11","html_url":"https://github.com/EMVeskioja/Expense-tracker","commit_stats":null,"previous_names":["emveskioja/expense-tracker"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EMVeskioja%2FExpense-tracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EMVeskioja%2FExpense-tracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EMVeskioja%2FExpense-tracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EMVeskioja%2FExpense-tracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EMVeskioja","download_url":"https://codeload.github.com/EMVeskioja/Expense-tracker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241686830,"owners_count":20003112,"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":["backend-api","contributions-welcome","crud-operation","expense-tracker","fullstack","h2-database","java","open-source","pie-chart","postgresql","react","receipt-scanner","rest-api","restful-api","spring-boot"],"created_at":"2025-03-03T15:16:01.574Z","updated_at":"2025-03-03T15:16:02.231Z","avatar_url":"https://github.com/EMVeskioja.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Java](https://img.shields.io/badge/Java-ED8B00?style=for-the-badge\u0026logo=java\u0026logoColor=white)\n![Spring Boot](https://img.shields.io/badge/Spring%20Boot-6DB33F?style=for-the-badge\u0026logo=spring\u0026logoColor=white)\n![PostgreSQL](https://img.shields.io/badge/PostgreSQL-336791?style=for-the-badge\u0026logo=postgresql\u0026logoColor=white)\n![Open Source](https://img.shields.io/badge/Open%20Source-💡-green)\n![Contributions Welcome](https://img.shields.io/badge/Contributions-Welcome-brightgreen.svg?style=for-the-badge)\n\n\n\n💰 Expense Tracker – Full-Stack App (Spring Boot + React)\nA simple, no-nonsense expense tracker that started as a RESTful API and is now evolving into a full-stack project.\nThis is my hands-on way of solidifying CRUD, database management, and frontend integration skills.\n\n🎯 Why This Project?\nI’m four months into my Java course, and this project is my trial-by-fire to:\n\n Master Spring Boot and RESTful API development\n Implement full CRUD functionality for expenses\n Work with relational databases (H2 for now, PostgreSQL later)\n Break things, fix them, and (hopefully) learn before breaking them again\n Build a functional frontend to visualize \u0026 manage expenses\n\n📢 Endpoints are working! As promised, repo is NOW PUBLIC!\n\nAlso, let’s be real—I’m milking my free IntelliJ Ultimate while I can. Once that student license expires… it’s hello, open-source editors!\n\n🏆 End goal? A solid portfolio → internship → job (or world domination, we’ll see).\n\n🛠️ Tech Stack\n\nBackend:\n Java + Spring Boot\n H2 Database (PostgreSQL later)\n Spring Data JPA\n Swagger UI \n OCR Processing (for Receipt Scanning!)\n     Google Cloud Vision API or Tesseract OCR \n     Spring Boot file upload handling\n\nFrontend:\n React + Vite\n Axios (API Requests)\n TailwindCSS (Styling)\n File Upload \u0026 Image Processing (for receipts)\n     Image preview before upload\n     Handle OCR results \u0026 autofill form\n\nTools \u0026 IDE:\n Swagger UI \n IntelliJ Ultimate (until I’m forced back to VS Code 😭)\n GitHub Actions \n\n✅ Already Working \n CRUD Operations – Add, edit, delete, and retrieve expenses\n Swagger UI – Auto-generated API documentation \u0026 testing\n H2 Console – Debugging directly in the browser\n\n🚧 In Progress \n Expense List UI – Fetch \u0026 display all expenses\n Add Expenses – A simple form to add expenses\n Edit \u0026 Delete Expenses – Manage expenses with UI actions\n Basic Data Visualization – Pie charts for spending categories\n Scan Receipt \u0026 Auto-Fill Form  \n\n❌ Not Doing Authentication (Not needed for now, focusing on core functionality)\n\n⚡ API Endpoints Overview\nMethod\tEndpoint\tDescription\nGET\t/api/expenses\tFetch all expenses\nGET\t/api/expenses/{id}\tGet an expense by ID\nPOST\t/api/expenses\tAdd a new expense\nPUT\t/api/expenses/{id}\tUpdate an existing expense\nDELETE\t/api/expenses/{id}\tRemove an expense\n\n🚀 Next Steps\n Fix any broken endpoints \u0026 validate inputs properly\n Set up React + Vite frontend \n Create a UI to list, add \u0026 delete expenses\n Deploy (without breaking the entire thing 🤞)\n\n💡 Lessons Learned So Far\n Spring Boot is magic… until you debug for hours.\n H2 is great for testing but would implode in production.\n Writing clean endpoints is easy—handling edge cases is a nightmare.\n Swagger saves time (and possibly my sanity).\n\n\n🌟 Contributions \u0026 Feedback\n\nThis project is NOW PUBLIC, and contributions are welcome! \n\n⭐ Stars, forks, and issues are encouraged!\n\n💡 Open to ideas for features \u0026 improvements!\n\n📬 Contact: [elisemarieveskioja@gmail.com]\n\n\n😂 Final Thoughts\nIf you’re still here, you’re either:\n\n Actually interested in my project (which means you have excellent taste, obviously).\n A recruiter scanning for red flags (I assure you, my exception handling is better than my life choices).\n Lost, confused, but too deep in now to back out (we ride at dawn).\n\nEither way—glad to have you! 🚀 Stick around, watch me build cool stuff, and if this breaks in production… well, let’s just call that an immersive learning experience. 😎\n\nAnd if nothing else, at least you can say you witnessed whatever this is unfold in real time. Exciting, right? Right??\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femveskioja%2Fexpense-tracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femveskioja%2Fexpense-tracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femveskioja%2Fexpense-tracker/lists"}