Coder Social home page Coder Social logo

streamlytics's Introduction

Streamlytics: Real-Time Data Analytics Dashboard

Streamlytics is a real-time data analytics platform that collects, processes, and visualizes streaming data. It uses FastAPI for the backend, MySQL for data storage, and Streamlit for the frontend dashboard.

Features

  • Real-time data ingestion from external API
  • FastAPI backend for data management
  • MySQL database for data storage
  • Streamlit dashboard for data visualization
  • Dockerized setup for easy deployment

Prerequisites

  • Docker and Docker Compose
  • Python 3.8+
  • Git

Setup

  1. Clone the repository:

  2. git clone https://github.com/crs7617/Streamlytics.git cd Streamlytics Copy

  3. Copy the sample environment file and edit it with your credentials: cp .env.sample .env CopyEdit the .env file with your actual database credentials and API key.

  4. Build and run the Docker containers: docker-compose up -d Copy

Project Structure

  • main.py: FastAPI backend server
  • dashboard.py: Streamlit dashboard application
  • data-ingestion.py: Script for fetching and storing data
  • docker-compose.yml: Docker Compose configuration
  • Dockerfile: Docker configuration for the web service
  • requirements.txt: Python dependencies

Usage

  1. Access the FastAPI backend at http://localhost:80
  2. View the Streamlit dashboard at http://localhost:8501
  3. API endpoints:
  • POST /data: Add new data point
  • GET /data: Retrieve all data points

Data Ingestion

The data-ingestion.py script fetches data from an external API and stores it in the MySQL database. To run it manually: python data-ingestion.py Copy

Development

To run the services individually for development:

  1. Start the MySQL database: docker-compose up db Copy
  2. Run the FastAPI server: uvicorn main:app --reload Copy
  3. Run the Streamlit dashboard: streamlit run dashboard.py Copy

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

streamlytics's People

Contributors

crs7617 avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.