{"id":28315994,"url":"https://github.com/mwndl/finapp_api","last_synced_at":"2026-05-08T04:49:11.129Z","repository":{"id":287309070,"uuid":"964306454","full_name":"mwndl/finapp_api","owner":"mwndl","description":"A financial goal tracker built with Spring Boot.","archived":false,"fork":false,"pushed_at":"2025-05-18T15:06:49.000Z","size":443,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-01T11:16:49.232Z","etag":null,"topics":["financial-management","goal-based-savings","investment-tracker","java","jwt","mysql","rest-api","spring-boot","spring-security"],"latest_commit_sha":null,"homepage":"","language":"Java","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/mwndl.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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-04-11T02:24:22.000Z","updated_at":"2025-05-07T23:58:36.000Z","dependencies_parsed_at":"2025-05-04T21:25:19.531Z","dependency_job_id":"0114dacc-80fc-4b89-9b2c-47443f8de272","html_url":"https://github.com/mwndl/finapp_api","commit_stats":null,"previous_names":["mwndl/finapp_api"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/mwndl/finapp_api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mwndl%2Ffinapp_api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mwndl%2Ffinapp_api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mwndl%2Ffinapp_api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mwndl%2Ffinapp_api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mwndl","download_url":"https://codeload.github.com/mwndl/finapp_api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mwndl%2Ffinapp_api/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261542937,"owners_count":23174658,"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":["financial-management","goal-based-savings","investment-tracker","java","jwt","mysql","rest-api","spring-boot","spring-security"],"created_at":"2025-05-25T01:13:16.911Z","updated_at":"2026-05-08T04:49:06.105Z","avatar_url":"https://github.com/mwndl.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# FINAPP - Investment Goal Tracker\n\n## Description\n\nFinapp is a financial management application that allows users to organize their investments into \"fund boxes\" (goal-based savings or investment buckets). The project is built with Spring Boot on the backend and is designed to integrate with a mobile app. Users can manage deposits with collaborative financial goal support.\n\n## Main Features\n\n-   Create collaborative find boxes by inviting other users\n\n-   User registration, authentication, and session management with JWT and refresh tokens\n\n-   Create, edit, view, and delete fund boxes\n\n-   Request password reset via email (token-based)\n\n-   Add deposits (entries and exits)\n\n-   Real-time fund box balance calculation\n\n-   Automatic deposit unlinking when a fund box is deleted\n\n-   Centralized error handling with custom messages\n\n\n## Technologies\n\n-   Java 21\n\n-   Spring Boot\n\n-   Spring Web\n\n-   Spring Security\n\n-   Spring Data JPA\n\n-   MySQL\n\n-   JWT (JSON Web Tokens)\n\n\n## How to Run Locally\n\n1.  Clone the repository\n\n2.  Configure the `application.properties` file with your database credentials\n\n3.  Run the app via your IDE or use `./mvnw spring-boot:run`\n\n4.  The API will be available at `http://localhost:8080`\n\n\n## Main Project Structure\n\n-   `controller`: REST endpoints\n\n-   `service`: business logic\n\n-   `model`: JPA entities\n\n-   `repository`: data access interfaces\n\n-   `dto`: data transfer objects\n\n-   `exception`: centralized error handling\n\n\n## Business Rules\n\n-   Each user can create multiple fund boxes, each with a unique name\n\n-   A deposit can be linked or unlinked from a fund box\n\n-   When a fund box is deleted, its deposits remain but are unlinked\n\n-   Users can only access and manage their own data\n\n\n## Key Endpoints\n\nAll available endpoints, request/response formats, and authentication details can be found in the Swagger UI:\n\n👉 [http://localhost:8080/swagger-ui.html](http://localhost:8080/swagger-ui.html)\n\n\u003e Make sure the application is running locally before accessing.\n\n## Planned Features\n\n-   Transform deposits into fixed income investments\n\n-   Exportable financial reports\n\n\n## Author\n\nThis project is developed by **Marcos Wiendl**.  \nFor suggestions, feedback, or contributions, feel free to:\n\n-   Open an issue or submit a pull request\n\n-   Connect on [LinkedIn – Marcos Wiendl](https://www.linkedin.com/in/marcoswiendl)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmwndl%2Ffinapp_api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmwndl%2Ffinapp_api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmwndl%2Ffinapp_api/lists"}