diff --git a/.github/workflows/unittests.yml b/.github/workflows/unittests.yml new file mode 100644 index 0000000..f8b2aec --- /dev/null +++ b/.github/workflows/unittests.yml @@ -0,0 +1,42 @@ +name: Unit Tests + +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + + - name: Install dependencies + run: | + python -m venv .venv + source .venv/bin/activate + pip install --upgrade pip + pip install -r requirements.txt + pip install pytest + + - name: Run tests + run: | + source .venv/bin/activate + pytest + + - name: Upload coverage report + if: success() + uses: actions/upload-artifact@v3 + with: + name: coverage-report + path: coverage.xml \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d5c4359 --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +### AL ### +# Exclude the following files and directories from remote repo +venv/ +.venv/ +.env +__pycache__/ +*.pyc +.DS_Store +Data/ +data/ +data.zip +MachineLearningRating_v3.txt.dvc +README.pdf diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..7ce2e44 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1 @@ +{"python.pythonPath": "venv/bin/python3"} diff --git a/README.md b/README.md index ceb0f79..a72d9a5 100644 --- a/README.md +++ b/README.md @@ -1 +1,60 @@ # rossmann-pharma-sales-prediction + +A machine learning solution to forecast sales for Rossmann Pharmaceuticals' stores across various cities six weeks in advance. Factors like promotions, competition, holidays, seasonality, and locality are considered for accurate predictions. +The project structure is organized to support reproducible and scalable data processing, modeling, and visualization. + +## Project Structure + +```plaintext +├── .dvc/ +│ └── config # Configuration files for data version control +├── .vscode/ +│ └── settings.json # Configuration for VSCode environment +├── .github/ +│ └── workflows/ +│ ├── unittests.yml # GitHub Actions workflow for running unit tests +├── .gitignore # Files and directories to be ignored by Git +├── requirements.txt # List of dependencies for the project +├── README.md # Project overview and instructions +├── scripts/ +│ ├── __init__.py +│ ├── data_processing.py # Script for data cleaning and processing +│ ├── data_visualization.py # Scritpt for different plots +│ ├── load_data.py # Scritpt extracting and loading dataset +│ ├── hypothesis_testing.ipynb # Script for hypothesis testing analysis +├── notebooks/ +│ ├── __init__.py +│ ├── eda_notebook.ipynb # Jupyter notebook for eda analysis +│ ├── hypothesis_testing.ipynb # Jupyter notebook for hypothesis testing analysis +│ ├── data_preprocessing.ipynb # Jupyter notebook for data preprocessing +│ ├── model_training.ipynb # Jupyter notebook for statistical model training +│ ├── README.md # Description of notebooks +├── tests/ +│ ├── __init__.py +│ ├── test_data_processing.py # Unit tests for data processing module +│ ├── test_hypothesis_testing.py # Unit tests for hypothesis testing module +│ +└── src/ + ├── __init__.py + └── README.md # Description of scripts +``` +# Installation + +>>> git clone https://github.com/epythonlab/rossman-pharma-sales-prediction.git + +>> cd rossman-pharma-sales-prediction + +### Create virtual environment + +>>> python3 -m venv venv # on MacOs or Linux +>>> source venv/bin/activate # On Windows: venv\Scripts\activate + +### Install Dependencies + +>>> pip install -r requirements.txt + +## To run tests +navigate +>>> cd tests/ +>>pytest # all tests will be tested + diff --git a/notebooks/README.md b/notebooks/README.md new file mode 100644 index 0000000..f2a87d9 --- /dev/null +++ b/notebooks/README.md @@ -0,0 +1 @@ +# Description of notebooks diff --git a/notebooks/__init__.py b/notebooks/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/scripts/__init__.py b/scripts/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/README.md b/src/README.md new file mode 100644 index 0000000..3a4cea7 --- /dev/null +++ b/src/README.md @@ -0,0 +1 @@ +# Description of scripts diff --git a/src/__init__.py b/src/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29