Skip to content

Dev2ProductionTech/datapulse-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DataPulse API

A Python FastAPI data analytics platform with CSV upload, data preview, statistical analysis (summary, correlation, distribution, outlier detection), JWT authentication, and auto-generated OpenAPI documentation.

Python FastAPI Pandas License

Features

  • CSV Upload & Preview — Upload datasets, preview first N rows, view column metadata
  • Statistical Summary — Row/column counts, dtypes, missing values, numeric stats, categorical stats
  • Correlation Analysis — Full correlation matrix with strong-pair detection
  • Distribution Analysis — Histograms for numeric, value counts for categorical columns
  • Outlier Detection — IQR-based outlier detection across all numeric columns
  • Top Value Analysis — Frequency distribution for any column
  • JWT Authentication — Secure register/login with hashed passwords
  • Auto-Generated Docs — Swagger UI at /docs, ReDoc at /redoc
  • SQLAlchemy ORM — Clean data models with relationships
  • CORS Enabled — Ready for frontend integration

Tech Stack

Component Technology
Language Python 3.11+
Framework FastAPI 0.110
ORM SQLAlchemy 2.0
Data Pandas, NumPy
Auth python-jose (JWT), Passlib (bcrypt)
Validation Pydantic v2
Database SQLite
Docs Swagger UI, ReDoc (built-in)

Getting Started

# Create virtual environment
python -m venv venv
source venv/bin/activate  # Linux/Mac
# venv\Scripts\activate   # Windows

# Install dependencies
pip install -r requirements.txt

# Run the server
uvicorn main:app --reload --port 8000

API Endpoints

Authentication

Method Endpoint Description
POST /api/auth/register Register a new user
POST /api/auth/login Login & get JWT token
GET /api/auth/me Get current user profile

Datasets

Method Endpoint Description
GET /api/datasets List user's datasets
POST /api/datasets/upload Upload a CSV file
GET /api/datasets/{id} Get dataset metadata
PUT /api/datasets/{id} Update name/description
DELETE /api/datasets/{id} Delete dataset & file
GET /api/datasets/{id}/preview Preview first N rows

Analytics

Method Endpoint Description
POST /api/analytics/{id}/analyze Run analysis job
GET /api/analytics/{id}/jobs List analysis history

Analysis Types: summary, correlation, distribution, outliers, top_values

Quick Test

# Register
curl -X POST http://localhost:8000/api/auth/register \
  -H "Content-Type: application/json" \
  -d '{"username":"analyst","email":"analyst@test.com","password":"password123"}'

# Upload CSV
curl -X POST http://localhost:8000/api/datasets/upload \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -F "name=Sales Data" \
  -F "file=@sales.csv"

# Run summary analysis
curl -X POST http://localhost:8000/api/analytics/DATASET_ID/analyze \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"job_type":"summary"}'

Project Structure

datapulse-api/
├── main.py              # FastAPI app setup
├── config.py            # Configuration
├── database.py          # SQLAlchemy engine & session
├── models.py            # ORM models (User, Dataset, AnalyticsJob)
├── schemas.py           # Pydantic request/response schemas
├── auth.py              # JWT auth utilities
├── routers/
│   ├── auth_router.py   # Authentication endpoints
│   ├── datasets.py      # Dataset CRUD + upload + preview
│   └── analytics.py     # Analytics engine (5 analysis types)
├── requirements.txt
└── .gitignore

Built by Dev2Production

dev2production.com — We build production-ready software.

About

Python FastAPI data analytics platform - CSV upload, statistical analysis, correlation, outlier detection, JWT auth, auto-docs

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages