Loading repository data…
Loading repository data…
rubinlake / repository
Educational data analysis project demonstrating BMW sales data analysis with AI-powered code assistance using Cursor IDE and Jupyter notebooks
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
This project is used as part of the AI Engineering - Speed & Quality module to teach Data Analysis with Cursor and GenAI integration.
Built by RUBINLAKE GmbH for the AI Academy
This project demonstrates the analysis of BMW sales data using modern data science tools and AI-powered code assistance. It serves as a practical example for efficient data analysis with the help of AI tools like Cursor IDE.
rl-academy-data-analytics/
├── analysis/
│ ├── 01-statistics.ipynb
│ ├── 02-correlation.ipynb
│ └── 03-sentiment.ipynb
├── cursor-rules-examples/
│ └── *.mdc
├── datasets/
│ ├── BMW-sales-data-2010-2024.csv
│ └── news-sentiment-data.csv
├── experiments/
├── requirements.txt
└── README.md
The following diagram shows the project structure and technology stack:
flowchart TB
subgraph Project["rl-academy-data-analytics"]
subgraph Data["datasets/"]
BMW["BMW-sales-data-2010-2024.csv<br/>50,000 Rows"]
News["news-sentiment-data.csv<br/>848 Rows"]
end
subgraph Analysis["analysis/"]
NB1["01-statistics.ipynb<br/>Statistical Summaries"]
NB2["02-correlation.ipynb<br/>Price vs. Mileage/Year"]
NB3["03-sentiment.ipynb<br/>LLM Sentiment Analysis"]
end
subgraph Config["Configuration"]
REQ["requirements.txt"]
ENV[".env (API Keys)"]
RULES["cursor-rules-examples/"]
end
end
subgraph Tech["Technology Stack"]
subgraph DataLib["Data Processing"]
PD["pandas"]
NP["numpy"]
SC["scipy"]
end
subgraph Viz["Visualization"]
MPL["matplotlib"]
SNS["seaborn"]
end
subgraph AI["AI/LLM Integration"]
LC["LangChain"]
OAI["OpenAI API"]
end
subgraph DevTools["Development"]
JUP["Jupyter"]
CUR["Cursor IDE"]
COP["GitHub Copilot"]
end
end
BMW --> NB1 & NB2
News --> NB3
NB1 & NB2 --> DataLib --> Viz
NB3 --> AI
Source: Kaggle Dataset
BMW is a world-renowned German automotive brand known for its combination of luxury, performance, and cutting-edge technology. Every BMW vehicle is designed to deliver a smooth driving experience with powerful engines, precise handling, and a premium interior that reflects comfort and modern technology. From sporty sedans to high-end SUVs, BMW focuses on innovation, safety, and a dynamic driving feel that appeals to car enthusiasts worldwide. The distinctive design and high build quality make BMW one of the most respected brands in the automotive industry.
This dataset contains sales records over a 15-year period from 2010 to 2024. The information includes sales of BMW vehicles, various models in different price ranges. From low to high and medium price ranges, all sold models and vehicles in various colors are included, considering every element relevant when purchasing a car.
Model
Year
Region
Color
Fuel_Type
Transmission
Engine_Size_L
Mileage_KM
Price_USD
Sales_Volume
Sales_Classification
Source: Kaggle Dataset
This dataset contains news articles with associated sentiment ratings. It combines news titles, Reddit discussion titles, the full article text, and a numerical sentiment classification. The dataset is excellent for Natural Language Processing (NLP) tasks such as sentiment analysis, text classification, and examining relationships between news content and public perception.
news_title
reddit_title
sentiment
text
url
# 1. Make sure Homebrew is installed (skip if you already have it)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 2. Install Homebrew Python (this brings pip/pip3)
brew install python
python3 --version
pip3 --version
Clone or download the repository
Create and activate a virtual environment:
# Create virtual environment
python3 -m venv venv
# Activate virtual environment (MacOS/Linux)
source venv/bin/activate
# Activate virtual environment (Windows)
venv\Scripts\activate
pip install -r requirements.txt
Create a .env file in the project root with your OpenAI API key:
# .env
OPENAI_API_KEY=your-api-key-here
Note: The
.envfile is required for running03-sentiment.ipynb. You can get an API key from OpenAI Platform.
To open Jupyter Notebooks directly in Cursor or VS Code, install the following extensions:
ms-python.python) - Python language supportms-toolsai.jupyter) - Jupyter Notebook supportAfter installation:
Open the notebook in Cursor/VS Code
Select the Python Interpreter from the Virtual Environment (venv) via the status bar or Cmd+Shift+P → "Python: Select Interpreter"
Deactivate virtual environment (when finished):
deactivate
pandas - Data manipulation and analysisnumpy - Numerical computationsmatplotlib - Data visualizationseaborn - Advanced data visualizationscipy - Statistical analysis and correlation testsjupyter - Notebook environmentlangchain - LLM integration frameworklangchain-openai - OpenAI connector for LangChainpython-dotenv - Environment variable managementipywidgets - Interactive widgets in notebooksThe project contains three Jupyter Notebooks in the analysis/ directory:
01-statistics.ipynb - Statistical summaries and data exploration02-correlation.ipynb - Correlation analysis (Price vs. Mileage/Year)03-sentiment.ipynb - LLM-based sentiment analysis (requires OpenAI API key)Open the notebooks in Jupyter Lab, Jupyter Notebook, or directly in Cursor/VS Code:
# Open in Jupyter Lab
jupyter lab
# Or open a specific notebook
jupyter notebook analysis/01-statistics.ipynb
This project is part of the AI Engineering - Speed & Quality training module, which covers the following topics:
Tools & Technologies:
This project is developed by RUBINLAKE GmbH as part of the AI Academy training program.
The AI Academy provides comprehensive training in AI engineering, data science, and modern development practices, helping professionals leverage AI tools and technologies effectively.
This dataset is sourced from Kaggle and is subject to the corresponding license terms of the source.