{"id":25926901,"url":"https://github.com/fatema-016/expense-tracker","last_synced_at":"2026-05-06T19:38:58.448Z","repository":{"id":279803343,"uuid":"940012718","full_name":"Fatema-016/expense-tracker","owner":"Fatema-016","description":"This project is a full-stack expense tracking application built using Python, MySQL, FastAPI, and Streamlit. It allows users to manage and track their expenses effectively.","archived":false,"fork":false,"pushed_at":"2025-02-27T14:34:52.000Z","size":15,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-27T19:54:19.872Z","etag":null,"topics":["fastapi","python","streamlit"],"latest_commit_sha":null,"homepage":"","language":"Python","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/Fatema-016.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-27T13:26:34.000Z","updated_at":"2025-02-27T15:24:44.000Z","dependencies_parsed_at":"2025-02-27T19:54:23.012Z","dependency_job_id":"1c226eb5-bf0e-4a54-a00a-0efd14ab226e","html_url":"https://github.com/Fatema-016/expense-tracker","commit_stats":null,"previous_names":["fatema-016/expense-tracker"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fatema-016%2Fexpense-tracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fatema-016%2Fexpense-tracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fatema-016%2Fexpense-tracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fatema-016%2Fexpense-tracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Fatema-016","download_url":"https://codeload.github.com/Fatema-016/expense-tracker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241731744,"owners_count":20010781,"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":["fastapi","python","streamlit"],"created_at":"2025-03-03T20:03:51.614Z","updated_at":"2026-05-06T19:38:58.373Z","avatar_url":"https://github.com/Fatema-016.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Expense Tracking Project\n\nThis project is a full-stack expense tracking application built using Python, MySQL, FastAPI, and Streamlit. It allows users to manage and track their expenses effectively.\n\n## Features\n\n* **Expense Management:** Add, view, and manage expenses.\n* **Database Integration:** Uses MySQL for persistent data storage.\n* **API Backend:** FastAPI provides a robust API for data access.\n* **User-Friendly Frontend:** Streamlit creates an interactive and easy-to-use web interface.\n* **Unit Testing:** Includes unit tests for the backend database helper.\n\n## Project Structure\n\nproject-expense-tracking/\n  * Backend/\n        db_helper.py        # Database interaction logic\n        server.py           # FastAPI application\n        .env                # Environment variables (database credentials) - DO NOT COMMIT\n  * Frontend/\n        app.py              # Streamlit application\n  * Test/\n       backend/\n         test_db_helper.py # Unit tests\n       conftest.py       # pytest configuration\n  * Database/\n         expenses_db_creation.sql # SQL script to create the database schema \n         expenses_db.csv         # Sample expense data (optional)\n  * .gitignore              # Files to ignore in Git\n  *  requirements.txt        # Project dependencies\n  *  README.md               # Project documentation (this file)\n\n## Setup Instructions\n\n1.  **Clone the Repository:**\n\n    ```bash\n    git clone [https://github.com/Fatema-016/expense-tracker.git](https://github.com/Fatema-016/expense-tracker.git)\n    cd expense-tracker\n    ```\n\n2.  **Set Up a Virtual Environment:**\n\n    ```bash\n    python -m venv venv\n    source venv/bin/activate  # On macOS/Linux\n    venv\\Scripts\\activate  # On Windows\n    ```\n\n3.  **Install Dependencies:**\n\n    ```bash\n    pip install -r requirements.txt\n    ```\n\n4.  **Set Up MySQL Database:**\n\n    * Install MySQL if you haven't already.\n    * Create a database named `expense_manager`.\n    * Run the `expenses_db_creation.sql` script to create the `expenses` table:\n\n        ```bash\n        mysql -u your_mysql_username -p expense_manager \u003c Database/expenses_db_creation.sql\n        ```\n\n    * (Optional) If you want to use the sample data, import the `expenses_db.csv` file into the `expenses` table.\n\n5.  **Configure `.env` File:**\n\n    * Create a `.env` file in the `Backend/` directory with your MySQL credentials:\n\n        ```env\n        MYSQL_HOST=localhost\n        MYSQL_USER=your_mysql_username\n        MYSQL_PASSWORD=your_mysql_password\n        MYSQL_DATABASE=expense_manager\n        ```\n\n   \n\n6.  **Run the Backend (FastAPI):**\n\n    ```bash\n    cd Backend\n    uvicorn server:app --reload\n    ```\n\n7.  **Run the Frontend (Streamlit):**\n\n    ```bash\n    cd ../Frontend\n    streamlit run app.py\n    ```\n\n8.  **Access the Application:**\n\n    * Open your web browser and go to the URL displayed by Streamlit (usually `http://localhost:8501`).\n\n## Running Tests\n\nTo run the unit tests for the backend:\n\n```bash\ncd .. # go back to the project root\npytest ./Test/backend/\n\n\n    \n    \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffatema-016%2Fexpense-tracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffatema-016%2Fexpense-tracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffatema-016%2Fexpense-tracker/lists"}