{"id":20272816,"url":"https://github.com/manuel12/django-expense-tracker","last_synced_at":"2025-04-11T04:42:40.534Z","repository":{"id":67130493,"uuid":"450431751","full_name":"manuel12/django-expense-tracker","owner":"manuel12","description":"Expense Tracker is application that can help you track and list expenses, and also analyze charts and statistics about them.","archived":false,"fork":false,"pushed_at":"2023-08-14T13:35:26.000Z","size":7223,"stargazers_count":19,"open_issues_count":9,"forks_count":8,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-11T04:42:34.342Z","etag":null,"topics":["bootstrap","chartjs","css","cypress","django","e2e-tests","html","javascript","open-source","python"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/manuel12.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2022-01-21T09:34:38.000Z","updated_at":"2025-03-26T09:21:33.000Z","dependencies_parsed_at":"2024-11-14T12:50:26.583Z","dependency_job_id":"27bfc809-a026-4eab-ac76-b70b889343ac","html_url":"https://github.com/manuel12/django-expense-tracker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manuel12%2Fdjango-expense-tracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manuel12%2Fdjango-expense-tracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manuel12%2Fdjango-expense-tracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manuel12%2Fdjango-expense-tracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/manuel12","download_url":"https://codeload.github.com/manuel12/django-expense-tracker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248345281,"owners_count":21088242,"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":["bootstrap","chartjs","css","cypress","django","e2e-tests","html","javascript","open-source","python"],"created_at":"2024-11-14T12:47:06.825Z","updated_at":"2025-04-11T04:42:40.523Z","avatar_url":"https://github.com/manuel12.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![expense_tracker](https://img.shields.io/endpoint?url=https://dashboard.cypress.io/badge/detailed/72wyad\u0026style=plastic\u0026logo=cypress)](https://dashboard.cypress.io/projects/72wyad/runs)\n\n![Expense Tracker](hero.png)\n\nExpense Tracker is application that can help you track and list expenses, and also analyze charts and statistics about them.\n\nThe project uses authentication and CRUD operations to create, read, update and delete expenses assigned to a user.\n\nThe project also performs operations on expenses in order deliver monthly and daily expense averages; current vs last month expense percentages; biggest and smallest expenses by category; and more.\n\n \u003ch2\u003eDesktop\u003c/h2\u003e\n \u003cimg src=\"https://user-images.githubusercontent.com/4129325/221216267-0067eb7d-3be7-4771-a621-92907c10105a.png\" title=\"Expense Tracker Desktop\" alt=\"Expense Tracker Desktop\" width=\"650\" height=\"357\" style=\"display: inline\"/\u003e\n\n  \u003ch2\u003eMobile\u003c/h2\u003e\n \u003cimg src=\"https://user-images.githubusercontent.com/4129325/221216763-897b1481-2626-4b24-ab2c-ce424d24a51f.png\" title=\"Expense Tracker Mobile\" alt=\"Expense Tracker Mobile\" width=\"165\" height=\"357\"/\u003e\n\n## Usage\n\n### Adding Expenses\n\nYou can add an expense by clicking the \"Add Expense\" button, filling and submitting the expense form.\n\nOnce you've added the expense it will be displayed on the total expenses element, the homepage's line chart and will also be listed below on the expenses table.\n\n![Display gif clicking Add Expense button, filling and submitting expense form and displaying expense on line chart and expense table](demo/add-expense-demo.gif)\n\n**Note:**  \n_Line chart will only appear if you have 2 or more expenses added._\n\n### Adding Monthly Budget\n\nYou can add a monthly budget by clicking the\nAdd Monthly Budget button, filling and submitting the form.\n\nOnce you've added it the budget UI will be displayed, including the budget progress bar, the monthly budget next to the expenses of the current month and the edit and delete buttons.\n\n![Display gif clicking Add Budget button, filling and submitting budget form and displaying the budget UI](demo/add-budget-demo.gif)\n\n### Checking Charts \u0026 Statistics\n\nFinally you can access charts and statistics about your expenses by navigating to the Charts \u0026 Statistics section.\n\nHere you can find expense charts with amounts grouped by month and week, as well as total and monthly expenses grouped by categories.\n\nYou can find your current monthly expenses (with controls for editing or deleting budget here too), as well as last month expenses and statistics like monthly expense average, daily expense average, current vs last month expense percetange difference and more.\n\n![Display gif navigating to Charts \u0026 Analytics section](demo/charts-and-analytics-demo.gif)\n\n\u003cbr /\u003e\n\n### Credentials\n\nusername: testuser1  \npassword: testpass1\n\n\u003cbr /\u003e\n\n## Installation\n\nFor installing the Django application clone the repository and cd inside the directory\n\n    cd django-expense-tracker\n\nAnd run:\n\n     pipenv install\n\nThis will install the virtual environments and all dependencies.\n\nNow start the virtual environment shell:\n\n     pipenv shell\n\nRun migrations:\n\n    python manage.py makemigrations\n    python manage.py migrate\n\nCreate superuser:\n\n    python manage.py createsuperuser\n\nNow you can start server...\n\n    python manage.py runserver\n\n...and visit http://localhost:8000/\n\n## (NEW) React Front-end\n\nThe application now includes an embedded react front-end by default, in place of the old template-based front-end. The template files and older django views, urls and other files are still included in the repository, but this is temporary. In the future those files will be removed from the repo to leave only the new react-based front-end.\n\n**Note:**  \nBecause the current front-end is directly embedded in django (which means django settings are looking for the templates directory in the front-end's build/ directory, and also that django looks for static files in such build/ directory), this means you only need to start one server to run both the backend and the front-end of\nthe application. The draw back of this is that, unlike when you work on the server specific to your react application (generally http://localhost:3000/), where you can see changes done to the application being displayed on the screen as soon as you save any changed file, now it is a bit more complicated.\n\n## How to install the Front-end\n\nFirst of all you have to install the front-end packages. In case you want to start the react server in order to see changes to the front-end faster just need to cd to the front-end/ directory and run:\n\n    npm install --legacy-peer-deps\n\nOnce that's installed, you can run:\n\n    npm run start\n\nin order to start the react server on http://localhost:3000/.\n\n## How to make Front-end updates\n\nSo basically whenever you want to see your changes to the front-end displayed on the browser(without starting the react server and using only the django server), you have to save your changed files, cd to the front-end/ directory  and run:\n\n    npm run build\n\non the front-end directory in order to update the build/ directory with your latest changes.\n\nAfter that you need to cd to the root of the repository (where manage.py and this README file are located), and run:\n\n    python manage.py collectstatic\n\nThen when asked by the prompt type 'yes' to overwrite existing staticfiles.\n\nAfter that run:\n\n    python manage.py runserver\n\nand you should see the changes you added previously now displayed on the page.\n\n\n## Installation - Cypress\n\nFor installing Cypress go to the e2e directory and run:\n\n    npm install\n\n## Tests\n\n| Type   | Location                                                                     |\n| ------ | ---------------------------------------------------------------------------- |\n| ui     | [e2e/cypress/integration/ui-tests](e2e/cypress/integration/ui-tests)         |\n| visual | [e2e/cypress/integration/visual-tests](e2e/cypress/integration/visual-tests) |\n| unit   | [expenses/tests](expenses/tests)                                             |\n\n## Running tests\n\n### Unit tests\n\nFor running the tests run:\n\n    python manage.py test\n\n### E2E tests\n\nFor running the tests run:\n\n    npm run test\n\nFor running the tests on headless mode run:\n\n    npm run test:headless\n\nFor opening cypress client run:\n\n    npm run test:open\n\n## Uses\n\n- Django.\n- Postgres.\n- Bootstrap.\n- Chart.js.\n- Cypress.\n\n## Features\n\n- Expense list.\n- Expense charts.\n- Monthly budget bar.\n- Statistics table.\n- Authentication.\n- Form validation.\n- Pagination.\n- UI tests.\n- Visual tests.\n- Unit tests.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanuel12%2Fdjango-expense-tracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanuel12%2Fdjango-expense-tracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanuel12%2Fdjango-expense-tracker/lists"}