docs: update README
This commit is contained in:
parent
4eed56f155
commit
9fe11e4796
1 changed files with 44 additions and 9 deletions
53
README.md
53
README.md
|
|
@ -1,16 +1,51 @@
|
||||||
# timetracker
|
# timetracker
|
||||||
|
|
||||||
A new Flutter project.
|
A cross-platform time tracker built with Flutter for the frontend and Rust for the backend logic. Communication is handled via `flutter_rust_bridge`, and data is stored locally on the device using SQLite. The user interface adapts to the native look-and-feel of Android and iOS thanks to `flutter_platform_widgets`.
|
||||||
|
|
||||||
## Getting Started
|
## Features
|
||||||
|
|
||||||
This project is a starting point for a Flutter application.
|
* **Time Tracking:** Start and stop time tracking entries.
|
||||||
|
* **Tag Management:**
|
||||||
|
* Create new tags.
|
||||||
|
* List all tags.
|
||||||
|
* Edit tag names (via swipe gesture).
|
||||||
|
* Delete tags (via swipe gesture, includes confirmation). Associated time entries will have their tag set to NULL.
|
||||||
|
* **Local Storage:** All data is securely stored in a local SQLite database on the device (managed by Rust).
|
||||||
|
* **Reporting:**
|
||||||
|
* Display time entries filtered by period (Day, Week, Month, Year) and optionally by tag.
|
||||||
|
* Total duration display for the filtered period.
|
||||||
|
* Visualization using charts (`fl_chart`):
|
||||||
|
* **Bar chart:** Distribution of daily time spent per tag for the selected period.
|
||||||
|
* List view for report entries.
|
||||||
|
* **Pull-to-Refresh:** Manually refresh report data.
|
||||||
|
* **Swipe-to-Delete:** Delete individual time entries directly from the report list via swipe gesture (with confirmation).
|
||||||
|
* **Platform-Adaptive UI:** Uses `flutter_platform_widgets` to provide a native appearance on Android (Material Design) and iOS (Cupertino).
|
||||||
|
|
||||||
A few resources to get you started if this is your first Flutter project:
|
## Technologies
|
||||||
|
|
||||||
- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)
|
* **Frontend:** Flutter / Dart
|
||||||
- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook)
|
* State Management: `provider`
|
||||||
|
* UI Adaptation: `flutter_platform_widgets`
|
||||||
|
* Charts: `fl_chart`
|
||||||
|
* Swipe Actions: `flutter_slidable`
|
||||||
|
* Intl: `intl`
|
||||||
|
* **Backend:** Rust
|
||||||
|
* Database: SQLite (via `rusqlite`)
|
||||||
|
* Error Handling: `anyhow`
|
||||||
|
* Logging: `log`
|
||||||
|
* **Bridge:** `flutter_rust_bridge`
|
||||||
|
* **Build:** Cargo, Flutter Build Tools, Gradle (Android), Xcode (iOS)
|
||||||
|
|
||||||
For help getting started with Flutter development, view the
|
## Architecture
|
||||||
[online documentation](https://docs.flutter.dev/), which offers tutorials,
|
|
||||||
samples, guidance on mobile development, and a full API reference.
|
The app follows a clear separation between UI and logic:
|
||||||
|
|
||||||
|
`Flutter UI (Widgets)` <-> `Dart Service Layer (TimeTrackingService)` <-> `flutter_rust_bridge (Generated Bindings)` <-> `Rust API (api.rs)` <-> `Rust DB Logic (database.rs)` <-> `SQLite Database`
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
Contributions are welcome! Please create an issue to report bugs or suggest new features. Pull requests are also welcome.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
[MIT License]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue