EarlyVet is a comprehensive distributed microservice-based system designed to enhance livestock management and healthcare. The system integrates various services to provide functionalities such as livestock registration, real-time sensor data monitoring, disease prediction using machine learning, and telemedicine support for farmers and veterinarians.
-
User Management Service:
- Handles user authentication and authorization.
- Manages user accounts and roles (e.g., farmers, veterinarians, system admins).
-
Livestock Management Service:
- Enables farmers to register and manage their herds.
- Tracks livestock details such as health history, age, breed, and more.
-
Sensor Server:
- Collects real-time data from sensors attached to livestock (e.g., temperature, heart rate, movement).
- Stores and processes sensor data for health monitoring.
-
Sensor Sender:
- Acts as a client that sends mock or real sensor data to the Sensor Server using WebSocket communication.
-
Prediction Service:
- Uses machine learning models to predict potential diseases based on livestock data and sensor inputs.
- Sends disease prediction results to the Notification Service.
-
Notification Service:
- Sends email and SMS notifications to farmers and veterinarians regarding livestock health alerts or predictions.
- Ensures timely delivery of critical information.
-
Telemedicine Service:
- Connects farmers with veterinarians for remote consultations.
- Facilitates appointment booking and communication between stakeholders.
-
Video Chat Service:
- Provides live video conferencing capabilities for farmers and veterinarians.
- Integrated into the Telemedicine Service to enhance remote consultations.
-
Mobile Application:
- Offers a user-friendly interface for farmers and veterinarians to interact with the system.
- Supports both mobile and desktop platforms for ease of access.
└── bisryy/Earlyvet/
├── diseaseprediction/ # Handles disease prediction using machine learning
├── earlyapp/ # Mobile and desktop application for user interaction
├── earlyvet-auth/ # User authentication and authorization
├── livestockmanagement/ # Livestock registration and management
├── notification/ # Email and SMS notifications
├── prediction/ # Disease prediction service
├── rabbit/ # RabbitMQ configuration for asynchronous messaging
├── sensormanagement/ # Sensor server for gathering data
├── sensorsender/ # Sends sensor data to the server via WebSocket
├── sensorserver/ # Processes real-time sensor data from Sensor Sender
├── telemedicine/ # Connects farmers and veterinarians, handles appointments
├── usermanagement/ # User management service for authentication
├── videochat/ # Provides live video chat functionality
└── .github/ # GitHub workflows for CI/CD
- Purpose: Manages user authentication and authorization.
- Features:
- Secure login and registration.
- Role-based access control (e.g., farmers, veterinarians).
- Key Files:
- Purpose: Allows farmers to register and manage livestock details.
- Features:
- Register herds with details such as name, breed, and health history.
- Update livestock records.
- Key Files:
- Purpose: Collects real-time data from sensors.
- Features:
- Stores livestock sensor data (e.g., temperature, movement).
- Processes incoming data for further analysis.
- Key Files:
- Purpose: Simulates or sends real sensor data to the Sensor Server using WebSocket.
- Features:
- Sends mock data for testing or real data from sensors.
- Key Files:
sensorsender/server.js
: Main script for sending sensor data.sensorsender/manifests/
: Kubernetes deployment files.
- Purpose: Processes sensor and livestock data to predict potential diseases.
- Features:
- Runs machine learning models to generate disease predictions.
- Publishes predictions to RabbitMQ for further processing.
- Key Files:
- Purpose: Sends health alerts to farmers and veterinarians.
- Features:
- Sends emails and SMS notifications based on prediction results.
- Key Files:
- Purpose: Facilitates remote consultations between farmers and veterinarians.
- Features:
- Appointment booking and scheduling.
- Integration with the Video Chat Service for live consultations.
- Key Files:
telemedicine/src/services/telemedicine-service/
: Appointment management logic.telemedicine/manifests/
: Kubernetes deployment files.[In Progress]
- Purpose: Provides live video conferencing for remote consultations.
- Features:
- Video and audio communication.
- Secure connections between farmers and veterinarians.
- Key Files:
videochat/src/
: Logic for video chat functionality. [In Progress]
- Purpose: Offers a user-friendly interface for interacting with the system.
- Features:
- Supports both mobile and desktop platforms.
- Allows farmers and veterinarians to access system functionalities.
- Key Files:
earlyapp/
:Flutter code for the mobile application.
- Purpose: Acts as a message broker for asynchronous communication between services.
- Features:
prediction_requests
queue: Holds prediction job requests.prediction_responses
queue: Holds prediction results.
- Key Files:
-
User Authentication:
- Users (farmers or veterinarians) authenticate through the User Management Service.
-
Livestock Registration:
- Farmers register livestock details via the Livestock Management Service.
-
Sensor Data Collection:
- Sensor Sender sends real-time data to the Sensor Server.
- Sensor Server processes and stores sensor data for analysis.
-
Disease Prediction:
- Prediction Service processes livestock and sensor data using machine learning.
- Prediction results are sent to the Notification Service via RabbitMQ.
-
Notifications:
- Farmers and veterinarians receive alerts about potential diseases via email or SMS.
-
Telemedicine:
- Farmers book appointments with veterinarians through the Telemedicine Service.
- Consultations occur via the Video Chat Service.
- Docker and Kubernetes.
- RabbitMQ and MongoDB.
- Deploy RabbitMQ:
kubectl apply -f rabbit/manifests/
- Deploy Each Service:
kubectl apply -f <service-directory>/manifests/
- Verify Deployments:
kubectl get pods kubectl get services
- Integrate advanced analytics and reporting.
- Replace mock prediction with a real ML model.
- Implement role-based notifications.
- Enhance mobile application functionality.
Name | ID |
---|---|
Amanuel Ayana | ETS 0110/13 |
Amanuel Dagnachew | ETS 0112/13 |
Amanuel Mandefro | ETS 0121/13 |
Amanuel Solomon | ETS 0126/13 |
Ararsa Derese | ETS 0152/13 |
Beamanuel Tesfaye | ETS 0180/13 |
Birhanu Worku | ETS 0279/13 |
Biruk Mesfin | ETS 0290/13 |
Bisrat Kebere | ETS 0306/13 |
Biyaol Mesay | ETS 0309/13 |
This project is licensed under the MIT License.