A deep learning-based system that uses CNN to analyze satellite imagery for estimating lake water quality. The system provides binary classification (good/bad) of water quality to aid environmental monitoring and decision-making.
- CNN-based water quality classification
- User-friendly web interface for image upload
- Visualization of prediction results
- Secure storage of images and analysis results
- Built with MERN stack and Flask
- Frontend: React.js with Tailwind CSS
- Backend: Node.js, Express.js, Flask
- Database: MongoDB
- ML Framework: CNN (Convolutional Neural Network)
- Deployment: AWS/Heroku
- Windows/Linux/MacOS
- Node.js
- Python 3.x
- MongoDB
- Processor: Intel i5 or equivalent
- RAM: 8GB minimum
- Storage: 20GB free space
- GPU: Optional but recommended for model training
- Clone the repository
git clone https://github.com/Abhinay2206/lake-water-quality
- Install backend dependencies
cd backend
npm install
- Install frontend dependencies
cd frontend
npm install
- Set up python environment
# Create .env file in backend directory
cd cnn-pytorch
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
- Start the servers
# Start backend server
cd backend
npm start
# Start Flask server
cd cnn-pytorch
python app.py
# Start frontend development server
cd frontend
npm start
├── frontend/ # React frontend
├── backend/ # Node.js & Express backend
├── cnn-pytorch/ # Trained ML models
└── data/ # Dataset storage
- Supports satellite image uploads
- Automatic preprocessing of uploaded images
- CNN-based feature extraction
- Binary classification (good/bad water quality)
- Minimum 75% classification accuracy
- Display of prediction results
- Basic result visualization
POST /api/upload
- Upload satellite imagesGET /api/predict
- Get prediction resultsGET /api/history
- View prediction history
- Basic authentication system
- Secure image storage
- Limited access controls
- Processing time: <10 seconds per image
- Accuracy: >75% classification accuracy
- Scalable architecture for future enhancements
- 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