Accessible health and environmental monitoring for everyone, everywhere.
- π Overview
- β¨ Key Features
- π οΈ Technical Specifications
- π Getting Started
- ποΈ Project Structure
- π§© System Architecture
- π API Documentation
- π₯ Team
- π· Screenshots
- π¬ Support & Contact
LifeGuard is an innovative wearable system that bridges critical gaps in personal safety, accessibility, and preventive healthcare. By integrating advanced sensors with machine learning algorithms, it delivers real-time insights on health metrics and environmental parameters, making safety monitoring accessible and affordable for all.
Our solution stands out as a cost-effective and comprehensive alternative to premium devices, enabling equitable access for underserved populations, including the elderly and industrial workers in developing regions.
60% Cheaper than Apple Watch |
72h Battery Life |
9 Integrated Sensors |
IP67 Water Resistance |
-
π Comprehensive Health Monitoring
- Real-time vitals tracking
- Fall detection with 95% accuracy
- Activity recognition (walking, running, cycling)
- Custom health thresholds
-
π‘οΈ Environmental Sensing
- Air quality analysis (VOCs, CO2)
- Temperature and humidity monitoring
- Barometric pressure tracking
- Pollution mapping with MapBox integration
-
β οΈ Smart Alert System- Emergency contact notifications
- Geolocation sharing
- Customizable thresholds
- Automated emergency response
-
πΌ Multi-Platform Support
- Web dashboard with real-time analytics
- Mobile app (iOS/Android) with dark/light themes
- Data synchronization across devices
- Offline functionality
Core Board | Arduino Nicla Sense ME |
Power | 3.7V LiPo Battery (400mAh) |
Battery Life | 72 hours with optimized power management |
Durability | IP67 water and dust resistance |
Weight | Approximately 45g (including enclosure) |
Connectivity | BLE 5.0, WiFi (via companion device) |
Sensors |
β’ Accelerometer & Gyroscope (motion detection) β’ Temperature & Humidity sensors β’ Barometric pressure sensor β’ Magnetometer β’ Gas sensors (VOCs, CO2) |
Frontend | Backend | Mobile | ML & Analytics |
---|---|---|---|
β’ React 18 β’ TypeScript β’ Tailwind CSS β’ Redux Toolkit β’ MapBox API |
β’ .NET 8.0 β’ PostgreSQL β’ JWT Auth β’ SendGrid β’ Firebase |
β’ Flutter 3.19 β’ Provider State β’ Material 3 β’ Offline Mode β’ SharedPreferences |
β’ LSTM Networks β’ TinyML Models β’ Edge Inference β’ Time-series Analysis β’ Sensor Fusion |
- Node.js 18+
- .NET SDK 8.0
- Flutter SDK 3.19+
- PostgreSQL 15+
- Arduino IDE (for firmware development)
- Clone the repository
git clone https://github.com/AWESOME04/LifeGuard.git
cd LifeGuard
- Set up environment files
cp backend/.env.example backend/.env
cp node-server/.env.example node-server/.env
cp web/.env.example web/.env
cp mobile/.env.example mobile/.env
- Start the backend server
cd backend
dotnet restore
dotnet run
- Launch the web dashboard
cd web
npm install
npm start
- Run the mobile application
cd mobile
flutter pub get
flutter run
docker-compose up -d
This will start the web dashboard, API, and database services in containers.
lifeguard/
βββ .github/ # GitHub actions and templates
βββ firmware/ # Arduino code and sketches
β βββ test-sketches/ # Sketches to test Nicla Sense ME
β βββ we-dashboard/ # Web dashboard for reading sensor data
βββ web/ # React dashboard
β βββ public/ # Static assets
β βββ src/ # React components
β β βββ components/ # Reusable UI components
β β βββ pages/ # Main application views
β β βββ services/ # API integrations
β β βββ store/ # Redux state management
βββ mobile/ # Flutter mobile app
β βββ lib/ # Dart code
β β βββ models/ # Data models
β β βββ screens/ # UI screens
β β βββ services/ # Business logic
β β βββ widgets/ # Reusable components
βββ backend/ # .NET Core API
β βββ Controllers/ # API endpoints
β βββ Models/ # Data structures
β βββ Services/ # Business logic
β βββ Middleware/ # Request processing
βββ node-server/ # Node.js backend service
β βββ controllers/ # Route controllers
β βββ models/ # Database schemas
β βββ routes/ # API routes
β βββ services/ # Business logic
β βββ middleware/ # Express middleware
β βββ utils/ # Helper functions
βββ docs/ # Documentation
β βββ api/ # API reference
β βββ images/ # Project images
β βββ tutorials/ # User guides
βββ .devcontainer/ # Development container config
-
Data Collection:
- Sensors gather health and environmental data
- Edge processing for initial analysis
-
Data Processing:
- TinyML models analyze patterns on-device
- Critical events trigger immediate alerts
-
Data Storage & Analysis:
- Cloud storage with HIPAA-compliant encryption
- Advanced analytics for long-term trends
-
User Interface:
- Real-time dashboard visualization
- Mobile alerts and insights
Below is an overview of the core endpoints for the LifeGuard API.
These endpoints are served from the .NET-Server (hosted at https://lifeguard-hiij.onrender.com
):
Method | Endpoint | Description |
---|---|---|
GET | / |
Health check or base endpoint |
POST | /api/Account/login |
Authenticate a user using email and password |
POST | /api/Account/register |
Register a new user account |
POST | /api/Account/forgot-password |
Initiate the password recovery process |
POST | /api/Account/ResendOTP |
Resend OTP to the user |
POST | /api/Account/VerifyOTP |
Verify the OTP provided by the user |
POST | /api/Account/ResetPassword |
Reset the user's password using a token |
POST | /api/Account/CompleteProfile |
Submit additional profile details |
GET | /api/Account/{id} |
Retrieve basic account information by ID |
GET | /api/Account/GetProfile/{id} |
Retrieve detailed user profile information |
GET | /api/Account/google-login |
Initiate Google OAuth authentication |
GET | /api/Account/signin-google |
Handle the Google OAuth callback |
DELETE | /api/Account/{id} |
Delete user profile information by ID |
Method | Endpoint | Description |
---|---|---|
POST | /{id}/photo |
Upload a photo for the user with the specified ID |
DELETE | /{id}/photo |
Delete the user's photo identified by the given ID |
GET | /{id}/photo |
Retrieve the photo for the user with the specified ID |
These endpoints are served from the Node-Server (hosted at https://lifeguard-node.onrender.com
):
Method | Endpoint | Description |
---|---|---|
GET | /api/memos |
Retrieve user memos |
POST | /api/memos |
Create a new memo |
GET | /api/memos/undone/count |
Retrieve the count of undone memos |
Method | Endpoint | Description |
---|---|---|
GET | /api/emergency-contacts |
Retrieve user's emergency contacts |
POST | /api/emergency-contacts |
Add a new emergency contact |
POST | /api/emergency-contacts/alert |
Send emergency alert to contacts |
GET | /api/emergency-contacts/test-alert/{id} |
Send test alert to specific contact |
GET | /api/emergency-contacts/verify |
Verify emergency contact with token |
GET | /api/emergency-contacts/alerts |
Get history of sent emergency alerts |
Method | Endpoint | Description |
---|---|---|
GET | /api/health-metrics/latest |
Get the latest health metrics for user |
POST | /api/health-metrics/save |
Save new health metrics for user |
GET | /api/health-metrics/history |
Get health metrics history (last 10 entries) |
Method | Endpoint | Description |
---|---|---|
GET | /api/exercise/stats |
Retrieve user's exercise statistics and streaks |
POST | /api/exercise/complete |
Record a completed workout session |
POST | /api/exercise/goals |
Set or update user's workout goals |
GET | /api/exercise/workout-history |
Retrieve user's workout history |
GET | /api/exercise/calories-history |
Retrieve user's calories burned history |
GET | /api/exercise/streak-history |
Retrieve user's exercise streak history |
Method | Endpoint | Description |
---|---|---|
GET | /api/medications |
Get all medications for current user |
POST | /api/medications/add |
Add a new medication |
PUT | /api/medications/:id |
Update medication by ID |
DELETE | /api/medications/:id |
Delete medication by ID |
POST | /api/medications/track |
Track medication dose (taken or skipped) |
GET | /api/medications/compliance |
Get medication compliance rate |
Method | Endpoint | Description |
---|---|---|
POST | /api/freesound/audio-proxy |
Proxy for streaming audio files from Freesound |
GET | /api/favorite-sounds |
Get all favorite sounds |
GET | /api/favorite-sounds/{userId} |
Get user's favorite sounds |
DELETE | /api/favorite-sounds/{userId}/{soundId} |
Remove a sound from favorites |
Method | Endpoint | Description |
---|---|---|
POST | /api/rag/initialize |
Initialize the RAG system (admin only) |
POST | /api/rag/query |
Query the RAG system (authenticated users) |
POST | /api/rag/process/health |
Process health data (authenticated users) |
POST | /api/rag/process/environmental |
Process environmental data (authenticated users) |
POST | /api/rag/process/medical |
Process medical knowledge (admin only) |
POST | /api/rag/process/profiles |
Process user profiles (authenticated users) |
Method | Endpoint | Description |
---|---|---|
GET | /api/user-preferences/notifications |
Get user notification preferences |
POST | /api/user-preferences/notifications |
Update user notification preferences |
POST | /api/user-preferences/send-test-email |
Send a test notification email to the user |
Complete API documentation would be posted soon...
![]() Evans Acheampong Frontend & Hardware |
![]() Michael Adu-Gyamfi Backend & ML |
Dr. Percy Okae Project Supervisor |
Chiratidzo Matowe Advisor |
Marvin Rotermund Ambassador, Embedded Learning Challenge |
Frontend: https://lifeguard-vert.vercel.app |
Backend: https://lifeguard-hiij.onrender.com/api |
Node Server: https://lifeguard-node.onrender.com |
Email Support: [email protected] [email protected] |
Happy coding!