_____ _ _ _
/ __ \ | (_|_)
| / \/ |__ _ __ ___ _ __ _ _
| | | '_ \| '__/ _ \| '_ \| | |
| \__/\ | | | | | (_) | | | | | |
\____/_| |_|_| \___/|_| |_|_|_|
Chronii is a simple task management tool, with task timers and todos. Supports cloud syncing as well as anonymous use. Currently supports web and Windows officially, but can be built for other platforms.
At this stage there are no plans fur further maintenance of this project as this was primarily an experiment with Flutter and Firebase.
Use online at Chronii Web, or download the Windows app from releases.
Feel free to create an account and use the cloud storage. Note that this app is not production-ready, and should not be used for sensitive or critical data.
- Task timers with daily and weekly summaries
- Todo list with filtering options
- Note section with tabs
- Authentication
- Cloud storage using Firebase
- Local storage for anonymous users
Timer screen:
Timer summary:
Login screen:
Todo screen:
Todo filters:
Notes screen:
Notes grid:
To build, make sure Flutter is installed. Run with
flutter run -d chrome
or
flutter run -d windows
or use equivalent build commands. Note that currently this project requires Firebase to be set up in order to run.
- Go to the Firebase Console and create a new project
- Give your project a name (e.g., "chronii-time")
- Enable Google Analytics if desired and follow the setup steps
dart pub global activate flutterfire_cli
- In your project directory, run:
flutterfire configure --project=your-firebase-project-id
- Select the platforms you want to support (Android, Web, Windows)
- This will generate
firebase_options.dart
andfirebase.json
files
-
Authentication:
- In the Firebase Console, go to Authentication → Sign-in methods
- Enable Email/Password authentication
- Enable Anonymous authentication
-
Firestore Database:
- Go to Firestore Database and create a database
- Start in production mode or test mode
- Choose a location for your database
- Set up security rules for your database, for example:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId} {
allow read, write: if request.auth != null && request.auth.uid == userId;
match /todos/{todoId} {
allow read, write: if request.auth != null && request.auth.uid == userId;
}
match /timers/{timerId} {
allow read, write: if request.auth != null && request.auth.uid == userId;
}
}
}
}