{"id":18593178,"url":"https://github.com/avigawande/daily-expense-sharing-application","last_synced_at":"2026-04-20T09:33:00.743Z","repository":{"id":258768065,"uuid":"875665856","full_name":"AviGawande/Daily-Expense-Sharing-Application","owner":"AviGawande","description":"Assignment Backend Intern - Daily Expense Sharing Application","archived":false,"fork":false,"pushed_at":"2024-10-21T03:06:47.000Z","size":13790,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-16T10:41:20.186Z","etag":null,"topics":["backend","flask","mongodb","python"],"latest_commit_sha":null,"homepage":"","language":"Python","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/AviGawande.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":"2024-10-20T15:23:40.000Z","updated_at":"2024-10-21T03:06:50.000Z","dependencies_parsed_at":"2024-10-21T21:03:55.999Z","dependency_job_id":null,"html_url":"https://github.com/AviGawande/Daily-Expense-Sharing-Application","commit_stats":null,"previous_names":["avigawande/daily-expense-sharing-application"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AviGawande/Daily-Expense-Sharing-Application","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AviGawande%2FDaily-Expense-Sharing-Application","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AviGawande%2FDaily-Expense-Sharing-Application/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AviGawande%2FDaily-Expense-Sharing-Application/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AviGawande%2FDaily-Expense-Sharing-Application/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AviGawande","download_url":"https://codeload.github.com/AviGawande/Daily-Expense-Sharing-Application/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AviGawande%2FDaily-Expense-Sharing-Application/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32041393,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T00:18:06.643Z","status":"online","status_checked_at":"2026-04-20T02:00:06.527Z","response_time":94,"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":["backend","flask","mongodb","python"],"created_at":"2024-11-07T01:11:36.317Z","updated_at":"2026-04-20T09:33:00.724Z","avatar_url":"https://github.com/AviGawande.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"### This is the Backend Intern - Assignment for Backend Intern at Convin.ai\r\n\r\n## Objective:\r\nDaily Expense Sharing Application\r\n\r\n### Technology Used:\r\n- 1.Language and Framework:\r\n   - Python\r\n   - Flask\r\n\r\n- 2.Database:\r\n   - MongoDB .\r\n   - MongoDB Compass\r\n\r\n- 3.Testing:\r\n   - Used Postman for Testing Client URLs.\r\n\r\n### API Endpoints:\r\n   - 1.User Endpoint.\r\n      - Create User(POST).\r\n      - Retrieve User Details(GET).\r\n        \r\n   - 2.Expense Endpoint.\r\n      - Add Expense(POST)\r\n      - Retrieve Individual User Expenses(GET).\r\n      - Retrieve Overall Expenses(GET).\r\n      - Download Balance Sheet(GET).\r\n \r\n## How to SetUp this project locally and Test the Results:\r\n\r\n- 1.Fork/Clone this repo:\r\n   - `git clone https://github.com/AviGawande/Daily-Expense-Sharing-Application`\r\n- 2.In the same directory create a virtual environment(venv):\r\n   - Install dependencies if not. `pip install virtualenv`\r\n   - Create a new Virtual.Env name myenv. `python -m venv myenv`\r\n   - Activate the Virtual-Environment(myenv). `myenv\\Scripts\\activate`\r\n- 3.CD into the project directory of clonned project:\r\n   - `cd Daily-Expense-Sharing-Application`\r\n   - Install the Requirements file for project:\r\n      - `pip install -r requirements. txt `\r\n- 4.Run this command on the terminal(ensure to activate the virtualenv and install the dependencies):\r\n   - `flask run `\r\n   - visit this url `http://127.0.0.1:5000/` on browser.\r\n- 5.And your backend system is running locally.\r\n\r\n\r\n  # Results:\r\n  I have attached the snapshots of the each enpoint working successfully along with Collection of Postman URLs.\r\n\r\n  - 1.Create User:\r\n     - Method: POST\r\n     - URL: `http://localhost:5000/users`\r\n     - Body(raw JSON):\r\n       ```\r\n       {\r\n       \"email\": \"abhishek123@gmail.com\",\r\n       \"name\": \"Abhishek Gawande\",\r\n       \"mobile\": \"1111122222\"\r\n       }\r\n       \r\n       ```\r\n     - ![Screenshot 2024-10-20 160411](https://github.com/user-attachments/assets/0b6fa4c4-2d3f-4cf4-ae36-b1fa9e40e296)\r\n\r\n   \r\n   - 2.Retrieve User Details:\r\n     - Method: GET\r\n     - URL: `http://localhost:5000/users/\u003cuser_id\u003e`\r\n      (Replace \u003cuser_id\u003e with the ID returned when creating a user)--\u003e Connect the backend-app with database(MongoDB) to get the IDs.\r\n     - ![Screenshot 2024-10-20 195103](https://github.com/user-attachments/assets/d3ba81e1-7453-44af-add2-60cecd883448)\r\n\r\n    \r\n   - 3.Add Expense:\r\n     - Method: POST\r\n     - URL: `http://localhost:5000/expenses`\r\n     - a. For Equal Split: \r\n       ```\r\n       {\r\n       \"amount\": 3000,\r\n       \"description\": \"Dinner\",\r\n       \"payer_id\": \"\u003cuser_id\u003e\",\r\n       \"split_method\": \"equal\",\r\n       \"splits\": [\r\n           {\"user_id\": \"\u003cuser_id1\u003e\"},\r\n           {\"user_id\": \"\u003cuser_id2\u003e\"},\r\n           {\"user_id\": \"\u003cuser_id3\u003e\"}\r\n       ]\r\n       }\r\n       ```\r\n     -![Screenshot 2024-10-20 182133](https://github.com/user-attachments/assets/5cbe945b-4947-4135-bf9b-f88f81d8d61d)\r\n  \r\n     - b.For Exact Split:\r\n       ```\r\n       {\r\n       \"amount\": 4299,\r\n       \"description\": \"Shopping\",\r\n       \"payer_id\": \"\u003cuser_id\u003e\",\r\n       \"split_method\": \"exact\",\r\n       \"splits\": [\r\n           {\"user_id\": \"\u003cuser_id1\u003e\", \"amount\": 799},\r\n           {\"user_id\": \"\u003cuser_id2\u003e\", \"amount\": 2000},\r\n           {\"user_id\": \"\u003cuser_id3\u003e\", \"amount\": 1500}\r\n       ]\r\n       }\r\n       ```\r\n     - ![Screenshot 2024-10-20 182133](https://github.com/user-attachments/assets/cb740cd3-e606-405c-8dec-4515686a77f2)\r\n\r\n     - c. For Percentage Split:\r\n       ```\r\n          {\r\n       \"amount\": 1000,\r\n       \"description\": \"Party\",\r\n       \"payer_id\": \"\u003cuser_id\u003e\",\r\n       \"split_method\": \"percentage\",\r\n       \"splits\": [\r\n           {\"user_id\": \"\u003cuser_id1\u003e\", \"percentage\": 50},\r\n           {\"user_id\": \"\u003cuser_id2\u003e\", \"percentage\": 25},\r\n           {\"user_id\": \"\u003cuser_id3\u003e\", \"percentage\": 25}\r\n       ]\r\n        }\r\n       ```\r\n     - ![Screenshot 2024-10-20 183250](https://github.com/user-attachments/assets/f8978ba3-a80e-424d-9ba6-c4460fd85c63)\r\n\r\n\r\n  \r\n   - 4.Retrieve Individual User Expenses :\r\n     - Method: GET\r\n     - URL: `http://localhost:5000/expenses/user/\u003cuser_id\u003e`\r\n     - (Replace \u003cuser_id\u003e with an actual user ID)\r\n     - ![Screenshot 2024-10-20 185756](https://github.com/user-attachments/assets/e3b45403-df69-451c-b85b-8bc81d62025d)\r\n\r\n  \r\n   - 5.Retrieve Overall Expenses :\r\n     - Method: GET\r\n     - URL: ` http://localhost:5000/expenses`\r\n     - ![Screenshot 2024-10-20 192426](https://github.com/user-attachments/assets/bc650437-3790-4d6f-be90-61a0139ca941)\r\n\r\n\r\n   - 6.Download the Balance Sheet:\r\n     - Method: GET\r\n     - URL: `http://localhost:5000/balance-sheet/download`\r\n     - ![Screenshot 2024-10-20 194934](https://github.com/user-attachments/assets/64ec5c8f-a31b-4686-842f-056c3006727f)\r\n\r\n    \r\n\r\n\r\n## I am also posting the Postman Collection here where i tested all the API Enpoints:\r\nhttps://www.postman.com/abhigawande123/workspace/convin/collection/36164059-b00fba34-3f3d-4d1e-b194-7f689ef1d507?action=share\u0026creator=36164059\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favigawande%2Fdaily-expense-sharing-application","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Favigawande%2Fdaily-expense-sharing-application","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favigawande%2Fdaily-expense-sharing-application/lists"}