{"id":20884078,"url":"https://github.com/emms21/daggerverse","last_synced_at":"2025-07-30T18:10:40.702Z","repository":{"id":229854598,"uuid":"777822938","full_name":"EmmS21/daggerverse","owner":"EmmS21","description":"A collection of Dagger modules I built and published","archived":false,"fork":false,"pushed_at":"2025-03-04T02:40:10.000Z","size":195,"stargazers_count":12,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-12T18:46:25.436Z","etag":null,"topics":["dagger","docker-container","huggingface-transformers","langchain","mongodb-atlas","nodejs","python","typescript"],"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/EmmS21.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,"zenodo":null}},"created_at":"2024-03-26T15:10:40.000Z","updated_at":"2025-03-04T02:40:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"f076ca80-8c12-4ac0-bb42-1c7383cd71b4","html_url":"https://github.com/EmmS21/daggerverse","commit_stats":null,"previous_names":["emms21/jesttestrunner","emms21/daggerverse"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/EmmS21/daggerverse","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmmS21%2Fdaggerverse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmmS21%2Fdaggerverse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmmS21%2Fdaggerverse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmmS21%2Fdaggerverse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EmmS21","download_url":"https://codeload.github.com/EmmS21/daggerverse/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmmS21%2Fdaggerverse/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267914872,"owners_count":24164812,"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","status":"online","status_checked_at":"2025-07-30T02:00:09.044Z","response_time":70,"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":["dagger","docker-container","huggingface-transformers","langchain","mongodb-atlas","nodejs","python","typescript"],"created_at":"2024-11-18T08:08:59.743Z","updated_at":"2025-07-30T18:10:40.678Z","avatar_url":"https://github.com/EmmS21.png","language":"Python","readme":"# Daggerverse Repository\n\nWelcome to the **Daggerverse** repository, a collection of Dagger modules designed and built by **Emmanuel Sibanda**. This repository aims to automate various aspects of financial data processing, analysis, and test generation. Below is a detailed yet concise overview of each module to ensure engineering managers can quickly understand and evaluate the technical capabilities presented here.\n\n## What is Dagger?\n\nDagger is a programmable tool that allows you to replace your software project's artisanal scripts with a modern API and cross-language scripting engine. It simplifies and automates complex workflows, making development and deployment processes more efficient.\n\nFor more detailed documentation, refer to the [Dagger documentation](https://docs.dagger.io/).\n\n## Modules Overview\n\n### 1. CategorizeExpenses\n\n#### Overview\nThe `CategorizeExpenses` module leverages natural language processing to automatically categorize financial transactions. Using the BART large MNLI model from Hugging Face, it interprets transaction descriptions and assigns them to predefined categories, aiding in financial analysis and budgeting.\n\n#### Model Details\n- **Model Used**: [BART large MNLI](https://huggingface.co/facebook/bart-large-mnli)\n- **Provider**: Hugging Face\n\n#### Categories\n- Grocery\n- Snacks\n- Takeouts\n- Entertainment\n- Transportation\n- Credit Card Payment\n- Shopping\n- Personal Care\n- Healthcare\n\n#### Prerequisites\n- Access to MongoDB\n- API key for Hugging Face\n\n#### Set Environment Variables\n```bash\nexport HUGGING_FACE_TOKEN=\"your_hugging_face_api_token\"\n```\n\n#### Example Call\n```bash\ndagger call categorize --data='[{\"Description\": \"Dinner at Italian restaurant\", \"Amount\": 120}]' --hftoken=env:HUGGING_FACE_TOKEN\n```\n\n#### Expected Output\n```bash\n{\n  \"Transactions\": [\n    {\n      \"Description\": \"Dinner at Italian restaurant\",\n      \"Amount\": 120,\n      \"Category\": \"Takeouts\"\n    }\n  ]\n}\n```\n\n### 2. Sveltekit Unit Test Generator with LangChain\n\n#### Description\nThis module automates the generation of unit tests for Sveltekit projects using LangChain AI capabilities, improving developer productivity.\n\n#### Functionality\n- GenerateUnitTests: Utilizes LangChain's ChatOpenAI model to create unit tests based on system messages and human input prompts.\n\n### 3. FetchSpreadsheetData\n\n#### Overview\nAutomates fetching transaction data from Google Spreadsheets populated by Tiller, converting it into structured JSON for financial analysis and expense management.\n\n#### Functionality\n- Securely connects to Google Sheets and retrieves transaction data.\n- Parses data into structured JSON.\n- Handles errors gracefully.\n\n#### Usage\n``` bash\ndagger call fetch-data --apiKey=env:[KEY] --sheet=env:[KEY]\n```\n\n### 4. FilterForNewTransactions\n\n#### Overview\nFilters new transactional data from a given spreadsheet against existing records in MongoDB, isolating transactions not yet recorded.\n\n#### Features\n- Filters existing transactions based on unique identifiers.\n- Interfaces with MongoDB for authentication and retrieval.\n- Handles retries and exceptions.\n\n#### Example Usage\n``` bash\ndagger call filter --data=[DATA] --connection=env:[KEY] --database=[DBNAME] --collection=[COLLECTIONNAME]\n```\n\n### 5. GetAdvice\n\n#### Overview\nProvides personalized financial advice using AI, aiding in budget management and financial planning. Integrates LangChain with OpenAI's GPT models to process data and deliver insights.\n\n#### Functions\n- **generate:** Provides insights on weekly spending and budget adherence.\n- **update_prompt:** Updates initial prompts based on user feedback and regenerates advice.\n\n#### Example Usage\n``` bash\ndagger call generate --data='{\"current_week\": {\"Groceries\": \"$150\", \"Utilities\": \"$120\"}, \"previous_weeks\": {\"Groceries\": \"$130\", \"Utilities\": \"$110\"}}' --openai=env:OPENAI_SECRET --connection=env:DB_CONNECTION\n```\n``` bash\ndagger call update_prompt --feedback='I prefer more savings tips.' --data='{\"current_week\": {\"Groceries\": \"$150\", \"Utilities\": \"$120\"}, \"previous_weeks\": {\"Groceries\": \"$130\", \"Utilities\": \"$110\"}}' --openai=env:OPENAI_SECRET --connection=env:DB_CONNECTION\n```\n\n### 6. GetFromMongo\n\n#### Overview\nFacilitates advanced data retrieval and aggregation from MongoDB using Atlas Search, providing detailed financial insights by grouping transactions by weeks and categories.\n\n#### Example Usage\n``` bash\ndagger call get-data --connection=env:MONGO --database=[DBNAME] --collection=[COLLECTIONNAME]\n```\n\n### 7. NodeJS Unit Test Runner\n\n#### Overview\nRuns unit tests in a containerized environment for NodeJS projects, ensuring consistent test results across different environments.\n\n#### Example Usage\n``` bash\ndagger call test\n```\n``` bash\ndagger call build-test --src=../../ --repo=emms21/interviewsageai --tag=latest\n```\n\n## Dependencies\n`dagger`","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femms21%2Fdaggerverse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femms21%2Fdaggerverse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femms21%2Fdaggerverse/lists"}