Systematic Analysis of Known Infections in Terrestrial Plants
SAKIT is a web application designed to identify plant diseases from user-uploaded images using image analysis powered by machine learning. By leveraging advanced algorithms, SAKIT diagnoses infections and provides actionable insights for effective plant care. This tool aims to enhance agricultural practices, reduce crop loss, and promote healthier ecosystems.
- Technologies: HTML, CSS, JavaScript
- Features:
- Responsive design for various devices.
- Fetch API for communication with the backend.
- Technologies: FastAPI, Flask
- Language: Python
- Libraries: TensorFlow, OpenCV, NumPy
- Type: Convolutional Neural Network (CNN)
- Trained On: Custom dataset with 900+ labeled images of plant diseases.
- Type: Firebase (Cloud Firestore)
- Purpose:
- Stores user data, detection history, and analysis results.
- Offers real-time synchronization for logged-in users.
- Hosted on AWS EC2 for the backend and Firebase Hosting for the frontend.
- Machine Learning:
- Implemented a CNN for image analysis and classification.
- Database Management:
- Real-time data handling using Firebase.
- API Design:
- Backend APIs for image processing and user interaction.
- Web Development:
- Responsive and interactive user interface.
-
🧠 Convolutional Neural Networks (CNNs):
- Used for feature extraction and classification of plant diseases.
- Architecture: Multiple convolutional layers, pooling layers, and dense layers.
-
🖼 Image Preprocessing:
- Resizing, normalization, and data augmentation to improve model accuracy.
-
🔄 Real-Time Database Sync:
- Leveraged Firebase’s efficient algorithms for data synchronization.
- 🔑 User Authentication:
- Firebase Authentication is used for secure login and registration.
- 🔐 Data Encryption:
- Firebase encrypts all data in transit and at rest.
- 🛡 API Security:
- Backend endpoints are secured with token-based authentication.
- ✅ Input Validation:
- Frontend and backend sanitize user inputs to prevent injection attacks.
-
📅 Development Methodology:
- Agile development with iterative releases.
-
🎨 Design Decisions:
- Frontend: Chose plain HTML, CSS, and JavaScript for simplicity and wide browser support.
- Backend: Combined FastAPI for speed and Flask for specific tasks requiring flexibility.
- Database: Used Firebase for its scalability and real-time features.
-
🔍 Testing:
- Conducted unit testing for backend APIs and integration testing for the system.
-
🧐 Correctness:
- The model achieves 92% accuracy on the validation dataset, ensuring reliable predictions.
- User data is stored securely and synced accurately across sessions.
-
⚡ Efficiency:
- Optimized API response times by preloading the ML model in memory.
- Reduced database query times using Firebase’s indexed data structure.
- Python (v3.9 or later)
- Flask
- TensorFlow
- Firebase Admin SDK
git clone https://github.com/glngnbn/SAKIT/sakit.git
cd sakitcd frontend
python -m http.servercd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
uvicorn main:app --reload- Add google-services.json to the backend directory.
- Update Firebase API configuration in the backend code.
- Access the frontend in a browser.
- Use http://localhost:8000/docs to test the backend APIs.
- Backend Developer: Barican, John Andrei A.
- Project Manager/Fullstack Developer: Guinoban, Glenn M.
- Frontend Developer: Lalongisip, Darlyne Grace M.