This project implements a comprehensive data lineage tracking system using Neo4j for graph data storage, Flask for the backend API, and React for the frontend user interface.
- Data source ingestion and tracking
- ETL process monitoring
- Machine learning model versioning and performance tracking
- Output tracking and data lineage visualization
- User authentication and authorization
- Interactive data lineage graph exploration
project_root/
├── backend/
│ ├── app/
│ │ ├── __init__.py
│ │ ├── routes/
│ │ ├── models/
│ │ └── utils/
│ ├── config.py
│ └── run.py
├── frontend/
│ ├── public/
│ ├── src/
│ │ ├── components/
│ │ ├── services/
│ │ ├── App.js
│ │ └── index.js
│ └── package.json
├── tests/
├── requirements.txt
└── README.md
- Python 3.8+
- Node.js 14+
- Neo4j 4.0+
-
Clone the repository:
git clone https://github.com/yourusername/data-lineage-tracking.git cd data-lineage-tracking
-
Set up a Python virtual environment:
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
-
Install Python dependencies:
pip install -r requirements.txt
-
Set up environment variables (see
config.py
for required variables) -
Run the Flask development server:
cd backend python run.py
-
Navigate to the frontend directory:
cd frontend
-
Install Node.js dependencies:
npm install
-
Install additional required packages:
npm install axios react-router-dom @material-ui/core d3
-
Start the React development server:
npm start
After setting up both the backend and frontend, you can access the application by opening a web browser and navigating to http://localhost:3000
.
To continue development:
-
Backend: Add new routes in the
backend/app/routes/
directory and updatebackend/app/__init__.py
to register new blueprints. -
Frontend: Add new components in the
frontend/src/components/
directory and update routing infrontend/src/App.js
.
Run backend tests:
python -m pytest tests/
Run frontend tests:
cd frontend
npm test
Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
This project is licensed under the MIT License - see the LICENSE.md file for details.