Ventus combines habit formation with social accountability to help people become consistent early risers. The app verifies you're actually awake by requiring an outdoor selfie within a customizable grace period—powered by computer vision to ensure authenticity.
The Problem: Traditional alarms are too easy to dismiss, leading to chronic oversleeping and disrupted sleep cycles.
The Solution: Take an outdoor selfie to prove you're awake, or face the consequences—a playful accountability text sent to your designated friend or family member.
- 🔔 Smart Alarms — Set wake-up times with customizable grace windows (5-30 minutes)
- 🤖 AI Verification — Multi-factor outdoor detection using AWS Rekognition with face detection
- 📱 Social Accountability — Automatic SMS notifications via Twilio when you fail
- 🔥 Streak Tracking — Visualize your daily and weekly progress with calendar views
- 🔐 Secure Auth — Amazon Cognito authentication with email verification
- ⚙️ Account Management — Change password, update email, and delete account
- 📊 Stats Dashboard — Track your success rate and consistency over time
- Flutter — Cross-platform mobile framework
- Riverpod — State management
- Go Router — Navigation
- Hive — Local data persistence
- Lambda — Serverless photo verification functions
- Rekognition — Computer vision for outdoor & face detection
- Cognito — User authentication and management
- S3 — Secure photo storage
- DynamoDB — User data and streaks
- AppSync — GraphQL API
- Twilio — SMS messaging for accountability
Ventus/
├── app/
│ ├── lib/
│ │ ├── core/ # Services, routing, constants
│ │ ├── features/ # Feature modules (alarm, auth, camera, streak)
│ │ └── shared/ # Shared widgets and models
│ ├── amplify/
│ │ └── backend/
│ │ ├── auth/ # Cognito configuration
│ │ ├── storage/ # S3 setup
│ │ └── function/ # Lambda functions
│ │ └── verifyPhoto/ # Photo verification logic
│ └── assets/ # Images, fonts, branding
└── README.md
- Flutter SDK (v3.35.4+)
- AWS Amplify CLI configured
- AWS Account
- Twilio Account (for SMS)
-
Clone the repository
git clone https://github.com/hfritz34/Ventus.git cd Ventus/app -
Install dependencies
flutter pub get
-
Configure Amplify Backend
amplify pull --appId <YOUR_APP_ID> --envName <YOUR_ENV_NAME>
-
Set up environment variables
Add your Twilio credentials to the Lambda function environment variables.
-
Run the app
flutter run
The photo verification system uses a multi-factor approach:
- Label Detection — Scans for 40+ outdoor-related labels (Sky, Outdoors, Tree, Sun, etc.)
- Confidence Scoring — Requires ≥2 outdoor labels with >60% confidence
- Face Detection — Verifies a person is visible in the selfie
- Failure Handling — Sends customizable SMS via Twilio if verification fails
Mobile App → S3 Upload → Lambda Trigger → Rekognition API →
Verification Result → Update DynamoDB → Send SMS (if failed) →
Return to App
Coming soon
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License.
Henry Fritz — GitHub
Project Link: https://github.com/hfritz34/Ventus
