Locus is a Flutter application for Android and iOS designed to log activities every 30 minutes, including details of interactions, actions, and categories. The goal is to help users measure how they spend their time and align their activities with personal goals. Data is stored securely in Google Firebase, with encryption for sensitive information.
- Activity Logging: Log interactions, actions, and categories every 30 minutes.
- Daily Reports: View daily summaries of logged activities.
- Profile Management: Set and track personal goals.
- Secure Data Storage: Store data in Firebase with encryption for sensitive information.
- Google Sign-In: Authenticate users with Google Sign-In.
- Flutter SDK
- Firebase account
- Google Cloud project
-
Clone the repository:
git clone https://github.com/your-repository/locus.git cd locus
-
Install dependencies:
flutter pub get
-
Set up Firebase:
- Create a Firebase project in the Firebase Console.
- Add Android and iOS apps to your Firebase project.
- Download the google-services.json (for Android) and GoogleService-Info.plist (for iOS) and place them in the respective directories:
- android/app
- ios/Runner
-
Configure environment variables:
Copy env.example to .env file in the root directory and fill in the values for each key:
ANDROID_API_KEY=android_api_key ANDROID_APP_ID=android_app_id MESSAGING_SENDER_ID=messaging_sender_id PROJECT_ID=project_id STORAGE_BUCKET=storage_bucket IOS_BUNDLE_ID=ios_bundle_id IOS_API_KEY=ios_api_key IOS_APP_ID=ios_app_id KEY_STORAGE_KEY=key_storage_key IV_STORAGE_KEY=iv_storage_key
-
Run the app:
flutter run
lib/
├── encryption_service.dart # Handles encryption and decryption
├── log_entry_screen.dart # Screen for logging activities
├── main.dart # Entry point of the application
├── profile_screen.dart # Screen for managing user profile and goals
├── reporting_screen.dart # Screen for viewing daily reports
└── firebase_options.dart # Firebase configuration
- Log Entries: Use the log entry screen to log interactions, actions, and categories every 30 minutes.
- View Reports: View daily reports of your logged activities.
- Manage Profile: Set and track your personal goals on the profile screen.
- Encryption: All sensitive data is encrypted before being stored in Firebase.
- Environment Variables: Environment variables are used to manage encryption keys securely.
If you would like to contribute to this project, please fork the repository and submit a pull request.
This project is licensed under the MIT License.