InsightCart is a data analytics platform designed to help mobile market retailers understand their business performance through comprehensive transaction analysis. Built initially for a bakery business operating across multiple London markets, it processes SumUp POS data to provide actionable insights on sales patterns, product performance, and location-based trends.
- Track daily, weekly and monthly revenue trends
- Analyse payment method distributions
- Monitor transaction values and patterns
- Identify peak trading periods
- Track best-selling items by market location
- Analyse product category performance
- Monitor premium product sales
- Evaluate seasonal product trends
- Compare revenue across different market locations
- Visualise customer density patterns
- Identify location-specific product preferences
- Analyse peak trading hours by location
- Understand daily trading patterns
- Track weekly performance trends
- Monitor seasonal variations
- Analyse event impact on sales
- Data extraction from SumUp API
- Storage in Supabase PostgreSQL database
- Regular automated updates via Airflow DAGs
- Data anonymisation for public portfolio views
- Public schema for actual transaction data
- Demo schema with anonymised data
- Comprehensive indexing strategy
- Row-level security implementation
- Python for data processing
- Streamlit for dashboard interface
- PostgreSQL (via Supabase) for data storage
- Apache Airflow for orchestration
insightcart/
├── data/ # Data storage directory
├── dashboard/ # Streamlit dashboard files
├── pipeline/ # Data pipeline modules
├── notebooks/ # Jupyter notebooks for analysis
├── tests/ # Test files
└── docs/ # Documentation files
- Clone the repository:
git clone https://github.com/yourusername/insightcart.git
cd insightcart- Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install required packages:
pip install -r requirements.txt- Set up environment variables:
cp .env.example .env
# Edit .env with your credentials- Set up the database:
python setup_database.py- Run the Streamlit dashboard:
streamlit run Home.py -- --data-path path/to/your/data.json- Access the dashboard at
http://localhost:8501
Configuration settings can be modified in config.py. Key settings include:
- Database connection parameters
- API authentication details
- Data refresh intervals
- Dashboard customisation options
pytest tests/The project follows PEP 8 guidelines. Format code using:
black .The application can be deployed in two phases:
- Run locally for development and testing
- Single user access
- Manual deployment process
- Hosted on cloud platform
- Multi-user access with authentication
- Automated deployment pipeline
- Row-level security enabled on all database tables
- Data anonymisation for public portfolio views
- API key management via environment variables
- Regular security audits and updates
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
Spencer Duvwiama - LinkedIn
Project Link: https://github.com/spencerejd/insightcart
- SumUp API for transaction data access
- Supabase for database hosting
- Streamlit for dashboard framework