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