DataGuard is a comprehensive data governance and quality monitoring platform that helps organizations maintain high-quality data across their databases. It provides automated data quality checks, AI-powered recommendations, governance policies, and interactive query capabilities.
- Data Quality Monitoring: Automated checks for completeness, timeliness, uniqueness, consistency, and validity
- AI-Powered Recommendations: Machine learning-driven suggestions for data improvements and issue resolution
- Data Governance: Policy management and compliance monitoring
- Interactive Dashboard: Real-time metrics and visualizations
- Query Explorer: Safe SQL query interface for data exploration
- Multi-Database Support: Connect to PostgreSQL, MySQL, MongoDB, SQL Server, Snowflake, and more
- Real-time Alerts: Automated notifications for data quality issues
- Frontend: React + Vite + Tailwind CSS + Recharts
- Backend: Node.js + Express
- AI/ML Service: Python + FastAPI + Transformers + Scikit-learn
- Databases: PostgreSQL (primary), MySQL, MongoDB, SQL Server, Snowflake, SQLite
- Caching: Redis
DataGuard/
├── client/ # React frontend application
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Main application pages
│ │ └── api/ # API client functions
│ ├── package.json
│ └── vite.config.js
├── server/ # Node.js Express backend
│ ├── src/
│ │ ├── controllers/ # Route handlers
│ │ ├── services/ # Business logic
│ │ ├── routes/ # API route definitions
│ │ └── db/ # Database connection modules
│ ├── package.json
│ └── .env.example
├── python_service/ # Python AI/ML service
│ └── requirements.txt
├── start.bat # Windows startup script
├── stop.bat # Windows shutdown script
├── package.json # Root monorepo configuration
└── README.md
Before you begin, ensure you have the following installed:
- Node.js (v18 or higher) - Download
- Python (v3.8 or higher) - Download
- PostgreSQL (or your preferred database)
- Redis (optional, for caching)
- Git - Download
git clone <repository-url>
cd DataGuardLocation: Root directory (DataGuard/)
# Install root dependencies
npm install
# Install frontend dependencies
npm install --prefix client
# Install backend dependencies
npm install --prefix serverLocation: python_service/ directory
cd python_service
pip install -r requirements.txt
cd ..- Install and start PostgreSQL (or your chosen database)
- Create a database for the application
- Note the connection details for configuration
Location: server/ directory
cd server
cp .env.example .envEdit .env with your database credentials:
# Database Configuration
DB_TYPE=postgres
DB_HOST=localhost
DB_PORT=5432
DB_NAME=dataguard
DB_USER=your_username
DB_PASSWORD=your_password
# Redis (optional)
REDIS_URL=redis://localhost:6379
# Python Service
PYTHON_SERVICE_URL=http://localhost:8000Location: Root directory (DataGuard/)
# Start all services (frontend, backend, and Python service)
npm run devThis will start:
- Frontend at
http://localhost:5173 - Backend at
http://localhost:3000 - Python service at
http://localhost:8000
Frontend Only:
npm run clientBackend Only:
npm run serverPython Service Only:
cd python_service
uvicorn main:app --reloadLocation: Root directory
# Build frontend for production
npm run build
# Start backend in production mode
npm run server- Frontend Changes: Work in
client/src/ - Backend API: Add routes in
server/src/routes/, controllers inserver/src/controllers/ - AI/ML Features: Implement in
python_service/ - Database Models: Update in
server/src/db/
# Frontend linting
cd client
npm run lint
# Backend testing (if configured)
cd server
npm testWhen adding new database features:
- Update connection modules in
server/src/db/ - Test connections using
/api/db/statusendpoint - Update environment variables as needed
GET /api- API informationGET /api/health- Service health checkGET /api/db/status- Database connection status
GET /api/quality-checks- Quality metrics summaryGET /api/quality-list- Detailed quality check results
GET /api/governance- Governance policies and status
GET /api/recommendations- AI-generated recommendations
POST /api/query- Execute SQL queries safely
- Port Conflicts: Ensure ports 3000, 5173, and 8000 are available
- Database Connection: Verify credentials in
server/.env - Python Dependencies: Ensure Python 3.8+ and pip are installed
- Node Modules: Delete
node_modulesand reinstall if issues persist
- Frontend: Browser console
- Backend: Terminal output from
npm run server - Python: Terminal output from uvicorn
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
ISC License