{"id":50717935,"url":"https://github.com/scarlet-enlight/retailrocket-recommender-system","last_synced_at":"2026-06-14T00:01:43.565Z","repository":{"id":363129556,"uuid":"1262017784","full_name":"scarlet-enlight/retailrocket-recommender-system","owner":"scarlet-enlight","description":"E-commerce recommendation system simulation using the Retailrocket dataset, Apriori algorithm, ASP.NET Core, FastAPI, DuckDB, and PostgreSQL.","archived":false,"fork":false,"pushed_at":"2026-06-07T18:14:39.000Z","size":397,"stargazers_count":2,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-09T20:32:50.533Z","etag":null,"topics":["apriori-algorithm","asp-net-core","duckdb","fastapi","postgresql","retailrocket"],"latest_commit_sha":null,"homepage":"","language":"C#","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/scarlet-enlight.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-07T13:15:34.000Z","updated_at":"2026-06-07T18:14:43.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/scarlet-enlight/retailrocket-recommender-system","commit_stats":null,"previous_names":["scarlet-enlight/retailrocket-recommender-system"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/scarlet-enlight/retailrocket-recommender-system","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scarlet-enlight%2Fretailrocket-recommender-system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scarlet-enlight%2Fretailrocket-recommender-system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scarlet-enlight%2Fretailrocket-recommender-system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scarlet-enlight%2Fretailrocket-recommender-system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scarlet-enlight","download_url":"https://codeload.github.com/scarlet-enlight/retailrocket-recommender-system/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scarlet-enlight%2Fretailrocket-recommender-system/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34170161,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-10T02:00:07.152Z","response_time":89,"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":["apriori-algorithm","asp-net-core","duckdb","fastapi","postgresql","retailrocket"],"created_at":"2026-06-09T20:30:52.952Z","updated_at":"2026-06-10T21:01:02.532Z","avatar_url":"https://github.com/scarlet-enlight.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Retailrocket Recommendation System \u0026 Shop Simulation\n\nAn end-to-end e-commerce application and analytical pipeline built as an engineering thesis project at Silesian University of Technology (Politechnika Śląska). The system processes historical e-commerce logs to generate market basket insights using the Apriori algorithm and serves real-time product recommendations within a simulated online store.\n\n---\n\n## Architecture \u0026 Team Roles\n\nThe system uses a single **PostgreSQL** instance isolated into three database schemas to maintain a strict separation of concerns:\n\n| Schema | Ownership | Description | Tech Stack |\n| :--- | :--- | :--- | :--- |\n| `historical` | **Data Engineering**\u003cbr\u003e [@LonelyLake](https://github.com/LonelyLake) | Raw data ingestion, cleaning, and preparation of the \"basket\" format. | DuckDB, Python |\n| `shop` | **Web Development**\u003cbr\u003e[@ElPollaco](https://github.com/ElPollaco) | Operational shop data (users, carts, simulated checkout transactions). | ASP.NET Core, EF Core |\n| `ml` | **Data Science**\u003cbr\u003e[@Blazejost](https://github.com/Blazejost) | Association rules generated by the Apriori algorithm, exposed via API. | FastAPI, mlxtend |\n\n---\n\n## Project Structure\n\n```text\n├── data/                # Raw and processed datasets (Local only, Git ignored)\n│   ├── raw/             # Place downloaded Retailrocket CSVs here\n│   └── processed/       # DuckDB analytical storage files\n├── database/            # Docker Compose \u0026 Database Initialization scripts\n├── data-pipeline/       # ETL processes (DuckDB analytical engine)\n├── backend/             # E-commerce web backend (C# / .NET)\n└── ml-service/          # Association rule mining engine \u0026 REST API (Python)\n```\n\n## Quick Start (Local Database Deployment)\n\n1. **Configure Environment Variables:**\n\n    Navigate to the database directory and copy the template environment file:\n\n    ```bash\n    cd database\n    cp .env.example .env\n    ```\n\n    (Optional: Open the newly created `.env` file and change the password if needed).\n\n2. **Start the Database:**\n\n    Spin up the PostgreSQL instance with all predefined schemas and tables:\n\n    ```bash\n    docker compose up -d\n    ```\n\n    The database will be automatically initialized using `init.sql`. You can connect via DBeaver or any other client using the credentials defined in your local `.env` file (default values):\n\n    - Host: `localhost`\n    - Port: `5559` (or whatever you set as `DB_HOST_PORT` in `database/.env`)\n    - Database: `retailrocket`\n    - User: `admin`\n    - Password: `admin` (or your custom password from `.env`)\n\n3. **Dataset Setup (Local Only):**\n   - Ensure the `data/raw/` and `data/processed/` folders exist in the project root.\n   - Download the raw Retailrocket CSV files from the team's Google Drive (link shared in chat) and place them inside `data/raw/`.\n\n## Git \u0026 Development Workflow\n\nTo ensure clean collaboration, the team follows the GitHub Flow:\n`main` branch is protected. No direct commits allowed.\n\nCreate a feature branch for your work: `feature/your-feature-name`.\n\nOpen a **Pull Request (PR)** to merge into `main`. At least one team member must review it.\n\nKeep code and comments strictly in **English**.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscarlet-enlight%2Fretailrocket-recommender-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscarlet-enlight%2Fretailrocket-recommender-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscarlet-enlight%2Fretailrocket-recommender-system/lists"}