MyEmotions is a cutting-edge Android application designed to bridge the gap between human emotions and technology. By leveraging advanced Machine Learning (ML) and computer vision, the app provides users with a comprehensive ecosystem to track, analyze, and improve their emotional well-being.
Using the MTCNN (Multi-task Cascaded Convolutional Networks) face detection and PyTorch-based classifiers, the app accurately identifies facial expressions in real-time. Simply capture a photo, and MyEmotions will recognize your current mood (Happy, Sad, Angry, Surprised, etc.).
- Weekly & Monthly Trends: Visualize your emotional journey with elegant graphs powered by
MPAndroidChart. - Mood Mapping: See where you felt what. Integrated with Google Maps to show your emotional history geographically.
- History Logs: Maintain a persistent record of your moods, synced across devices via Firebase.
- Friends & Community: Add friends and share your emotional states.
- Activity Suggestions: Receive personalized recommendations based on your current mood to help you relax or celebrate.
- Firebase Authentication: Secure login and profile management.
- Cloud Synchronization: Never lose your data with real-time Firebase Realtime Database integration.
- Offline Support: Powered by Room Database for a seamless experience even without internet.
| Category | Technology Used |
|---|---|
| Language | Java |
| ML Engine | PyTorch Mobile, MTCNN, TensorFlow Lite |
| Architecture | MVVM (Model-View-ViewModel) |
| Database | Room (Local), Firebase Realtime Database (Cloud) |
| UI Components | Material Design 3, ViewBinding, MPAndroidChart |
| APIs | Google Maps SDK, Play Services Location |
- Capture: Open the camera or select an image from your gallery.
- Analyze: The MTCNN model detects faces, and the PyTorch classifier identifies the emotion.
- Reflect: Save the emotion with optional notes.
- Explore: Check your stats to find patterns in your emotional health.
- Clone the repository:
git clone https://github.com/pranayharjai7/MyEmotions.git
- Open the project in Android Studio Hedgehog or later.
- Add your
google-services.jsonto theapp/directory. - Add your Google Maps API Key to
local.properties:MAPS_API_KEY=your_api_key_here - Sync Project with Gradle Files and Run!
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Developed with ❤️ by Pranay Harjai