diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
new file mode 100644
index 0000000..949b678
--- /dev/null
+++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
@@ -0,0 +1,8 @@
+
+
+
+
+ BuildSystemType
+ Original
+
+
diff --git a/lib/src/App.dart b/lib/src/App.dart
index f7c8a02..68dc481 100644
--- a/lib/src/App.dart
+++ b/lib/src/App.dart
@@ -1,10 +1,39 @@
import 'package:flutter/material.dart';
+import './models/user_model.dart';
+import './resources/firebase_provider.dart';
+
class App extends StatelessWidget {
Widget build(BuildContext context) {
+ final fire = FirebaseProvider();
return MaterialApp(
title: 'Do more',
- home: Text('Start'),
+ //home: Text('Start'),
+ home: Scaffold(
+ appBar: AppBar(
+ title: Text('DO>'),
+ ),
+ body: StreamBuilder(
+ stream: fire.getUser('mariano159357'),
+ builder:
+ (BuildContext context, AsyncSnapshot userSnapshot) {
+ if (!userSnapshot.hasData) {
+ return Center(
+ child: CircularProgressIndicator(),
+ );
+ }
+ return Column(
+ children: [
+ Text('${userSnapshot.data.pendingHigh}'),
+ MaterialButton(
+ onPressed: () {},
+ child: Text('Add task'),
+ ),
+ ],
+ );
+ },
+ ),
+ ),
);
}
}
diff --git a/lib/src/models/event_model.dart b/lib/src/models/event_model.dart
new file mode 100644
index 0000000..032cef1
--- /dev/null
+++ b/lib/src/models/event_model.dart
@@ -0,0 +1,33 @@
+import 'package:meta/meta.dart';
+
+class EventModel {
+ final String name;
+ final int pendigTasks;
+ final List when;
+ final List media;
+ final List tasks;
+ final int highPriority;
+ final int mediumPriority;
+ final int lowPriority;
+
+ EventModel({
+ @required this.name,
+ @required this.pendigTasks,
+ @required this.when,
+ @required this.media,
+ @required this.tasks,
+ @required this.highPriority,
+ @required this.mediumPriority,
+ @required this.lowPriority,
+ });
+
+ EventModel.fromFirestore(Map firestoreMap)
+ : name = firestoreMap["name"],
+ pendigTasks = firestoreMap["pendingTasks"],
+ when = firestoreMap["when"].cast(),
+ media = firestoreMap["media"].cast(),
+ tasks = firestoreMap["tasks"].cast(),
+ highPriority = firestoreMap["highPriority"],
+ mediumPriority = firestoreMap["mediumPriority"],
+ lowPriority = firestoreMap["lowPriority"];
+}
diff --git a/lib/src/models/summary_model.dart b/lib/src/models/summary_model.dart
index 959fe91..d8f20d0 100644
--- a/lib/src/models/summary_model.dart
+++ b/lib/src/models/summary_model.dart
@@ -1,14 +1,17 @@
+/// A summary of a user's week.
+///
+/// It represents how many tasks were completed and added by a user every day.
class SummaryModel {
- final int completedMonday;
- final int addedMonday;
- final int completedTuesday;
- final int addedTuesday;
- final int completedWednesday;
- final int addedWednesday;
- final int completedThursday;
- final int addedThursday;
- final int completedFriday;
- final int addedFriday;
+ int completedMonday;
+ int addedMonday;
+ int completedTuesday;
+ int addedTuesday;
+ int completedWednesday;
+ int addedWednesday;
+ int completedThursday;
+ int addedThursday;
+ int completedFriday;
+ int addedFriday;
SummaryModel({
this.completedMonday,
@@ -23,15 +26,17 @@ class SummaryModel {
this.addedFriday,
});
- SummaryModel.fromMap(Map map)
- : completedMonday = map["completedMonday"],
- addedMonday = map["addedMonday"],
- completedTuesday = map["completedTuesday"],
- addedTuesday = map["addedTuesday"],
- completedWednesday = map["completedWednesday"],
- addedWednesday = map["addedWednesday"],
- completedThursday = map["completedThursday"],
- addedThursday = map["addedThursday"],
- completedFriday = map["completedFriday"],
- addedFriday = map["addedFriday"];
+ /// Returns a [SummaryModel] from a map.
+ SummaryModel.fromMap(Map map) {
+ completedMonday = map["completedMonday"];
+ addedMonday = map["addedMonday"];
+ completedTuesday = map["completedTuesday"];
+ addedTuesday = map["addedTuesday"];
+ completedWednesday = map["completedWednesday"];
+ addedWednesday = map["addedWednesday"];
+ completedThursday = map["completedThursday"];
+ addedThursday = map["addedThursday"];
+ completedFriday = map["completedFriday"];
+ addedFriday = map["addedFriday"];
+ }
}
diff --git a/lib/src/models/task_model.dart b/lib/src/models/task_model.dart
new file mode 100644
index 0000000..80fa059
--- /dev/null
+++ b/lib/src/models/task_model.dart
@@ -0,0 +1,24 @@
+import 'package:meta/meta.dart';
+
+class TaskModel {
+ final String text;
+ final int priority;
+ final String ownerUsername;
+ final bool done;
+ final String event;
+
+ TaskModel({
+ @required this.text,
+ @required this.priority,
+ @required this.ownerUsername,
+ @required this.done,
+ @required this.event,
+ });
+
+ TaskModel.fromFirestore(Map firestoreMap)
+ : text = firestoreMap["text"],
+ priority = firestoreMap["priority"],
+ ownerUsername = firestoreMap["ownerUsername"],
+ done = firestoreMap["done"],
+ event = firestoreMap["event"];
+}
diff --git a/lib/src/models/user_model.dart b/lib/src/models/user_model.dart
index 36b1702..8ebe7a5 100644
--- a/lib/src/models/user_model.dart
+++ b/lib/src/models/user_model.dart
@@ -1,5 +1,8 @@
import 'summary_model.dart';
+/// An app user.
+///
+/// Represents all of a users data.
class UserModel {
final String username;
final List tasks;
@@ -25,10 +28,12 @@ class UserModel {
assert(pendingMedium != null),
assert(pendingLow != null);
+ ///Returns a [UserModel] from a map.
UserModel.fromFirestore(Map firestoreMap)
: username = firestoreMap["username"],
tasks = firestoreMap["tasks"].cast(),
- summary = SummaryModel.fromMap(firestoreMap),
+ summary =
+ SummaryModel.fromMap(firestoreMap["summary"].cast()),
userId = firestoreMap["userId"],
pendingHigh = firestoreMap["pendingHigh"],
pendingMedium = firestoreMap["pendingMedium"],
diff --git a/pubspec.yaml b/pubspec.yaml
index 39bcbe6..f9ff4ef 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -22,7 +22,8 @@ dependencies:
http: ^0.12.0
sqflite: ^1.1.0
rxdart: ^0.20.0
- firebase_core: ^0.3.0+2
+ firebase_core: ^0.3.0
+ firebase_analytics: ^2.0.2
cloud_firestore: ^0.9.0
firebase_auth: ^0.8.1
firebase_ml_vision: ^0.6.0