{"id":18553518,"url":"https://github.com/quantumudit/groceries-basket-analysis","last_synced_at":"2026-04-12T12:41:26.369Z","repository":{"id":255411116,"uuid":"848990490","full_name":"quantumudit/Groceries-Basket-Analysis","owner":"quantumudit","description":"This project performs market basket analysis using Power BI and Python to reveal associations between grocery items. It involves transforming raw transaction data into a processed dataset, creating interactive Power BI reports, and generating key insights through Python, enabling data-driven decision-making.","archived":false,"fork":false,"pushed_at":"2025-07-20T21:27:46.000Z","size":4709,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-20T23:28:48.560Z","etag":null,"topics":["data-analysis","data-visualization","pandas","powerbi","python"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","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/quantumudit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-08-28T19:19:57.000Z","updated_at":"2025-07-20T21:27:49.000Z","dependencies_parsed_at":"2024-08-29T21:12:47.935Z","dependency_job_id":"eea7af87-ceee-44b8-a9b6-24d3266f8f96","html_url":"https://github.com/quantumudit/Groceries-Basket-Analysis","commit_stats":null,"previous_names":["quantumudit/groceries-basket-analysis"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/quantumudit/Groceries-Basket-Analysis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quantumudit%2FGroceries-Basket-Analysis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quantumudit%2FGroceries-Basket-Analysis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quantumudit%2FGroceries-Basket-Analysis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quantumudit%2FGroceries-Basket-Analysis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/quantumudit","download_url":"https://codeload.github.com/quantumudit/Groceries-Basket-Analysis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quantumudit%2FGroceries-Basket-Analysis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31715492,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-12T06:22:27.080Z","status":"ssl_error","status_checked_at":"2026-04-12T06:21:52.710Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["data-analysis","data-visualization","pandas","powerbi","python"],"created_at":"2024-11-06T21:17:21.656Z","updated_at":"2026-04-12T12:41:26.361Z","avatar_url":"https://github.com/quantumudit.png","language":"Jupyter Notebook","funding_links":["https://www.buymeacoffee.com/quantumudit","https://paypal.me/quantumudit"],"categories":[],"sub_categories":[],"readme":"# ![Project Logo][project_logo]\n\n---\n\n\u003ch4 align=\"center\"\u003e Transforming Groceries Transactions Data and Performing Market Basket Analysis using \u003ca href=\"https://www.python.org/\" target=\"_blank\"\u003ePython\u003c/a\u003e and \u003ca href=\"https://en.wikipedia.org/wiki/Microsoft_Power_BI\" target=\"_blank\"\u003ePower BI\u003c/a\u003e\u003c/h4\u003e\n\n\u003cp align='center'\u003e\n\u003cimg src=\"https://forthebadge.com/images/badges/built-with-love.svg\" alt=\"built-with-love\" border=\"0\"\u003e\n\u003cimg src=\"https://forthebadge.com/images/badges/powered-by-coffee.svg\" alt=\"powered-by-coffee\" border=\"0\"\u003e\n\u003cimg src=\"https://forthebadge.com/images/badges/cc-nc-sa.svg\" alt=\"cc-nc-sa\" border=\"0\"\u003e\n\u003c/p\u003e\n\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#overview\"\u003eOverview\u003c/a\u003e •\n  \u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e •\n  \u003ca href=\"#architecture\"\u003eArchitecture\u003c/a\u003e •\n  \u003ca href=\"#demo\"\u003eDemo\u003c/a\u003e •\n  \u003ca href=\"#support\"\u003eSupport\u003c/a\u003e •\n  \u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\n\u003c/p\u003e\n\n## Overview\n\nThis project is focused on conducting a comprehensive market basket analysis using both Power BI and Python. The primary objective is to uncover associations between various grocery products, empowering end-users to make data-driven decisions.\n\n**Power BI:** An interactive report is developed in Power BI, enabling users to explore relationships between different products dynamically. This interactive approach provides valuable insights that can guide decision-making processes related to inventory management, marketing strategies, and product placement.\n\n**Python:** In parallel, the project utilizes Python to perform the market basket analysis, generating a static report that highlights key insights. This report complements the interactive Power BI dashboard by offering a detailed analysis that captures the essence of customer purchasing patterns.\n\nThe process involves transforming raw transaction data into a refined dataset using Python, which is then seamlessly integrated into both the Python for analysis and Power BI report. This ensures that the analysis is built on clean, structured data, allowing for accurate and meaningful results.\n\nThe project repository exhibits the following structure:\n\n```\nGroceries-Basket-Analysis/\n├── 📁.github\n├── 📁conf\n├── 📁data/\n│   ├── 📁external\n│   ├── 📁processed\n├── 📁notebooks\n├── 📁src/\n│   ├── 📁components\n│   ├── 📁pipelines\n│   ├── 📁utils\n│   ├── 🐍constants.py\n│   ├── 🐍exception.py\n│   └── 🐍logger.py\n├── 📁logs\n├── 📁reports\n├── 📁resources\n├── 🐍main.py\n├── 🐍template.py\n├── 🔒poetry.lock\n├── 📇pyproject.toml\n├── 🗒️requirements.txt\n├── 📜.gitignore\n├── 🔑LICENSE\n└── 📝README.md\n```\n\u003cdetails\u003e\n\u003csummary\u003e\n   \u003cstrong\u003e💡 Repository Structure Details\u003c/strong\u003e\n\u003c/summary\u003e\n\u003cbr\u003e\n\nTo help you navigate through the project, here’s a concise guide to the repository’s structure, detailing what each directory contains and its purpose within the project:\n\n- **`📁.github`** - Contains GitHub-related configuration files like workflows for CI/CD.\n- **`📁conf`** - Configuration files and schema for the project.\n- **`📁data/`**\n  - **`📁external`** - Data extracted from external data source(s).\n  - **`📁processed`** - Data that has been cleaned and transformed for analysis.\n- **`📁notebooks`** - Jupyter notebooks for exploratory data analysis and model experimentation.\n- **`📁src/`**\n  - **`📁components`** - Modular components used across the project.\n  - **`📁pipelines`** - Data processing and machine learning pipelines.\n  - **`📁utils`** - Utility scripts for common tasks throughout the project.\n  - **`🐍constants.py`** - Central file for constants used in the project.\n  - **`🐍exception.py`** - Custom exception classes for error handling.\n  - **`🐍logger.py`** - Logging configuration and setup.\n- **`📁logs`** - Contains auto-generated logs for event and error tracking, not included in Git.\n- **`📁reports`** - Generated analysis reports and insights.\n- **`📁resources`** - Additional resources like images or documents used in the project\n- **`🐍main.py`** - Script to orchestrates the project's workflow. It sequentially executes the pipeline scripts\n- **`🐍template.py`** - Template script for standardizing code structure.\n- **`🔒poetry.lock`** - Lock file for Poetry to ensure reproducible builds.\n- **`📇pyproject.toml`** - Poetry configuration file for package management.\n- **`🗒️requirements.txt`** - List of Python package requirements.\n- **`📜.gitignore`** - Specifies intentionally untracked files to ignore.\n- **`🔑LICENSE`** - The license file for the project.\n- **`📝README.md`** - The introductory documentation for the project.\n\n\u003c/details\u003e\n\n## Prerequisites\n\n### Tech Stack Prerequisites\n![Python] ![Numpy] ![Pandas] ![Matplotlib] ![PowerBI]\n\nTo effectively engage with this project, possessing a robust understanding of the skills listed below is advisable:\n\n- Core comprehension of Python, and Modular programming\n- Acquaintance with data modelling, DAX and Power BI\n- Acquaintance with the Python libraries specified in the 🗒️[requirements.txt][requirements] document\n\nThese competencies will facilitate a seamless and productive journey throughout the project.\n\n### Development Environment Prerequisites\n![Anaconda] ![Poetry] ![VS_code] ![Jupyter_Notebook] ![PowerBI] ![Notepad_plus_plus] ![Obsidian] ![Figma] ![Clickup]\n\nApplication selection and setup may vary based on individual preferences and system setups.\n\nThe development tools I've employed for this project are:\n- **Anaconda** / **Poetry**: Utilized for distribution and managing packages\n- **VS Code**: Employed for writing and editing code\n- **Jupyter Notebook**: Used for data analysis and experimentation\n- **Power BI Desktop**: Used for data modeling and visualization\n- **Notepad++**: Served as an auxiliary code editor\n- **Obsidian**: Utilized for documenting project notes\n- **Figma**: Used for crafting application UI/UX designs\n- **Click Up**: Employed for overseeing project tasks\n\n### Automation Integration Necessities\n![GitHubActions]\n\nIntegrating process automation is entirely elective, as is the choice of the automation tool.\n\nIn this project, **GitHub Actions** has been selected to automate the data transformation process as needed.\n\nShould there be a need to adjust data-related settings, simply update the YAML configurations, and the entire development workflow can be executed directly from the repository.\n\n\n## Architecture\n\nThe architectural design of this project is transparent and can be readily comprehended with the assistance of the accompanying diagram illustrated below:\n\n![Process Architecture][process_workflow]\n\nThe project's architectural framework encompasses the following key steps:\n\n### Data Transformation\nThe raw data is transformed through a series of cleaning and preparation steps to make it suitable for analysis. This involves conducting experiments in notebooks, which help in developing the script that performs all necessary steps to process and restructure the dataset. These transformations are designed to align the data with the analytical goals, ensuring that it is ready for accurate analysis and visualization.\n\n### Process Automation\nThe data transformation steps are automated using GitHub Actions. This automation allows the process to be executed seamlessly and consistently without manual intervention. The setup ensures that data extraction and preparation can be performed on-demand, enhancing efficiency and scalability.\n\n### Data Analysis \u0026 Visualization\nIn this phase, the transformed dataset is analyzed to extract meaningful insights and answer specific user queries.\n\nVarious analytical techniques are employed to interpret the data, and findings are presented through interactive visualizations using Power BI.\n\nThe dashboard provides users with a clear and engaging way to explore data insights and make informed decisions based on the analysis.\n\n\n## Demo\n\nThe following illustration demonstrates the interactive Power BI report to explore insights from the data:\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://app.powerbi.com/view?r=eyJrIjoiMWFlNGE1ZDAtNjg2YS00NTNkLTkwMjgtNzg5OGFkNWIxYWQ1IiwidCI6IjI5MmY4YmYxLTg2NzQtNGM0Ny05Yzk1LWMwNDYzZGQxMGRlNCJ9\u0026embedImagePlaceholder=true\u0026pageName=b67e3f421da06b0c0027\"\u003e\n    \u003cimg src=\"./.github/assets/powerbi_report.png\" alt=\"Power BI Report\" width=\"700\" style=\"border-radius: 8px; box-shadow: 0 2px 8px #ccc;\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003e Access the Power BI report by clicking here: **[Power BI Report][powerbi_link]**\n\n\n## Support\n\nShould you wish to inquire, offer feedback, or propose ideas, don’t hesitate to contact me via the channels listed below:\n\n[![Linkedin Badge][linkedinbadge]][linkedin] [![Twitter Badge][twitterbadge]][twitter] [![Gmail Badge][gmailbadge]][gmail]\n\nDiscover and engage with my content on these platforms:\n\n[![Linktree Badge][linktreebadge]][linktree] [![Youtube Badge][youtubebadge]][youtube] [![GitHub Badge][githubbadge]][github] [![Medium Badge][mediumbadge]][medium]  [![Substack Badge][substackbadge]][substack]\n\nTo express your support for my work, consider [buying me a coffee][buymeacoffee] or, [donate through Paypal][paypal]\n\n[![Buy Me a Coffee][buymeacoffeebadge]][buymeacoffee] [![Paypal][paypalbadge]][paypal]\n\n## License\n\n\u003ca href = 'https://creativecommons.org/licenses/by-nc-sa/4.0/' target=\"_blank\"\u003e\n    \u003cimg src=\"https://i.ibb.co/mvmWGkm/by-nc-sa.png\" alt=\"by-nc-sa\" border=\"0\" width=\"88\" height=\"31\"\u003e\n\u003c/a\u003e\n\nThis license allows reusers to distribute, remix, adapt, and build upon the material in any medium or format for noncommercial purposes only, and only so long as attribution is given to the creator. If you remix, adapt, or build upon the material, you must license the modified material under identical terms.\n\n---\n\u003cp align='center'\u003e\n  \u003ca href=\"https://topmate.io/quantumudit\"\u003e\n    \u003cimg src=\"https://github.com/quantumudit/Spend-Estimator/assets/54057814/8e5485b9-4777-487b-9677-9d531cef0169\" alt=\"topmate-udit\" style=\"0\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n\u003c!-- Image Links --\u003e\n\n[project_logo]: ./.github/assets/project_cover_image.png\n[process_workflow]: ./.github/assets/process_workflow.png\n\n\u003c!-- External Links --\u003e\n\n[powerbi_link]: https://app.powerbi.com/view?r=eyJrIjoiMWFlNGE1ZDAtNjg2YS00NTNkLTkwMjgtNzg5OGFkNWIxYWQ1IiwidCI6IjI5MmY4YmYxLTg2NzQtNGM0Ny05Yzk1LWMwNDYzZGQxMGRlNCJ9\u0026embedImagePlaceholder=true\u0026pageName=b67e3f421da06b0c0027\n[requirements]: ./requirements.txt\n\n\u003c!-- Project Specific Links --\u003e\n\n[main]: ./main.py\n\n\u003c!-- Profile Links --\u003e\n\n[linkedin]: https://www.linkedin.com/in/quantumudit/\n[twitter]: https://twitter.com/quantumudit\n[medium]: https://medium.com/@quantumudit\n[linktree]: https://linktr.ee/quantumudit\n[youtube]: https://www.youtube.com/@quantumudit\n[github]: https://github.com/quantumudit/\n[substack]: https://substack.com/\n[gmail]: quantumudit@gmail.com\n\n\u003c!-- Payment Profile Links --\u003e\n[buymeacoffee]: https://www.buymeacoffee.com/quantumudit\n[paypal]: https://paypal.me/quantumudit\n\n\n\u003c!-- Shields Profile Links --\u003e\n\n[linkedinbadge]: https://img.shields.io/badge/-quantumudit-0e76a8?style=flat\u0026labelColor=0e76a8\u0026logo=linkedin\u0026logoColor=white\n[twitterbadge]: https://img.shields.io/badge/-quantumudit-000000?style=flat\u0026labelColor=000000\u0026logo=x\u0026logoColor=white\n[gmailbadge]: https://img.shields.io/badge/quantumudit@gmail.com-D14836?style=flat\u0026logo=gmail\u0026logoColor=white\n[mediumbadge]: https://img.shields.io/badge/Medium-02b875?style=for-the-badge\u0026logo=medium\u0026logoColor=white\n[linktreebadge]:https://img.shields.io/badge/Linktree-1de9b6?style=for-the-badge\u0026logo=linktree\u0026logoColor=white\n[youtubebadge]: https://img.shields.io/badge/YouTube-%23FF0000.svg?style=for-the-badge\u0026logo=YouTube\u0026logoColor=white\n[substackbadge]: https://img.shields.io/badge/Substack-%23006f5c.svg?style=for-the-badge\u0026logo=substack\u0026logoColor=FF6719\n[githubbadge]: https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge\u0026logo=github\u0026logoColor=white\n\n\u003c!-- Shields Payment Links --\u003e\n\n[buymeacoffeebadge]: https://img.shields.io/badge/Buy%20Me%20a%20Coffee-ffdd00?style=for-the-badge\u0026logo=buy-me-a-coffee\u0026logoColor=black\n[paypalbadge]: https://img.shields.io/badge/PayPal-00457C?style=for-the-badge\u0026logo=paypal\u0026logoColor=white\n\n\u003c!-- Shields Tech stack Links --\u003e\n\n[Python]: https://img.shields.io/badge/python-3670A0?style=for-the-badge\u0026logo=python\u0026logoColor=ffdd54\n[Jupyter_Notebook]: https://img.shields.io/badge/jupyter-%23FA0F00.svg?style=for-the-badge\u0026logo=jupyter\u0026logoColor=white\n[VS_code]: https://img.shields.io/badge/Visual%20Studio%20Code-0078d7.svg?style=for-the-badge\u0026logo=visual-studio-code\u0026logoColor=white\n[Figma]: https://img.shields.io/badge/figma-%23F24E1E.svg?style=for-the-badge\u0026logo=figma\u0026logoColor=white\n[PowerBI]: https://img.shields.io/badge/power_bi-F2C811?style=for-the-badge\u0026logo=powerbi\u0026logoColor=black\n[Obsidian]: https://img.shields.io/badge/Obsidian-%23483699.svg?style=for-the-badge\u0026logo=obsidian\u0026logoColor=white\n[NumPy]: https://img.shields.io/badge/numpy-%23013243.svg?style=for-the-badge\u0026logo=numpy\u0026logoColor=white\n[Pandas]: https://img.shields.io/badge/pandas-%23150458.svg?style=for-the-badge\u0026logo=pandas\u0026logoColor=white\n[Matplotlib]: https://img.shields.io/badge/Matplotlib-%23ffffff.svg?style=for-the-badge\u0026logo=Matplotlib\u0026logoColor=black\n[Poetry]: https://img.shields.io/badge/-Poetry-60A5FA?style=for-the-badge\u0026labelColor=60A5FA\u0026logo=poetry\u0026logoColor=white\n[Clickup]: https://img.shields.io/badge/-Click%20Up-7B68EE?style=for-the-badge\u0026labelColor=7B68EE\u0026logo=clickup\u0026logoColor=white\n[Anaconda]: https://img.shields.io/badge/Anaconda-%2344A833.svg?style=for-the-badge\u0026logo=anaconda\u0026logoColor=white\n[Notepad_plus_plus]: https://img.shields.io/badge/Notepad++-90E59A.svg?style=for-the-badge\u0026logo=notepad%2b%2b\u0026logoColor=black\n[GitHubActions]: https://img.shields.io/badge/github%20actions-%232671E5.svg?style=for-the-badge\u0026logo=githubactions\u0026logoColor=white\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquantumudit%2Fgroceries-basket-analysis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquantumudit%2Fgroceries-basket-analysis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquantumudit%2Fgroceries-basket-analysis/lists"}