A beautiful Flutter application that uses machine learning to determine personality types (Introvert vs Extrovert) based on user responses to psychological questions.
- AI-Powered Analysis: Uses TensorFlow Lite model trained on personality data
- Beautiful UI/UX: Modern, animated interface with smooth transitions
- Multiple Screens: Welcome screen, interactive test, and detailed results
- Real-time Progress: Visual progress tracking during the test
- Detailed Results: Confidence scores, descriptions, and personality traits
- Cross-platform: Runs on iOS and Android
- Flutter: Cross-platform mobile app framework
- TensorFlow Lite: On-device machine learning inference
- Provider: State management
- Go Router: Navigation and routing
- Google Fonts: Beautiful typography
- Animated Text Kit: Text animations
- Staggered Animations: Smooth UI transitions
lib/
├── main.dart # App entry point and routing
├── models/ # Data models
│ ├── personality_question.dart
│ └── personality_result.dart
├── providers/ # State management
│ └── personality_provider.dart
├── screens/ # UI screens
│ ├── welcome_screen.dart
│ ├── personality_test_screen.dart
│ └── results_screen.dart
├── services/ # Business logic
│ └── ml_service.dart
└── widgets/ # Reusable UI components
├── animated_button.dart
├── gradient_background.dart
├── question_card.dart
├── result_card.dart
└── trait_chip.dart
assets/
└── models/ # ML model files
├── personality_model.tflite
└── preprocessing_params.json
model_training/ # Python ML training scripts
└── train_personality_model.py
- Flutter SDK (>=3.8.1)
- Dart SDK
- Android Studio / Xcode for mobile development
- Python 3.x (for model training)
-
Clone the repository
git clone <repository-url> cd personify
-
Install Flutter dependencies
flutter pub get
-
Run the app
flutter run
If you want to retrain the model with your own data:
-
Install Python dependencies
pip install tensorflow pandas scikit-learn numpy
-
Train the model
cd model_training python train_personality_model.py
-
Copy new model files to assets
cp personality_model.tflite ../assets/models/ cp preprocessing_params.json ../assets/models/
The app asks users 7 key questions about their personality traits:
- Time spent alone preferences
- Stage fear levels
- Social event attendance
- Outdoor activity preferences
- Energy after socializing
- Preferred friend circle size
- Social media posting frequency
- Architecture: Neural network with dense layers (64→32→16→1)
- Training: Achieved 91.3% accuracy on personality classification
- Features: 7 normalized input features
- Output: Binary classification (Introvert vs Extrovert) with confidence score
- TensorFlow Lite: Optimized model for mobile inference
- Preprocessing: Real-time feature scaling and normalization
- Results: Detailed personality analysis with traits and descriptions
- Animated app introduction
- Feature highlights
- Beautiful gradient background
- "Start Test" call-to-action
- 7 interactive questions
- Visual progress indicator
- Smooth transitions between questions
- Answer selection with immediate feedback
- Personality type announcement
- Confidence score visualization
- Detailed description
- Key personality traits
- Option to retake test
- Model Size: ~50KB TensorFlow Lite model
- Inference Time: <100ms on average mobile device
- Memory Usage: Minimal memory footprint
- Animations: 60fps smooth animations with proper disposal
Run the test suite:
flutter test
flutter build apk --release
flutter build ios --release
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Personality dataset for training the ML model
- Flutter community for excellent packages
- TensorFlow team for mobile ML capabilities