diff --git a/Project/MoreFreeTime/MoreFreeTime.xcodeproj/project.pbxproj b/Project/MoreFreeTime/MoreFreeTime.xcodeproj/project.pbxproj
new file mode 100644
index 0000000000000000000000000000000000000000..ba7e75978c5182dd82f3eac8b6cce1e4435dbe47
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime.xcodeproj/project.pbxproj
@@ -0,0 +1,575 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 50;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 4D2793F621AC706D008917B9 /* Event.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D2793F521AC706D008917B9 /* Event.swift */; };
+ 4D2793FF21AC7126008917B9 /* EventsTable.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4D2793FE21AC7126008917B9 /* EventsTable.storyboard */; };
+ 4D27940121AC7197008917B9 /* EventsTableTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D27940021AC7197008917B9 /* EventsTableTableViewController.swift */; };
+ 4D27940321AC71DA008917B9 /* ListViewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D27940221AC71DA008917B9 /* ListViewDataSource.swift */; };
+ 4D27942521ACE6B5008917B9 /* SQLite.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D27941721ACE690008917B9 /* SQLite.framework */; };
+ 4D27942621ACE6C5008917B9 /* SQLite.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D27941721ACE690008917B9 /* SQLite.framework */; };
+ 4D27942721ACE6C5008917B9 /* SQLite.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4D27941721ACE690008917B9 /* SQLite.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
+ 4D27942C21ACEFCD008917B9 /* SQLite_Example.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D27942B21ACEFCD008917B9 /* SQLite_Example.swift */; };
+ 4D27942F21ADEC2E008917B9 /* EventSingleDayCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D27942E21ADEC2E008917B9 /* EventSingleDayCell.swift */; };
+ 4D618EBF21AB6E0F006814C0 /* ScheduleControllerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D618EBE21AB6E0F006814C0 /* ScheduleControllerViewController.swift */; };
+ 4D618EC121AB7707006814C0 /* DatePopupViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D618EC021AB7707006814C0 /* DatePopupViewController.swift */; };
+ 4D618EC321AB77DE006814C0 /* AddEventViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D618EC221AB77DE006814C0 /* AddEventViewController.swift */; };
+ 4D618EC621AB820C006814C0 /* DatePopup.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4D618EC421AB820C006814C0 /* DatePopup.storyboard */; };
+ 4D618EC921AB828C006814C0 /* EventsController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4D618EC721AB828C006814C0 /* EventsController.storyboard */; };
+ 4DECCE0D21A8C71B006CA671 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DECCE0C21A8C71B006CA671 /* AppDelegate.swift */; };
+ 4DECCE0F21A8C71B006CA671 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DECCE0E21A8C71B006CA671 /* ViewController.swift */; };
+ 4DECCE1221A8C71B006CA671 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4DECCE1021A8C71B006CA671 /* Main.storyboard */; };
+ 4DECCE1421A8C71E006CA671 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 4DECCE1321A8C71E006CA671 /* Assets.xcassets */; };
+ 4DECCE1721A8C71E006CA671 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4DECCE1521A8C71E006CA671 /* LaunchScreen.storyboard */; };
+ 4DF5C27521ABA62D00DF3B9B /* NotificationNameExtention.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DF5C27421ABA62D00DF3B9B /* NotificationNameExtention.swift */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ 4D27941621ACE690008917B9 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 4D27940521ACE68F008917B9 /* SQLite.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = EE247AD31C3F04ED00AE3E12;
+ remoteInfo = "SQLite iOS";
+ };
+ 4D27941821ACE690008917B9 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 4D27940521ACE68F008917B9 /* SQLite.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = EE247ADD1C3F04ED00AE3E12;
+ remoteInfo = "SQLiteTests iOS";
+ };
+ 4D27941A21ACE690008917B9 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 4D27940521ACE68F008917B9 /* SQLite.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = EE247B3C1C3F3ED000AE3E12;
+ remoteInfo = "SQLite Mac";
+ };
+ 4D27941C21ACE690008917B9 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 4D27940521ACE68F008917B9 /* SQLite.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = EE247B451C3F3ED000AE3E12;
+ remoteInfo = "SQLiteTests Mac";
+ };
+ 4D27941E21ACE690008917B9 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 4D27940521ACE68F008917B9 /* SQLite.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = 03A65E5A1C6BB0F50062603F;
+ remoteInfo = "SQLite tvOS";
+ };
+ 4D27942021ACE690008917B9 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 4D27940521ACE68F008917B9 /* SQLite.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = 03A65E631C6BB0F60062603F;
+ remoteInfo = "SQLiteTests tvOS";
+ };
+ 4D27942221ACE690008917B9 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 4D27940521ACE68F008917B9 /* SQLite.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = A121AC451CA35C79005A31D1;
+ remoteInfo = "SQLite watchOS";
+ };
+ 4D27942821ACE6C5008917B9 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 4D27940521ACE68F008917B9 /* SQLite.xcodeproj */;
+ proxyType = 1;
+ remoteGlobalIDString = EE247AD21C3F04ED00AE3E12;
+ remoteInfo = "SQLite iOS";
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+ 4D27942A21ACE6C5008917B9 /* Embed Frameworks */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = "";
+ dstSubfolderSpec = 10;
+ files = (
+ 4D27942721ACE6C5008917B9 /* SQLite.framework in Embed Frameworks */,
+ );
+ name = "Embed Frameworks";
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+ 4D2793F521AC706D008917B9 /* Event.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Event.swift; sourceTree = "<group>"; };
+ 4D2793FE21AC7126008917B9 /* EventsTable.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = EventsTable.storyboard; sourceTree = "<group>"; };
+ 4D27940021AC7197008917B9 /* EventsTableTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EventsTableTableViewController.swift; sourceTree = "<group>"; };
+ 4D27940221AC71DA008917B9 /* ListViewDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListViewDataSource.swift; sourceTree = "<group>"; };
+ 4D27940521ACE68F008917B9 /* SQLite.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SQLite.xcodeproj; path = "../../../../../../Downloads/SQLite.swift-master/SQLite.xcodeproj"; sourceTree = "<group>"; };
+ 4D27942B21ACEFCD008917B9 /* SQLite_Example.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SQLite_Example.swift; sourceTree = "<group>"; };
+ 4D27942E21ADEC2E008917B9 /* EventSingleDayCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EventSingleDayCell.swift; sourceTree = "<group>"; };
+ 4D618EBE21AB6E0F006814C0 /* ScheduleControllerViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScheduleControllerViewController.swift; sourceTree = "<group>"; };
+ 4D618EC021AB7707006814C0 /* DatePopupViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatePopupViewController.swift; sourceTree = "<group>"; };
+ 4D618EC221AB77DE006814C0 /* AddEventViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddEventViewController.swift; sourceTree = "<group>"; };
+ 4D618EC521AB820C006814C0 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = MoreFreeTime/Base.lproj/DatePopup.storyboard; sourceTree = "<group>"; };
+ 4D618EC821AB828C006814C0 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = MoreFreeTime/Base.lproj/EventsController.storyboard; sourceTree = "<group>"; };
+ 4DECCE0921A8C71B006CA671 /* MoreFreeTime.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MoreFreeTime.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 4DECCE0C21A8C71B006CA671 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
+ 4DECCE0E21A8C71B006CA671 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = "<group>"; };
+ 4DECCE1121A8C71B006CA671 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
+ 4DECCE1321A8C71E006CA671 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
+ 4DECCE1621A8C71E006CA671 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
+ 4DECCE1821A8C71E006CA671 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+ 4DF5C27421ABA62D00DF3B9B /* NotificationNameExtention.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationNameExtention.swift; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 4DECCE0621A8C71B006CA671 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 4D27942621ACE6C5008917B9 /* SQLite.framework in Frameworks */,
+ 4D27942521ACE6B5008917B9 /* SQLite.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 4D27940621ACE68F008917B9 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 4D27941721ACE690008917B9 /* SQLite.framework */,
+ 4D27941921ACE690008917B9 /* SQLiteTests iOS.xctest */,
+ 4D27941B21ACE690008917B9 /* SQLite.framework */,
+ 4D27941D21ACE690008917B9 /* SQLiteTests Mac.xctest */,
+ 4D27941F21ACE690008917B9 /* SQLite.framework */,
+ 4D27942121ACE690008917B9 /* SQLiteTests tvOS.xctest */,
+ 4D27942321ACE690008917B9 /* SQLite.framework */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 4D27942421ACE6B5008917B9 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ );
+ name = Frameworks;
+ sourceTree = "<group>";
+ };
+ 4DECCE0021A8C71B006CA671 = {
+ isa = PBXGroup;
+ children = (
+ 4D27942B21ACEFCD008917B9 /* SQLite_Example.swift */,
+ 4DECCE0B21A8C71B006CA671 /* MoreFreeTime */,
+ 4DECCE0A21A8C71B006CA671 /* Products */,
+ 4D27940521ACE68F008917B9 /* SQLite.xcodeproj */,
+ 4D27942421ACE6B5008917B9 /* Frameworks */,
+ );
+ sourceTree = "<group>";
+ };
+ 4DECCE0A21A8C71B006CA671 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 4DECCE0921A8C71B006CA671 /* MoreFreeTime.app */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 4DECCE0B21A8C71B006CA671 /* MoreFreeTime */ = {
+ isa = PBXGroup;
+ children = (
+ 4DECCE1521A8C71E006CA671 /* LaunchScreen.storyboard */,
+ 4DECCE0C21A8C71B006CA671 /* AppDelegate.swift */,
+ 4DECCE1021A8C71B006CA671 /* Main.storyboard */,
+ 4DECCE0E21A8C71B006CA671 /* ViewController.swift */,
+ 4DECCE1321A8C71E006CA671 /* Assets.xcassets */,
+ 4DECCE1821A8C71E006CA671 /* Info.plist */,
+ 4D618EC721AB828C006814C0 /* EventsController.storyboard */,
+ 4D618EBE21AB6E0F006814C0 /* ScheduleControllerViewController.swift */,
+ 4D618EC221AB77DE006814C0 /* AddEventViewController.swift */,
+ 4D27942E21ADEC2E008917B9 /* EventSingleDayCell.swift */,
+ 4D618EC421AB820C006814C0 /* DatePopup.storyboard */,
+ 4D618EC021AB7707006814C0 /* DatePopupViewController.swift */,
+ 4D2793F521AC706D008917B9 /* Event.swift */,
+ 4DF5C27421ABA62D00DF3B9B /* NotificationNameExtention.swift */,
+ 4D27940221AC71DA008917B9 /* ListViewDataSource.swift */,
+ 4D2793FE21AC7126008917B9 /* EventsTable.storyboard */,
+ 4D27940021AC7197008917B9 /* EventsTableTableViewController.swift */,
+ );
+ path = MoreFreeTime;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 4DECCE0821A8C71B006CA671 /* MoreFreeTime */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 4DECCE1B21A8C71E006CA671 /* Build configuration list for PBXNativeTarget "MoreFreeTime" */;
+ buildPhases = (
+ 4DECCE0521A8C71B006CA671 /* Sources */,
+ 4DECCE0621A8C71B006CA671 /* Frameworks */,
+ 4DECCE0721A8C71B006CA671 /* Resources */,
+ 4D27942A21ACE6C5008917B9 /* Embed Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 4D27942921ACE6C5008917B9 /* PBXTargetDependency */,
+ );
+ name = MoreFreeTime;
+ productName = MoreFreeTime;
+ productReference = 4DECCE0921A8C71B006CA671 /* MoreFreeTime.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 4DECCE0121A8C71B006CA671 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ LastSwiftUpdateCheck = 1010;
+ LastUpgradeCheck = 1010;
+ ORGANIZATIONNAME = "Dylan Zeller";
+ TargetAttributes = {
+ 4DECCE0821A8C71B006CA671 = {
+ CreatedOnToolsVersion = 10.1;
+ };
+ };
+ };
+ buildConfigurationList = 4DECCE0421A8C71B006CA671 /* Build configuration list for PBXProject "MoreFreeTime" */;
+ compatibilityVersion = "Xcode 9.3";
+ developmentRegion = en;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ Base,
+ );
+ mainGroup = 4DECCE0021A8C71B006CA671;
+ productRefGroup = 4DECCE0A21A8C71B006CA671 /* Products */;
+ projectDirPath = "";
+ projectReferences = (
+ {
+ ProductGroup = 4D27940621ACE68F008917B9 /* Products */;
+ ProjectRef = 4D27940521ACE68F008917B9 /* SQLite.xcodeproj */;
+ },
+ );
+ projectRoot = "";
+ targets = (
+ 4DECCE0821A8C71B006CA671 /* MoreFreeTime */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+ 4D27941721ACE690008917B9 /* SQLite.framework */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.framework;
+ path = SQLite.framework;
+ remoteRef = 4D27941621ACE690008917B9 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 4D27941921ACE690008917B9 /* SQLiteTests iOS.xctest */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = "SQLiteTests iOS.xctest";
+ remoteRef = 4D27941821ACE690008917B9 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 4D27941B21ACE690008917B9 /* SQLite.framework */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.framework;
+ path = SQLite.framework;
+ remoteRef = 4D27941A21ACE690008917B9 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 4D27941D21ACE690008917B9 /* SQLiteTests Mac.xctest */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = "SQLiteTests Mac.xctest";
+ remoteRef = 4D27941C21ACE690008917B9 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 4D27941F21ACE690008917B9 /* SQLite.framework */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.framework;
+ path = SQLite.framework;
+ remoteRef = 4D27941E21ACE690008917B9 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 4D27942121ACE690008917B9 /* SQLiteTests tvOS.xctest */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = "SQLiteTests tvOS.xctest";
+ remoteRef = 4D27942021ACE690008917B9 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 4D27942321ACE690008917B9 /* SQLite.framework */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.framework;
+ path = SQLite.framework;
+ remoteRef = 4D27942221ACE690008917B9 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+/* End PBXReferenceProxy section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 4DECCE0721A8C71B006CA671 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 4D2793FF21AC7126008917B9 /* EventsTable.storyboard in Resources */,
+ 4D618EC921AB828C006814C0 /* EventsController.storyboard in Resources */,
+ 4DECCE1721A8C71E006CA671 /* LaunchScreen.storyboard in Resources */,
+ 4D618EC621AB820C006814C0 /* DatePopup.storyboard in Resources */,
+ 4DECCE1421A8C71E006CA671 /* Assets.xcassets in Resources */,
+ 4DECCE1221A8C71B006CA671 /* Main.storyboard in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 4DECCE0521A8C71B006CA671 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 4D27942C21ACEFCD008917B9 /* SQLite_Example.swift in Sources */,
+ 4DECCE0F21A8C71B006CA671 /* ViewController.swift in Sources */,
+ 4D618EC321AB77DE006814C0 /* AddEventViewController.swift in Sources */,
+ 4DF5C27521ABA62D00DF3B9B /* NotificationNameExtention.swift in Sources */,
+ 4D27940321AC71DA008917B9 /* ListViewDataSource.swift in Sources */,
+ 4D27940121AC7197008917B9 /* EventsTableTableViewController.swift in Sources */,
+ 4D618EC121AB7707006814C0 /* DatePopupViewController.swift in Sources */,
+ 4D618EBF21AB6E0F006814C0 /* ScheduleControllerViewController.swift in Sources */,
+ 4D27942F21ADEC2E008917B9 /* EventSingleDayCell.swift in Sources */,
+ 4D2793F621AC706D008917B9 /* Event.swift in Sources */,
+ 4DECCE0D21A8C71B006CA671 /* AppDelegate.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ 4D27942921ACE6C5008917B9 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ name = "SQLite iOS";
+ targetProxy = 4D27942821ACE6C5008917B9 /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin PBXVariantGroup section */
+ 4D618EC421AB820C006814C0 /* DatePopup.storyboard */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 4D618EC521AB820C006814C0 /* Base */,
+ );
+ name = DatePopup.storyboard;
+ sourceTree = "<group>";
+ };
+ 4D618EC721AB828C006814C0 /* EventsController.storyboard */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 4D618EC821AB828C006814C0 /* Base */,
+ );
+ name = EventsController.storyboard;
+ sourceTree = "<group>";
+ };
+ 4DECCE1021A8C71B006CA671 /* Main.storyboard */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 4DECCE1121A8C71B006CA671 /* Base */,
+ );
+ name = Main.storyboard;
+ sourceTree = "<group>";
+ };
+ 4DECCE1521A8C71E006CA671 /* LaunchScreen.storyboard */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 4DECCE1621A8C71E006CA671 /* Base */,
+ );
+ name = LaunchScreen.storyboard;
+ sourceTree = "<group>";
+ };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ 4DECCE1921A8C71E006CA671 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGN_IDENTITY = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_TESTABILITY = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.1;
+ MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
+ MTL_FAST_MATH = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ SDKROOT = iphoneos;
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ };
+ name = Debug;
+ };
+ 4DECCE1A21A8C71E006CA671 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGN_IDENTITY = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.1;
+ MTL_ENABLE_DEBUG_INFO = NO;
+ MTL_FAST_MATH = YES;
+ SDKROOT = iphoneos;
+ SWIFT_COMPILATION_MODE = wholemodule;
+ SWIFT_OPTIMIZATION_LEVEL = "-O";
+ VALIDATE_PRODUCT = YES;
+ };
+ name = Release;
+ };
+ 4DECCE1C21A8C71E006CA671 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CODE_SIGN_STYLE = Automatic;
+ INFOPLIST_FILE = MoreFreeTime/Info.plist;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = com.DylanZeller.MoreFreeTime;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_VERSION = 4.2;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Debug;
+ };
+ 4DECCE1D21A8C71E006CA671 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CODE_SIGN_STYLE = Automatic;
+ INFOPLIST_FILE = MoreFreeTime/Info.plist;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = com.DylanZeller.MoreFreeTime;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_VERSION = 4.2;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 4DECCE0421A8C71B006CA671 /* Build configuration list for PBXProject "MoreFreeTime" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 4DECCE1921A8C71E006CA671 /* Debug */,
+ 4DECCE1A21A8C71E006CA671 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 4DECCE1B21A8C71E006CA671 /* Build configuration list for PBXNativeTarget "MoreFreeTime" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 4DECCE1C21A8C71E006CA671 /* Debug */,
+ 4DECCE1D21A8C71E006CA671 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 4DECCE0121A8C71B006CA671 /* Project object */;
+}
diff --git a/Project/MoreFreeTime/MoreFreeTime.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Project/MoreFreeTime/MoreFreeTime.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000000000000000000000000000000000000..3536093c5e34107d2106638b99a0f3f6fe1d87db
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+ version = "1.0">
+ <FileRef
+ location = "self:MoreFreeTime.xcodeproj">
+ </FileRef>
+</Workspace>
diff --git a/Project/MoreFreeTime/MoreFreeTime.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Project/MoreFreeTime/MoreFreeTime.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 0000000000000000000000000000000000000000..18d981003d68d0546c4804ac2ff47dd97c6e7921
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>IDEDidComputeMac32BitWarning</key>
+ <true/>
+</dict>
+</plist>
diff --git a/Project/MoreFreeTime/MoreFreeTime.xcodeproj/project.xcworkspace/xcuserdata/diesel.xcuserdatad/UserInterfaceState.xcuserstate b/Project/MoreFreeTime/MoreFreeTime.xcodeproj/project.xcworkspace/xcuserdata/diesel.xcuserdatad/UserInterfaceState.xcuserstate
new file mode 100644
index 0000000000000000000000000000000000000000..8534e515e18d56856a575471c4fb1eefd0e9a60b
Binary files /dev/null and b/Project/MoreFreeTime/MoreFreeTime.xcodeproj/project.xcworkspace/xcuserdata/diesel.xcuserdatad/UserInterfaceState.xcuserstate differ
diff --git a/Project/MoreFreeTime/MoreFreeTime.xcodeproj/xcuserdata/diesel.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/Project/MoreFreeTime/MoreFreeTime.xcodeproj/xcuserdata/diesel.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
new file mode 100644
index 0000000000000000000000000000000000000000..850e9384411fe2ac3db14c4144a7106863c685be
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime.xcodeproj/xcuserdata/diesel.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Bucket
+ type = "1"
+ version = "2.0">
+ <Breakpoints>
+ <BreakpointProxy
+ BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+ <BreakpointContent
+ shouldBeEnabled = "No"
+ ignoreCount = "0"
+ continueAfterRunningActions = "No"
+ filePath = "MoreFreeTime/ScheduleControllerViewController.swift"
+ timestampString = "565120761.112235"
+ startingColumnNumber = "9223372036854775807"
+ endingColumnNumber = "9223372036854775807"
+ startingLineNumber = "159"
+ endingLineNumber = "159"
+ landmarkName = "insertEvent(e:)"
+ landmarkType = "7">
+ </BreakpointContent>
+ </BreakpointProxy>
+ </Breakpoints>
+</Bucket>
diff --git a/Project/MoreFreeTime/MoreFreeTime.xcodeproj/xcuserdata/diesel.xcuserdatad/xcschemes/xcschememanagement.plist b/Project/MoreFreeTime/MoreFreeTime.xcodeproj/xcuserdata/diesel.xcuserdatad/xcschemes/xcschememanagement.plist
new file mode 100644
index 0000000000000000000000000000000000000000..bf2496a46181c0a07a1ea5d00a8b0142995b5f0c
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime.xcodeproj/xcuserdata/diesel.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>SchemeUserState</key>
+ <dict>
+ <key>MoreFreeTime.xcscheme_^#shared#^_</key>
+ <dict>
+ <key>orderHint</key>
+ <integer>4</integer>
+ </dict>
+ </dict>
+</dict>
+</plist>
diff --git a/Project/MoreFreeTime/MoreFreeTime/AddEventViewController.swift b/Project/MoreFreeTime/MoreFreeTime/AddEventViewController.swift
new file mode 100644
index 0000000000000000000000000000000000000000..8071b81cff7d6faf3d98f6cc64d82a6845bb9863
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime/AddEventViewController.swift
@@ -0,0 +1,104 @@
+//
+// AddEventViewController.swift
+// MoreFreeTime
+//
+// Created by Dylan Zeller on 11/25/18.
+// Copyright © 2018 Dylan Zeller. All rights reserved.
+//
+
+import UIKit
+
+class AddEventViewController: UIViewController {
+
+ @IBOutlet weak var eventTitleLabel: UITextField!
+ @IBOutlet weak var eventLocationLabel: UITextField!
+ @IBOutlet weak var eventDescriptionText: UITextView!
+
+ @IBOutlet weak var eventStartDate: UILabel!
+ @IBOutlet weak var eventEndDate: UILabel!
+ @IBOutlet weak var eventStartTime: UILabel!
+ @IBOutlet weak var eventEndTime: UILabel!
+
+ var observerStart : NSObjectProtocol?
+ var observerEnd : NSObjectProtocol?
+
+ var defaultStartTime : String {
+ let formatter = DateFormatter()
+ formatter.timeStyle = .short
+ let date = Date()
+ return formatter.string(from: date)
+ }
+
+ var defaultEndTime : String {
+ let formatter = DateFormatter()
+ formatter.timeStyle = .short
+ let date = Date().addingTimeInterval(3600)
+ return formatter.string(from: date)
+ }
+
+ var defaultDate : String {
+ let formatter = DateFormatter()
+ formatter.dateStyle = .medium
+ return formatter.string(from: Date())
+ }
+
+ override func viewDidLoad() {
+ super.viewDidLoad()
+ self.eventStartTime.text = self.defaultStartTime
+ self.eventEndTime.text = self.defaultEndTime
+ self.eventEndDate.text = self.defaultDate
+ self.eventStartDate.text = self.defaultDate
+
+ observerStart = NotificationCenter.default.addObserver(forName: .saveStartDateTime, object: nil, queue: OperationQueue.main) {
+ (notification) in let dateVc = notification.object as! DatePopupViewController
+ self.eventStartTime.text = dateVc.formattedTime
+ self.eventStartDate.text = dateVc.formattedDate
+ self.eventEndDate.text = dateVc.formattedDate
+ }
+ observerEnd = NotificationCenter.default.addObserver(forName: .saveEndDateTime, object: nil, queue: OperationQueue.main) {
+ (notification) in let dateVc = notification.object as! DatePopupViewController
+ self.eventEndTime.text = dateVc.formattedTime
+ self.eventEndDate.text = dateVc.formattedDate
+ }
+
+ // Do any additional setup after loading the view.
+ }
+
+ override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
+ if segue.identifier == "toStartDatePopupView" {
+ let popup = segue.destination as! DatePopupViewController
+ popup.isStart = true
+ }
+ }
+
+ @IBAction func clickSave(_ sender: Any) {
+ let event = Event(title: self.eventTitleLabel.text ?? "(No Title)", startDate: self.eventStartDate.text!, startTime: self.eventStartTime.text!, endDate: self.eventEndDate.text!, endTime: self.eventEndTime.text!, location: self.eventLocationLabel.text ?? "No Location", description: self.eventDescriptionText.text)
+ NotificationCenter.default.post(name: .saveNewEvent, object: event)
+ if let observerStart = observerStart {
+ NotificationCenter.default.removeObserver(observerStart)
+ }
+ if let observerEnd = observerEnd {
+ NotificationCenter.default.removeObserver(observerEnd)
+ }
+ dismiss(animated: true)
+ }
+ @IBAction func clickCancel(_ sender: Any) {
+ dismiss(animated: true)
+ }
+ /*@IBAction func editStartTime(_ sender: Any) {
+ let sb = UIStoryboard(name: "DatePopup", bundle: nil)
+ let popup = sb.instantiateInitialViewController()!
+ self.present(popup,animated: true)
+ }*/
+
+ /*
+ // MARK: - Navigation
+
+ // In a storyboard-based application, you will often want to do a little preparation before navigation
+ override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
+ // Get the new view controller using segue.destination.
+ // Pass the selected object to the new view controller.
+ }
+ */
+
+}
diff --git a/Project/MoreFreeTime/MoreFreeTime/AppDelegate.swift b/Project/MoreFreeTime/MoreFreeTime/AppDelegate.swift
new file mode 100644
index 0000000000000000000000000000000000000000..f36632e45c920512ab7741e9b80d18e507e4fcb4
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime/AppDelegate.swift
@@ -0,0 +1,46 @@
+//
+// AppDelegate.swift
+// MoreFreeTime
+//
+// Created by Dylan Zeller on 11/23/18.
+// Copyright © 2018 Dylan Zeller. All rights reserved.
+//
+
+import UIKit
+
+@UIApplicationMain
+class AppDelegate: UIResponder, UIApplicationDelegate {
+
+ var window: UIWindow?
+
+
+ func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
+ // Override point for customization after application launch.
+ return true
+ }
+
+ func applicationWillResignActive(_ application: UIApplication) {
+ // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
+ // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
+ }
+
+ func applicationDidEnterBackground(_ application: UIApplication) {
+ // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
+ // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
+ }
+
+ func applicationWillEnterForeground(_ application: UIApplication) {
+ // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
+ }
+
+ func applicationDidBecomeActive(_ application: UIApplication) {
+ // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
+ }
+
+ func applicationWillTerminate(_ application: UIApplication) {
+ // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
+ }
+
+
+}
+
diff --git a/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/AppIcon.appiconset/Contents.json b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..d8db8d65fd79fd541b2b7eba75c7378af3448f9c
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -0,0 +1,98 @@
+{
+ "images" : [
+ {
+ "idiom" : "iphone",
+ "size" : "20x20",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "iphone",
+ "size" : "20x20",
+ "scale" : "3x"
+ },
+ {
+ "idiom" : "iphone",
+ "size" : "29x29",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "iphone",
+ "size" : "29x29",
+ "scale" : "3x"
+ },
+ {
+ "idiom" : "iphone",
+ "size" : "40x40",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "iphone",
+ "size" : "40x40",
+ "scale" : "3x"
+ },
+ {
+ "idiom" : "iphone",
+ "size" : "60x60",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "iphone",
+ "size" : "60x60",
+ "scale" : "3x"
+ },
+ {
+ "idiom" : "ipad",
+ "size" : "20x20",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "ipad",
+ "size" : "20x20",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "ipad",
+ "size" : "29x29",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "ipad",
+ "size" : "29x29",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "ipad",
+ "size" : "40x40",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "ipad",
+ "size" : "40x40",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "ipad",
+ "size" : "76x76",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "ipad",
+ "size" : "76x76",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "ipad",
+ "size" : "83.5x83.5",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "ios-marketing",
+ "size" : "1024x1024",
+ "scale" : "1x"
+ }
+ ],
+ "info" : {
+ "version" : 1,
+ "author" : "xcode"
+ }
+}
\ No newline at end of file
diff --git a/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Background.imageset/Background.png b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Background.imageset/Background.png
new file mode 100644
index 0000000000000000000000000000000000000000..c1db110d5f4f72a5616c1edf2808c51820861b55
Binary files /dev/null and b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Background.imageset/Background.png differ
diff --git a/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Background.imageset/Background@2x.png b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Background.imageset/Background@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..14e8d25a91ef15bf9a1d7844c7309c26d9188b2f
Binary files /dev/null and b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Background.imageset/Background@2x.png differ
diff --git a/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Background.imageset/Background@3x.png b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Background.imageset/Background@3x.png
new file mode 100644
index 0000000000000000000000000000000000000000..a77263d91872b54633bf79cfed1e65e08e89eb4b
Binary files /dev/null and b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Background.imageset/Background@3x.png differ
diff --git a/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Background.imageset/Contents.json b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Background.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..10929a9ad3d5b72a2619c47fd485947e7f72154f
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Background.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+ "images" : [
+ {
+ "idiom" : "universal",
+ "filename" : "Background.png",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "filename" : "Background@2x.png",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "filename" : "Background@3x.png",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "version" : 1,
+ "author" : "xcode"
+ }
+}
\ No newline at end of file
diff --git a/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Contents.json b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..da4a164c918651cdd1e11dca5cc62c333f097601
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "version" : 1,
+ "author" : "xcode"
+ }
+}
\ No newline at end of file
diff --git a/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Continue.imageset/Contents.json b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Continue.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..5cc99d17606a8ab2894fdafabf1e6c214ccfc864
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Continue.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+ "images" : [
+ {
+ "idiom" : "universal",
+ "filename" : "Continue.png",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "filename" : "Continue@2x.png",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "filename" : "Continue@3x.png",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "version" : 1,
+ "author" : "xcode"
+ }
+}
\ No newline at end of file
diff --git a/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Continue.imageset/Continue.png b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Continue.imageset/Continue.png
new file mode 100644
index 0000000000000000000000000000000000000000..1a001517c3920510fd887d5007396b39df286298
Binary files /dev/null and b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Continue.imageset/Continue.png differ
diff --git a/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Continue.imageset/Continue@2x.png b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Continue.imageset/Continue@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..3c84db8d31654cfd97d15ed6eb5d4340ea2a688d
Binary files /dev/null and b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Continue.imageset/Continue@2x.png differ
diff --git a/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Continue.imageset/Continue@3x.png b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Continue.imageset/Continue@3x.png
new file mode 100644
index 0000000000000000000000000000000000000000..494cabbaeccc56ccb57d7632ff4cd74773f76849
Binary files /dev/null and b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Continue.imageset/Continue@3x.png differ
diff --git a/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Rectangle.imageset/Contents.json b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Rectangle.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..cc25bf21abc17d05cc0c54a61bec9d47b8bca727
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Rectangle.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+ "images" : [
+ {
+ "idiom" : "universal",
+ "filename" : "Rectangle.png",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "filename" : "Rectangle@2x.png",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "filename" : "Rectangle@3x.png",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "version" : 1,
+ "author" : "xcode"
+ }
+}
\ No newline at end of file
diff --git a/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Rectangle.imageset/Rectangle.png b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Rectangle.imageset/Rectangle.png
new file mode 100644
index 0000000000000000000000000000000000000000..2c43ca75e56fff66a8502d60c0b7b42cfbe42787
Binary files /dev/null and b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Rectangle.imageset/Rectangle.png differ
diff --git a/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Rectangle.imageset/Rectangle@2x.png b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Rectangle.imageset/Rectangle@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..75b136baf6fefefef934b66c796e6df57f3fa57c
Binary files /dev/null and b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Rectangle.imageset/Rectangle@2x.png differ
diff --git a/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Rectangle.imageset/Rectangle@3x.png b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Rectangle.imageset/Rectangle@3x.png
new file mode 100644
index 0000000000000000000000000000000000000000..808f7a03df6ad1f5cf89705da66e1f2aa38150d5
Binary files /dev/null and b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Rectangle.imageset/Rectangle@3x.png differ
diff --git a/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Sub-Background.imageset/Contents.json b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Sub-Background.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..483e840b69ebbfac55aab7b27fd67cb30809a5f7
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Sub-Background.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+ "images" : [
+ {
+ "idiom" : "universal",
+ "filename" : "Sub-Background.png",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "filename" : "Sub-Background@2x.png",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "filename" : "Sub-Background@3x.png",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "version" : 1,
+ "author" : "xcode"
+ }
+}
\ No newline at end of file
diff --git a/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Sub-Background.imageset/Sub-Background.png b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Sub-Background.imageset/Sub-Background.png
new file mode 100644
index 0000000000000000000000000000000000000000..fa56a22d35f6c8c637dd48d234b6a9fc7d85aec6
Binary files /dev/null and b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Sub-Background.imageset/Sub-Background.png differ
diff --git a/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Sub-Background.imageset/Sub-Background@2x.png b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Sub-Background.imageset/Sub-Background@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..d6ff9383709c0415c3f1280672652021e8d503eb
Binary files /dev/null and b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Sub-Background.imageset/Sub-Background@2x.png differ
diff --git a/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Sub-Background.imageset/Sub-Background@3x.png b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Sub-Background.imageset/Sub-Background@3x.png
new file mode 100644
index 0000000000000000000000000000000000000000..74539f68b1cbe54f2cd6137b5390601d44e13b77
Binary files /dev/null and b/Project/MoreFreeTime/MoreFreeTime/Assets.xcassets/Sub-Background.imageset/Sub-Background@3x.png differ
diff --git a/Project/MoreFreeTime/MoreFreeTime/Base.lproj/AddEvent~.storyboard b/Project/MoreFreeTime/MoreFreeTime/Base.lproj/AddEvent~.storyboard
new file mode 100644
index 0000000000000000000000000000000000000000..bf3c050867815df4c884fad4e91c36bca52b4569
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime/Base.lproj/AddEvent~.storyboard
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
+ <device id="retina4_7" orientation="portrait">
+ <adaptation id="fullscreen"/>
+ </device>
+ <dependencies>
+ <deployment identifier="iOS"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14460.20"/>
+ <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+ <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+ </dependencies>
+ <scenes>
+ <!--View Controller-->
+ <scene sceneID="tne-QT-ifu">
+ <objects>
+ <viewController id="BYZ-38-t0r" customClass="ViewController" customModule="MoreFreeTime" customModuleProvider="target" sceneMemberID="viewController">
+ <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
+ <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+ <subviews>
+ <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Background" adjustsImageSizeForAccessibilityContentSizeCategory="YES" translatesAutoresizingMaskIntoConstraints="NO" id="G7e-bO-7dF">
+ <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+ </imageView>
+ <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Sub-Background" adjustsImageSizeForAccessibilityContentSizeCategory="YES" translatesAutoresizingMaskIntoConstraints="NO" id="oJa-zg-vsj">
+ <rect key="frame" x="0.0" y="0.0" width="375" height="687"/>
+ </imageView>
+ <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Continue" adjustsImageSizeForAccessibilityContentSizeCategory="YES" translatesAutoresizingMaskIntoConstraints="NO" id="KJk-Rm-yfA">
+ <rect key="frame" x="53.5" y="158" width="268" height="489"/>
+ <constraints>
+ <constraint firstAttribute="width" secondItem="KJk-Rm-yfA" secondAttribute="height" multiplier="268:489" id="CSt-Zv-Yxk"/>
+ </constraints>
+ </imageView>
+ <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" hasAttributedTitle="YES" translatesAutoresizingMaskIntoConstraints="NO" id="eSU-9y-L3a" userLabel="ContinueButton">
+ <rect key="frame" x="172.5" y="238" width="30" height="211"/>
+ <state key="normal">
+ <attributedString key="attributedTitle"/>
+ </state>
+ <connections>
+ <segue destination="afp-MA-Jf4" kind="presentation" modalTransitionStyle="crossDissolve" id="Ndu-wP-c3X"/>
+ </connections>
+ </button>
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="More Free Time" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6Yw-mM-5Z0">
+ <rect key="frame" x="106" y="231" width="187" height="76"/>
+ <constraints>
+ <constraint firstAttribute="height" constant="76" id="fR4-UC-rAP"/>
+ </constraints>
+ <fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
+ <nil key="textColor"/>
+ <nil key="highlightedColor"/>
+ </label>
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Insert More text Here" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vFR-s4-Fgh">
+ <rect key="frame" x="106" y="305" width="163" height="21"/>
+ <fontDescription key="fontDescription" type="system" pointSize="17"/>
+ <nil key="textColor"/>
+ <nil key="highlightedColor"/>
+ </label>
+ </subviews>
+ <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+ <constraints>
+ <constraint firstItem="vFR-s4-Fgh" firstAttribute="leading" secondItem="6Yw-mM-5Z0" secondAttribute="leading" id="8Mh-9J-TVE"/>
+ <constraint firstItem="KJk-Rm-yfA" firstAttribute="centerX" secondItem="eSU-9y-L3a" secondAttribute="centerX" id="Cpv-RI-aiG"/>
+ <constraint firstItem="G7e-bO-7dF" firstAttribute="leading" secondItem="6Tk-OE-BBY" secondAttribute="leading" id="DMj-cg-P8h"/>
+ <constraint firstItem="oJa-zg-vsj" firstAttribute="centerX" secondItem="8bC-Xf-vdC" secondAttribute="centerX" id="EHe-zD-6ra"/>
+ <constraint firstItem="oJa-zg-vsj" firstAttribute="centerX" secondItem="6Tk-OE-BBY" secondAttribute="centerX" id="HZz-Ta-wmu"/>
+ <constraint firstItem="6Tk-OE-BBY" firstAttribute="bottom" secondItem="eSU-9y-L3a" secondAttribute="bottom" constant="218" id="LuG-Nv-vmx"/>
+ <constraint firstItem="6Yw-mM-5Z0" firstAttribute="top" secondItem="6Tk-OE-BBY" secondAttribute="top" constant="211" id="Pnk-D3-C5f"/>
+ <constraint firstItem="KJk-Rm-yfA" firstAttribute="centerX" secondItem="vFR-s4-Fgh" secondAttribute="centerX" id="Q1g-j9-UHm"/>
+ <constraint firstItem="oJa-zg-vsj" firstAttribute="trailing" secondItem="6Tk-OE-BBY" secondAttribute="trailing" id="Q82-l6-26X"/>
+ <constraint firstItem="eSU-9y-L3a" firstAttribute="centerY" secondItem="6Tk-OE-BBY" secondAttribute="centerY" id="T5F-Ng-zSE"/>
+ <constraint firstItem="G7e-bO-7dF" firstAttribute="centerX" secondItem="8bC-Xf-vdC" secondAttribute="centerX" id="TJe-TF-geJ"/>
+ <constraint firstItem="G7e-bO-7dF" firstAttribute="top" secondItem="oJa-zg-vsj" secondAttribute="top" id="WIH-vJ-dzi"/>
+ <constraint firstAttribute="bottom" secondItem="G7e-bO-7dF" secondAttribute="bottom" id="c6g-zq-htS"/>
+ <constraint firstItem="oJa-zg-vsj" firstAttribute="top" secondItem="8bC-Xf-vdC" secondAttribute="top" id="g9N-2A-3Ne"/>
+ <constraint firstItem="oJa-zg-vsj" firstAttribute="leading" secondItem="6Tk-OE-BBY" secondAttribute="leading" id="i1E-y0-LzD"/>
+ <constraint firstItem="G7e-bO-7dF" firstAttribute="trailing" secondItem="6Tk-OE-BBY" secondAttribute="trailing" id="i4W-tU-hxN"/>
+ <constraint firstItem="oJa-zg-vsj" firstAttribute="centerY" secondItem="6Tk-OE-BBY" secondAttribute="centerY" id="jha-iN-4U5"/>
+ <constraint firstItem="oJa-zg-vsj" firstAttribute="width" secondItem="G7e-bO-7dF" secondAttribute="width" id="kJs-gI-alj"/>
+ <constraint firstAttribute="bottom" secondItem="KJk-Rm-yfA" secondAttribute="bottom" constant="20" symbolic="YES" id="qxl-jW-vOq"/>
+ <constraint firstItem="6Tk-OE-BBY" firstAttribute="trailing" secondItem="6Yw-mM-5Z0" secondAttribute="trailing" constant="82" id="rgB-aD-Ndj"/>
+ <constraint firstItem="KJk-Rm-yfA" firstAttribute="centerX" secondItem="oJa-zg-vsj" secondAttribute="centerX" id="sTE-p3-ACT"/>
+ <constraint firstItem="vFR-s4-Fgh" firstAttribute="top" secondItem="6Tk-OE-BBY" secondAttribute="top" constant="285" id="sdg-ZN-sOv"/>
+ <constraint firstItem="G7e-bO-7dF" firstAttribute="centerX" secondItem="6Tk-OE-BBY" secondAttribute="centerX" id="xdk-GY-gJh"/>
+ <constraint firstItem="KJk-Rm-yfA" firstAttribute="top" secondItem="6Tk-OE-BBY" secondAttribute="top" constant="138" id="yeu-N3-f8Y"/>
+ </constraints>
+ <viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
+ </view>
+ </viewController>
+ <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
+ </objects>
+ <point key="canvasLocation" x="56.799999999999997" y="27.436281859070466"/>
+ </scene>
+ <!--Schedule Controller View Controller-->
+ <scene sceneID="N37-Mv-0VY">
+ <objects>
+ <viewController id="afp-MA-Jf4" customClass="ScheduleControllerViewController" customModule="MoreFreeTime" customModuleProvider="target" sceneMemberID="viewController">
+ <view key="view" contentMode="scaleToFill" id="h3Y-mA-cnR">
+ <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+ <subviews>
+ <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" misplaced="YES" indicatorStyle="white" translatesAutoresizingMaskIntoConstraints="NO" id="ts3-e4-XO7" userLabel="CurrentEvents">
+ <rect key="frame" x="0.0" y="194" width="375" height="473"/>
+ <color key="backgroundColor" red="0.99999600649999998" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+ </scrollView>
+ <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bpq-2p-uSL">
+ <rect key="frame" x="217" y="114" width="95" height="30"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <state key="normal" title="TestAddevent"/>
+ <connections>
+ <segue destination="Xaa-n3-v23" kind="show" id="0hx-i8-Shp"/>
+ </connections>
+ </button>
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="This will be the date" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tu9-tH-P3a" userLabel="Date">
+ <rect key="frame" x="0.0" y="20" width="375" height="19.5"/>
+ <fontDescription key="fontDescription" type="system" pointSize="16"/>
+ <nil key="textColor"/>
+ <nil key="highlightedColor"/>
+ </label>
+ </subviews>
+ <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+ <constraints>
+ <constraint firstItem="tu9-tH-P3a" firstAttribute="trailing" secondItem="GiH-Wd-ha1" secondAttribute="trailing" id="9MA-6Q-Uuq"/>
+ <constraint firstItem="ts3-e4-XO7" firstAttribute="trailing" secondItem="GiH-Wd-ha1" secondAttribute="trailing" id="ADy-ep-hbv"/>
+ <constraint firstItem="ts3-e4-XO7" firstAttribute="leading" secondItem="GiH-Wd-ha1" secondAttribute="leading" id="IJG-DL-Pqr"/>
+ <constraint firstItem="ts3-e4-XO7" firstAttribute="leading" secondItem="GiH-Wd-ha1" secondAttribute="leading" id="bfX-57-CRf"/>
+ <constraint firstItem="ts3-e4-XO7" firstAttribute="top" secondItem="tu9-tH-P3a" secondAttribute="bottom" constant="10" id="fgz-2h-8UQ"/>
+ <constraint firstItem="ts3-e4-XO7" firstAttribute="trailing" secondItem="GiH-Wd-ha1" secondAttribute="trailing" id="mep-QW-paE"/>
+ <constraint firstItem="ts3-e4-XO7" firstAttribute="bottom" secondItem="GiH-Wd-ha1" secondAttribute="bottom" id="pCE-Fl-BTc"/>
+ <constraint firstItem="ts3-e4-XO7" firstAttribute="bottom" secondItem="GiH-Wd-ha1" secondAttribute="bottom" id="qIK-NQ-GY8"/>
+ <constraint firstItem="tu9-tH-P3a" firstAttribute="top" secondItem="GiH-Wd-ha1" secondAttribute="top" id="sAv-hw-h4b"/>
+ <constraint firstItem="tu9-tH-P3a" firstAttribute="leading" secondItem="GiH-Wd-ha1" secondAttribute="leading" id="tLX-ri-vNq"/>
+ </constraints>
+ <viewLayoutGuide key="safeArea" id="GiH-Wd-ha1"/>
+ </view>
+ <connections>
+ <outlet property="dateLabel" destination="tu9-tH-P3a" id="oCa-KY-HG8"/>
+ </connections>
+ </viewController>
+ <placeholder placeholderIdentifier="IBFirstResponder" id="S8E-yW-erd" userLabel="First Responder" sceneMemberID="firstResponder"/>
+ </objects>
+ <point key="canvasLocation" x="1016.8" y="26.53673163418291"/>
+ </scene>
+ <!--Add Event View Controller-->
+ <scene sceneID="5yd-5B-PEN">
+ <objects>
+ <viewController id="Xaa-n3-v23" customClass="AddEventViewController" customModule="MoreFreeTime" customModuleProvider="target" sceneMemberID="viewController">
+ <view key="view" contentMode="scaleToFill" id="pB3-ag-7As">
+ <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+ <subviews>
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Add Event" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ad9-4e-H4r">
+ <rect key="frame" x="16" y="20" width="119" height="50"/>
+ <fontDescription key="fontDescription" type="system" pointSize="24"/>
+ <nil key="textColor"/>
+ <nil key="highlightedColor"/>
+ </label>
+ <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="HEF-XX-rIp">
+ <rect key="frame" x="198" y="30" width="48" height="30"/>
+ <state key="normal" title="Cancel"/>
+ <connections>
+ <segue destination="afp-MA-Jf4" kind="show" id="rKO-XD-6LG"/>
+ </connections>
+ </button>
+ <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="KWj-Hi-Rnv">
+ <rect key="frame" x="302" y="30" width="34" height="30"/>
+ <state key="normal" title="Save"/>
+ </button>
+ <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" ambiguous="YES" translatesAutoresizingMaskIntoConstraints="NO" id="X5h-HB-tcS">
+ <rect key="frame" x="0.0" y="68" width="375" height="599"/>
+ <subviews>
+ <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="Enter Name" borderStyle="roundedRect" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="gfC-Uh-EbM">
+ <rect key="frame" x="30" y="8" width="315" height="30"/>
+ <nil key="textColor"/>
+ <fontDescription key="fontDescription" type="system" pointSize="14"/>
+ <textInputTraits key="textInputTraits"/>
+ </textField>
+ <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="m9H-AV-om5">
+ <rect key="frame" x="179" y="128" width="71" height="86"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <state key="normal" title="Date/Time"/>
+ <connections>
+ <segue destination="4v5-iv-SDA" kind="presentation" modalPresentationStyle="overCurrentContext" id="4c5-lg-m6r"/>
+ </connections>
+ </button>
+ </subviews>
+ <constraints>
+ <constraint firstItem="gfC-Uh-EbM" firstAttribute="centerX" secondItem="X5h-HB-tcS" secondAttribute="centerX" id="B3B-mX-pcK"/>
+ <constraint firstAttribute="trailing" secondItem="gfC-Uh-EbM" secondAttribute="trailing" constant="30" id="bMp-3I-EIy"/>
+ <constraint firstItem="gfC-Uh-EbM" firstAttribute="top" secondItem="X5h-HB-tcS" secondAttribute="topMargin" id="pj9-o3-urF"/>
+ <constraint firstItem="gfC-Uh-EbM" firstAttribute="leading" secondItem="X5h-HB-tcS" secondAttribute="leading" constant="30" id="xpI-Xr-B6Z"/>
+ </constraints>
+ </scrollView>
+ </subviews>
+ <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+ <constraints>
+ <constraint firstItem="X5h-HB-tcS" firstAttribute="top" secondItem="KWj-Hi-Rnv" secondAttribute="bottom" constant="8" symbolic="YES" id="2Ok-sS-1OA"/>
+ <constraint firstItem="fRM-dQ-mZi" firstAttribute="trailing" secondItem="ad9-4e-H4r" secondAttribute="trailing" constant="240" id="8UR-Qb-VC6"/>
+ <constraint firstItem="HEF-XX-rIp" firstAttribute="leading" secondItem="ad9-4e-H4r" secondAttribute="trailing" constant="63" id="98F-it-D1b"/>
+ <constraint firstItem="KWj-Hi-Rnv" firstAttribute="leading" secondItem="HEF-XX-rIp" secondAttribute="trailing" constant="56" id="C3W-Bc-nE5"/>
+ <constraint firstItem="X5h-HB-tcS" firstAttribute="leading" secondItem="pB3-ag-7As" secondAttribute="leading" id="CGN-in-2NT"/>
+ <constraint firstItem="fRM-dQ-mZi" firstAttribute="bottom" secondItem="ad9-4e-H4r" secondAttribute="bottom" constant="597" id="JAb-VH-sgW"/>
+ <constraint firstItem="ad9-4e-H4r" firstAttribute="leading" secondItem="fRM-dQ-mZi" secondAttribute="leading" constant="16" id="ShX-sD-uTY"/>
+ <constraint firstItem="X5h-HB-tcS" firstAttribute="bottom" secondItem="fRM-dQ-mZi" secondAttribute="bottom" id="g1X-Ez-4TG"/>
+ <constraint firstItem="X5h-HB-tcS" firstAttribute="top" secondItem="pB3-ag-7As" secondAttribute="top" constant="68" id="hjB-9x-pGv"/>
+ <constraint firstAttribute="trailing" secondItem="X5h-HB-tcS" secondAttribute="trailing" id="pEa-FG-cSZ"/>
+ <constraint firstItem="X5h-HB-tcS" firstAttribute="top" secondItem="HEF-XX-rIp" secondAttribute="bottom" constant="8" symbolic="YES" id="sTy-gD-4Ks"/>
+ <constraint firstItem="ad9-4e-H4r" firstAttribute="top" secondItem="fRM-dQ-mZi" secondAttribute="top" id="vWz-Mn-cSU"/>
+ </constraints>
+ <viewLayoutGuide key="safeArea" id="fRM-dQ-mZi"/>
+ </view>
+ </viewController>
+ <placeholder placeholderIdentifier="IBFirstResponder" id="AOH-2q-Yt5" userLabel="First Responder" sceneMemberID="firstResponder"/>
+ </objects>
+ <point key="canvasLocation" x="2100" y="26.53673163418291"/>
+ </scene>
+ <!--DatePopup-->
+ <scene sceneID="Rwh-EU-gFF">
+ <objects>
+ <viewControllerPlaceholder storyboardName="DatePopup" id="4v5-iv-SDA" sceneMemberID="viewController"/>
+ <placeholder placeholderIdentifier="IBFirstResponder" id="DHl-bJ-RhP" userLabel="First Responder" sceneMemberID="firstResponder"/>
+ </objects>
+ <point key="canvasLocation" x="3113" y="27"/>
+ </scene>
+ </scenes>
+ <resources>
+ <image name="Background" width="375" height="667"/>
+ <image name="Continue" width="375" height="667"/>
+ <image name="Sub-Background" width="375" height="667"/>
+ </resources>
+ <inferredMetricsTieBreakers>
+ <segue reference="rKO-XD-6LG"/>
+ </inferredMetricsTieBreakers>
+</document>
diff --git a/Project/MoreFreeTime/MoreFreeTime/Base.lproj/DatePopup~.storyboard b/Project/MoreFreeTime/MoreFreeTime/Base.lproj/DatePopup~.storyboard
new file mode 100644
index 0000000000000000000000000000000000000000..e23beb2d7809b8a535c6ad7c3ed6ddcac1f7d51a
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime/Base.lproj/DatePopup~.storyboard
@@ -0,0 +1,276 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
+ <device id="retina4_7" orientation="portrait">
+ <adaptation id="fullscreen"/>
+ </device>
+ <dependencies>
+ <deployment identifier="iOS"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14460.20"/>
+ <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+ <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+ </dependencies>
+ <scenes>
+ <!--View Controller-->
+ <scene sceneID="tne-QT-ifu">
+ <objects>
+ <viewController id="BYZ-38-t0r" customClass="ViewController" customModule="MoreFreeTime" customModuleProvider="target" sceneMemberID="viewController">
+ <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
+ <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+ <subviews>
+ <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Background" adjustsImageSizeForAccessibilityContentSizeCategory="YES" translatesAutoresizingMaskIntoConstraints="NO" id="G7e-bO-7dF">
+ <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+ </imageView>
+ <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Sub-Background" adjustsImageSizeForAccessibilityContentSizeCategory="YES" translatesAutoresizingMaskIntoConstraints="NO" id="oJa-zg-vsj">
+ <rect key="frame" x="0.0" y="0.0" width="375" height="687"/>
+ </imageView>
+ <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Continue" adjustsImageSizeForAccessibilityContentSizeCategory="YES" translatesAutoresizingMaskIntoConstraints="NO" id="KJk-Rm-yfA">
+ <rect key="frame" x="53.5" y="158" width="268" height="489"/>
+ <constraints>
+ <constraint firstAttribute="width" secondItem="KJk-Rm-yfA" secondAttribute="height" multiplier="268:489" id="CSt-Zv-Yxk"/>
+ </constraints>
+ </imageView>
+ <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" hasAttributedTitle="YES" translatesAutoresizingMaskIntoConstraints="NO" id="eSU-9y-L3a" userLabel="ContinueButton">
+ <rect key="frame" x="172.5" y="238" width="30" height="211"/>
+ <state key="normal">
+ <attributedString key="attributedTitle"/>
+ </state>
+ <connections>
+ <segue destination="afp-MA-Jf4" kind="presentation" modalTransitionStyle="crossDissolve" id="Ndu-wP-c3X"/>
+ </connections>
+ </button>
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="More Free Time" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6Yw-mM-5Z0">
+ <rect key="frame" x="106" y="231" width="187" height="76"/>
+ <constraints>
+ <constraint firstAttribute="height" constant="76" id="fR4-UC-rAP"/>
+ </constraints>
+ <fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
+ <nil key="textColor"/>
+ <nil key="highlightedColor"/>
+ </label>
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Insert More text Here" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vFR-s4-Fgh">
+ <rect key="frame" x="106" y="305" width="163" height="21"/>
+ <fontDescription key="fontDescription" type="system" pointSize="17"/>
+ <nil key="textColor"/>
+ <nil key="highlightedColor"/>
+ </label>
+ </subviews>
+ <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+ <constraints>
+ <constraint firstItem="vFR-s4-Fgh" firstAttribute="leading" secondItem="6Yw-mM-5Z0" secondAttribute="leading" id="8Mh-9J-TVE"/>
+ <constraint firstItem="KJk-Rm-yfA" firstAttribute="centerX" secondItem="eSU-9y-L3a" secondAttribute="centerX" id="Cpv-RI-aiG"/>
+ <constraint firstItem="G7e-bO-7dF" firstAttribute="leading" secondItem="6Tk-OE-BBY" secondAttribute="leading" id="DMj-cg-P8h"/>
+ <constraint firstItem="oJa-zg-vsj" firstAttribute="centerX" secondItem="8bC-Xf-vdC" secondAttribute="centerX" id="EHe-zD-6ra"/>
+ <constraint firstItem="oJa-zg-vsj" firstAttribute="centerX" secondItem="6Tk-OE-BBY" secondAttribute="centerX" id="HZz-Ta-wmu"/>
+ <constraint firstItem="6Tk-OE-BBY" firstAttribute="bottom" secondItem="eSU-9y-L3a" secondAttribute="bottom" constant="218" id="LuG-Nv-vmx"/>
+ <constraint firstItem="6Yw-mM-5Z0" firstAttribute="top" secondItem="6Tk-OE-BBY" secondAttribute="top" constant="211" id="Pnk-D3-C5f"/>
+ <constraint firstItem="KJk-Rm-yfA" firstAttribute="centerX" secondItem="vFR-s4-Fgh" secondAttribute="centerX" id="Q1g-j9-UHm"/>
+ <constraint firstItem="oJa-zg-vsj" firstAttribute="trailing" secondItem="6Tk-OE-BBY" secondAttribute="trailing" id="Q82-l6-26X"/>
+ <constraint firstItem="eSU-9y-L3a" firstAttribute="centerY" secondItem="6Tk-OE-BBY" secondAttribute="centerY" id="T5F-Ng-zSE"/>
+ <constraint firstItem="G7e-bO-7dF" firstAttribute="centerX" secondItem="8bC-Xf-vdC" secondAttribute="centerX" id="TJe-TF-geJ"/>
+ <constraint firstItem="G7e-bO-7dF" firstAttribute="top" secondItem="oJa-zg-vsj" secondAttribute="top" id="WIH-vJ-dzi"/>
+ <constraint firstAttribute="bottom" secondItem="G7e-bO-7dF" secondAttribute="bottom" id="c6g-zq-htS"/>
+ <constraint firstItem="oJa-zg-vsj" firstAttribute="top" secondItem="8bC-Xf-vdC" secondAttribute="top" id="g9N-2A-3Ne"/>
+ <constraint firstItem="oJa-zg-vsj" firstAttribute="leading" secondItem="6Tk-OE-BBY" secondAttribute="leading" id="i1E-y0-LzD"/>
+ <constraint firstItem="G7e-bO-7dF" firstAttribute="trailing" secondItem="6Tk-OE-BBY" secondAttribute="trailing" id="i4W-tU-hxN"/>
+ <constraint firstItem="oJa-zg-vsj" firstAttribute="centerY" secondItem="6Tk-OE-BBY" secondAttribute="centerY" id="jha-iN-4U5"/>
+ <constraint firstItem="oJa-zg-vsj" firstAttribute="width" secondItem="G7e-bO-7dF" secondAttribute="width" id="kJs-gI-alj"/>
+ <constraint firstAttribute="bottom" secondItem="KJk-Rm-yfA" secondAttribute="bottom" constant="20" symbolic="YES" id="qxl-jW-vOq"/>
+ <constraint firstItem="6Tk-OE-BBY" firstAttribute="trailing" secondItem="6Yw-mM-5Z0" secondAttribute="trailing" constant="82" id="rgB-aD-Ndj"/>
+ <constraint firstItem="KJk-Rm-yfA" firstAttribute="centerX" secondItem="oJa-zg-vsj" secondAttribute="centerX" id="sTE-p3-ACT"/>
+ <constraint firstItem="vFR-s4-Fgh" firstAttribute="top" secondItem="6Tk-OE-BBY" secondAttribute="top" constant="285" id="sdg-ZN-sOv"/>
+ <constraint firstItem="G7e-bO-7dF" firstAttribute="centerX" secondItem="6Tk-OE-BBY" secondAttribute="centerX" id="xdk-GY-gJh"/>
+ <constraint firstItem="KJk-Rm-yfA" firstAttribute="top" secondItem="6Tk-OE-BBY" secondAttribute="top" constant="138" id="yeu-N3-f8Y"/>
+ </constraints>
+ <viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
+ </view>
+ </viewController>
+ <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
+ </objects>
+ <point key="canvasLocation" x="56.799999999999997" y="27.436281859070466"/>
+ </scene>
+ <!--Schedule Controller View Controller-->
+ <scene sceneID="N37-Mv-0VY">
+ <objects>
+ <viewController id="afp-MA-Jf4" customClass="ScheduleControllerViewController" customModule="MoreFreeTime" customModuleProvider="target" sceneMemberID="viewController">
+ <view key="view" contentMode="scaleToFill" id="h3Y-mA-cnR">
+ <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+ <subviews>
+ <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" misplaced="YES" indicatorStyle="white" translatesAutoresizingMaskIntoConstraints="NO" id="ts3-e4-XO7" userLabel="CurrentEvents">
+ <rect key="frame" x="0.0" y="194" width="375" height="473"/>
+ <color key="backgroundColor" red="0.99999600649999998" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+ </scrollView>
+ <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bpq-2p-uSL">
+ <rect key="frame" x="217" y="114" width="95" height="30"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <state key="normal" title="TestAddevent"/>
+ <connections>
+ <segue destination="Xaa-n3-v23" kind="show" id="0hx-i8-Shp"/>
+ </connections>
+ </button>
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="This will be the date" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tu9-tH-P3a" userLabel="Date">
+ <rect key="frame" x="0.0" y="20" width="375" height="19.5"/>
+ <fontDescription key="fontDescription" type="system" pointSize="16"/>
+ <nil key="textColor"/>
+ <nil key="highlightedColor"/>
+ </label>
+ </subviews>
+ <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+ <constraints>
+ <constraint firstItem="tu9-tH-P3a" firstAttribute="trailing" secondItem="GiH-Wd-ha1" secondAttribute="trailing" id="9MA-6Q-Uuq"/>
+ <constraint firstItem="ts3-e4-XO7" firstAttribute="trailing" secondItem="GiH-Wd-ha1" secondAttribute="trailing" id="ADy-ep-hbv"/>
+ <constraint firstItem="ts3-e4-XO7" firstAttribute="leading" secondItem="GiH-Wd-ha1" secondAttribute="leading" id="IJG-DL-Pqr"/>
+ <constraint firstItem="ts3-e4-XO7" firstAttribute="leading" secondItem="GiH-Wd-ha1" secondAttribute="leading" id="bfX-57-CRf"/>
+ <constraint firstItem="ts3-e4-XO7" firstAttribute="top" secondItem="tu9-tH-P3a" secondAttribute="bottom" constant="10" id="fgz-2h-8UQ"/>
+ <constraint firstItem="ts3-e4-XO7" firstAttribute="trailing" secondItem="GiH-Wd-ha1" secondAttribute="trailing" id="mep-QW-paE"/>
+ <constraint firstItem="ts3-e4-XO7" firstAttribute="bottom" secondItem="GiH-Wd-ha1" secondAttribute="bottom" id="pCE-Fl-BTc"/>
+ <constraint firstItem="ts3-e4-XO7" firstAttribute="bottom" secondItem="GiH-Wd-ha1" secondAttribute="bottom" id="qIK-NQ-GY8"/>
+ <constraint firstItem="tu9-tH-P3a" firstAttribute="top" secondItem="GiH-Wd-ha1" secondAttribute="top" id="sAv-hw-h4b"/>
+ <constraint firstItem="tu9-tH-P3a" firstAttribute="leading" secondItem="GiH-Wd-ha1" secondAttribute="leading" id="tLX-ri-vNq"/>
+ </constraints>
+ <viewLayoutGuide key="safeArea" id="GiH-Wd-ha1"/>
+ </view>
+ <connections>
+ <outlet property="dateLabel" destination="tu9-tH-P3a" id="oCa-KY-HG8"/>
+ </connections>
+ </viewController>
+ <placeholder placeholderIdentifier="IBFirstResponder" id="S8E-yW-erd" userLabel="First Responder" sceneMemberID="firstResponder"/>
+ </objects>
+ <point key="canvasLocation" x="1016.8" y="26.53673163418291"/>
+ </scene>
+ <!--Add Event View Controller-->
+ <scene sceneID="5yd-5B-PEN">
+ <objects>
+ <viewController id="Xaa-n3-v23" customClass="AddEventViewController" customModule="MoreFreeTime" customModuleProvider="target" sceneMemberID="viewController">
+ <view key="view" contentMode="scaleToFill" id="pB3-ag-7As">
+ <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+ <subviews>
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Add Event" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ad9-4e-H4r">
+ <rect key="frame" x="16" y="20" width="119" height="50"/>
+ <fontDescription key="fontDescription" type="system" pointSize="24"/>
+ <nil key="textColor"/>
+ <nil key="highlightedColor"/>
+ </label>
+ <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="HEF-XX-rIp">
+ <rect key="frame" x="198" y="30" width="48" height="30"/>
+ <state key="normal" title="Cancel"/>
+ <connections>
+ <segue destination="afp-MA-Jf4" kind="show" id="rKO-XD-6LG"/>
+ </connections>
+ </button>
+ <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="KWj-Hi-Rnv">
+ <rect key="frame" x="302" y="30" width="34" height="30"/>
+ <state key="normal" title="Save"/>
+ </button>
+ <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" ambiguous="YES" translatesAutoresizingMaskIntoConstraints="NO" id="X5h-HB-tcS">
+ <rect key="frame" x="0.0" y="68" width="375" height="599"/>
+ <subviews>
+ <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="Enter Name" borderStyle="roundedRect" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="gfC-Uh-EbM">
+ <rect key="frame" x="30" y="8" width="315" height="30"/>
+ <nil key="textColor"/>
+ <fontDescription key="fontDescription" type="system" pointSize="14"/>
+ <textInputTraits key="textInputTraits"/>
+ </textField>
+ <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="m9H-AV-om5">
+ <rect key="frame" x="179" y="128" width="71" height="86"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <state key="normal" title="Date/Time"/>
+ <connections>
+ <segue destination="DGp-K7-ijf" kind="presentation" modalPresentationStyle="overCurrentContext" id="4c5-lg-m6r"/>
+ </connections>
+ </button>
+ </subviews>
+ <constraints>
+ <constraint firstItem="gfC-Uh-EbM" firstAttribute="centerX" secondItem="X5h-HB-tcS" secondAttribute="centerX" id="B3B-mX-pcK"/>
+ <constraint firstAttribute="trailing" secondItem="gfC-Uh-EbM" secondAttribute="trailing" constant="30" id="bMp-3I-EIy"/>
+ <constraint firstItem="gfC-Uh-EbM" firstAttribute="top" secondItem="X5h-HB-tcS" secondAttribute="topMargin" id="pj9-o3-urF"/>
+ <constraint firstItem="gfC-Uh-EbM" firstAttribute="leading" secondItem="X5h-HB-tcS" secondAttribute="leading" constant="30" id="xpI-Xr-B6Z"/>
+ </constraints>
+ </scrollView>
+ </subviews>
+ <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+ <constraints>
+ <constraint firstItem="X5h-HB-tcS" firstAttribute="top" secondItem="KWj-Hi-Rnv" secondAttribute="bottom" constant="8" symbolic="YES" id="2Ok-sS-1OA"/>
+ <constraint firstItem="fRM-dQ-mZi" firstAttribute="trailing" secondItem="ad9-4e-H4r" secondAttribute="trailing" constant="240" id="8UR-Qb-VC6"/>
+ <constraint firstItem="HEF-XX-rIp" firstAttribute="leading" secondItem="ad9-4e-H4r" secondAttribute="trailing" constant="63" id="98F-it-D1b"/>
+ <constraint firstItem="KWj-Hi-Rnv" firstAttribute="leading" secondItem="HEF-XX-rIp" secondAttribute="trailing" constant="56" id="C3W-Bc-nE5"/>
+ <constraint firstItem="X5h-HB-tcS" firstAttribute="leading" secondItem="pB3-ag-7As" secondAttribute="leading" id="CGN-in-2NT"/>
+ <constraint firstItem="fRM-dQ-mZi" firstAttribute="bottom" secondItem="ad9-4e-H4r" secondAttribute="bottom" constant="597" id="JAb-VH-sgW"/>
+ <constraint firstItem="ad9-4e-H4r" firstAttribute="leading" secondItem="fRM-dQ-mZi" secondAttribute="leading" constant="16" id="ShX-sD-uTY"/>
+ <constraint firstItem="X5h-HB-tcS" firstAttribute="bottom" secondItem="fRM-dQ-mZi" secondAttribute="bottom" id="g1X-Ez-4TG"/>
+ <constraint firstItem="X5h-HB-tcS" firstAttribute="top" secondItem="pB3-ag-7As" secondAttribute="top" constant="68" id="hjB-9x-pGv"/>
+ <constraint firstAttribute="trailing" secondItem="X5h-HB-tcS" secondAttribute="trailing" id="pEa-FG-cSZ"/>
+ <constraint firstItem="X5h-HB-tcS" firstAttribute="top" secondItem="HEF-XX-rIp" secondAttribute="bottom" constant="8" symbolic="YES" id="sTy-gD-4Ks"/>
+ <constraint firstItem="ad9-4e-H4r" firstAttribute="top" secondItem="fRM-dQ-mZi" secondAttribute="top" id="vWz-Mn-cSU"/>
+ </constraints>
+ <viewLayoutGuide key="safeArea" id="fRM-dQ-mZi"/>
+ </view>
+ </viewController>
+ <placeholder placeholderIdentifier="IBFirstResponder" id="AOH-2q-Yt5" userLabel="First Responder" sceneMemberID="firstResponder"/>
+ </objects>
+ <point key="canvasLocation" x="2100" y="26.53673163418291"/>
+ </scene>
+ <!--Date Popup View Controller-->
+ <scene sceneID="6ds-US-qcA">
+ <objects>
+ <viewController id="DGp-K7-ijf" customClass="DatePopupViewController" customModule="MoreFreeTime" customModuleProvider="target" sceneMemberID="viewController">
+ <view key="view" contentMode="scaleToFill" id="7Lb-oC-EcZ">
+ <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+ <subviews>
+ <view contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="f3S-hj-TGT">
+ <rect key="frame" x="49" y="200" width="276" height="246"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <subviews>
+ <datePicker contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" datePickerMode="dateAndTime" minuteInterval="1" translatesAutoresizingMaskIntoConstraints="NO" id="Ky1-TC-CuZ">
+ <rect key="frame" x="0.0" y="46" width="276" height="154"/>
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+ <date key="date" timeIntervalSinceReferenceDate="564885019.95294094">
+ <!--2018-11-26 00:30:19 +0000-->
+ </date>
+ </datePicker>
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="Select Date and Time" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="HkD-cZ-9eH" userLabel="Title">
+ <rect key="frame" x="0.0" y="0.0" width="276" height="47"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <color key="backgroundColor" red="0.0" green="0.47843137250000001" blue="1" alpha="0.75189810739436624" colorSpace="custom" customColorSpace="sRGB"/>
+ <fontDescription key="fontDescription" type="system" pointSize="17"/>
+ <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+ <nil key="highlightedColor"/>
+ </label>
+ <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="IkV-UZ-jMh">
+ <rect key="frame" x="95" y="208" width="86" height="30"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <state key="normal" title="Save"/>
+ <connections>
+ <action selector="clickSave:" destination="DGp-K7-ijf" eventType="touchUpInside" id="hnC-Ud-dFx"/>
+ </connections>
+ </button>
+ </subviews>
+ <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+ </view>
+ </subviews>
+ <color key="backgroundColor" white="0.66666666666666663" alpha="0.5" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+ <viewLayoutGuide key="safeArea" id="aIo-l9-bRG"/>
+ </view>
+ <connections>
+ <outlet property="datePicker" destination="Ky1-TC-CuZ" id="nsR-AG-Tde"/>
+ <outlet property="saveButton" destination="IkV-UZ-jMh" id="PWC-O4-NpE"/>
+ <outlet property="titleLabel" destination="HkD-cZ-9eH" id="PEV-NA-fJz"/>
+ </connections>
+ </viewController>
+ <placeholder placeholderIdentifier="IBFirstResponder" id="eZf-dL-h5T" userLabel="First Responder" sceneMemberID="firstResponder"/>
+ </objects>
+ <point key="canvasLocation" x="3113" y="27"/>
+ </scene>
+ </scenes>
+ <resources>
+ <image name="Background" width="375" height="667"/>
+ <image name="Continue" width="375" height="667"/>
+ <image name="Sub-Background" width="375" height="667"/>
+ </resources>
+ <inferredMetricsTieBreakers>
+ <segue reference="rKO-XD-6LG"/>
+ </inferredMetricsTieBreakers>
+</document>
diff --git a/Project/MoreFreeTime/MoreFreeTime/Base.lproj/LaunchScreen.storyboard b/Project/MoreFreeTime/MoreFreeTime/Base.lproj/LaunchScreen.storyboard
new file mode 100644
index 0000000000000000000000000000000000000000..cfdd2d3c3e0834b6afc1566f567ea580ae31a62e
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime/Base.lproj/LaunchScreen.storyboard
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
+ <device id="retina4_7" orientation="portrait">
+ <adaptation id="fullscreen"/>
+ </device>
+ <dependencies>
+ <deployment identifier="iOS"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14460.20"/>
+ <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+ <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+ </dependencies>
+ <scenes>
+ <!--View Controller-->
+ <scene sceneID="EHf-IW-A2E">
+ <objects>
+ <viewController id="01J-lp-oVM" sceneMemberID="viewController">
+ <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
+ <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+ <subviews>
+ <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="Background" translatesAutoresizingMaskIntoConstraints="NO" id="FQp-9N-7f2">
+ <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ </imageView>
+ </subviews>
+ <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+ <viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
+ </view>
+ </viewController>
+ <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
+ </objects>
+ <point key="canvasLocation" x="52" y="374.66266866566718"/>
+ </scene>
+ </scenes>
+ <resources>
+ <image name="Background" width="375" height="667"/>
+ </resources>
+</document>
diff --git a/Project/MoreFreeTime/MoreFreeTime/Base.lproj/Main.storyboard b/Project/MoreFreeTime/MoreFreeTime/Base.lproj/Main.storyboard
new file mode 100644
index 0000000000000000000000000000000000000000..0a7c63b1b0992c5bf7a8a993ec92fea3914a0111
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime/Base.lproj/Main.storyboard
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
+ <device id="retina4_7" orientation="portrait">
+ <adaptation id="fullscreen"/>
+ </device>
+ <dependencies>
+ <deployment identifier="iOS"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14460.20"/>
+ <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+ <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+ </dependencies>
+ <scenes>
+ <!--View Controller-->
+ <scene sceneID="tne-QT-ifu">
+ <objects>
+ <viewController id="BYZ-38-t0r" customClass="ViewController" customModule="MoreFreeTime" customModuleProvider="target" sceneMemberID="viewController">
+ <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
+ <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+ <subviews>
+ <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Background" adjustsImageSizeForAccessibilityContentSizeCategory="YES" translatesAutoresizingMaskIntoConstraints="NO" id="G7e-bO-7dF">
+ <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+ </imageView>
+ <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Sub-Background" adjustsImageSizeForAccessibilityContentSizeCategory="YES" translatesAutoresizingMaskIntoConstraints="NO" id="oJa-zg-vsj">
+ <rect key="frame" x="0.0" y="0.0" width="375" height="687"/>
+ </imageView>
+ <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Continue" adjustsImageSizeForAccessibilityContentSizeCategory="YES" translatesAutoresizingMaskIntoConstraints="NO" id="KJk-Rm-yfA">
+ <rect key="frame" x="53.5" y="158" width="268" height="489"/>
+ <constraints>
+ <constraint firstAttribute="width" secondItem="KJk-Rm-yfA" secondAttribute="height" multiplier="268:489" id="CSt-Zv-Yxk"/>
+ </constraints>
+ </imageView>
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="More Free Time" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vFR-s4-Fgh">
+ <rect key="frame" x="104" y="238" width="167" height="30"/>
+ <fontDescription key="fontDescription" type="system" pointSize="25"/>
+ <nil key="textColor"/>
+ <nil key="highlightedColor"/>
+ </label>
+ <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" editable="NO" text="Learn to budget your time more effectively!" textAlignment="natural" translatesAutoresizingMaskIntoConstraints="NO" id="6cf-NZ-4Z6">
+ <rect key="frame" x="96" y="276" width="182" height="113"/>
+ <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+ <fontDescription key="fontDescription" type="system" pointSize="22"/>
+ <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
+ </textView>
+ <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" hasAttributedTitle="YES" translatesAutoresizingMaskIntoConstraints="NO" id="eSU-9y-L3a" userLabel="ContinueButton">
+ <rect key="frame" x="115" y="419" width="144" height="30"/>
+ <state key="normal">
+ <attributedString key="attributedTitle"/>
+ </state>
+ <connections>
+ <segue destination="GBq-lu-OIv" kind="show" id="Mbd-gt-juR"/>
+ </connections>
+ </button>
+ </subviews>
+ <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+ <constraints>
+ <constraint firstItem="6Tk-OE-BBY" firstAttribute="bottom" secondItem="6cf-NZ-4Z6" secondAttribute="bottom" constant="278" id="6PW-wK-SMG"/>
+ <constraint firstItem="G7e-bO-7dF" firstAttribute="leading" secondItem="6Tk-OE-BBY" secondAttribute="leading" id="DMj-cg-P8h"/>
+ <constraint firstItem="oJa-zg-vsj" firstAttribute="centerX" secondItem="8bC-Xf-vdC" secondAttribute="centerX" id="EHe-zD-6ra"/>
+ <constraint firstItem="eSU-9y-L3a" firstAttribute="centerX" secondItem="6cf-NZ-4Z6" secondAttribute="centerX" id="GCG-R8-g7k"/>
+ <constraint firstItem="oJa-zg-vsj" firstAttribute="centerX" secondItem="6Tk-OE-BBY" secondAttribute="centerX" id="HZz-Ta-wmu"/>
+ <constraint firstItem="6cf-NZ-4Z6" firstAttribute="top" secondItem="vFR-s4-Fgh" secondAttribute="bottom" constant="8" id="Hhu-li-whA"/>
+ <constraint firstItem="KJk-Rm-yfA" firstAttribute="centerX" secondItem="vFR-s4-Fgh" secondAttribute="centerX" id="Q1g-j9-UHm"/>
+ <constraint firstItem="oJa-zg-vsj" firstAttribute="trailing" secondItem="6Tk-OE-BBY" secondAttribute="trailing" id="Q82-l6-26X"/>
+ <constraint firstItem="G7e-bO-7dF" firstAttribute="centerX" secondItem="8bC-Xf-vdC" secondAttribute="centerX" id="TJe-TF-geJ"/>
+ <constraint firstItem="eSU-9y-L3a" firstAttribute="leading" secondItem="6Tk-OE-BBY" secondAttribute="leading" constant="115" id="Tj5-8R-7XG"/>
+ <constraint firstItem="G7e-bO-7dF" firstAttribute="top" secondItem="oJa-zg-vsj" secondAttribute="top" id="WIH-vJ-dzi"/>
+ <constraint firstAttribute="bottom" secondItem="G7e-bO-7dF" secondAttribute="bottom" id="c6g-zq-htS"/>
+ <constraint firstItem="oJa-zg-vsj" firstAttribute="top" secondItem="8bC-Xf-vdC" secondAttribute="top" id="g9N-2A-3Ne"/>
+ <constraint firstItem="6Tk-OE-BBY" firstAttribute="trailing" secondItem="6cf-NZ-4Z6" secondAttribute="trailing" constant="97" id="g9Y-gR-lHa"/>
+ <constraint firstItem="eSU-9y-L3a" firstAttribute="top" secondItem="6cf-NZ-4Z6" secondAttribute="bottom" constant="30" id="guJ-Ms-v7K"/>
+ <constraint firstItem="oJa-zg-vsj" firstAttribute="leading" secondItem="6Tk-OE-BBY" secondAttribute="leading" id="i1E-y0-LzD"/>
+ <constraint firstItem="G7e-bO-7dF" firstAttribute="trailing" secondItem="6Tk-OE-BBY" secondAttribute="trailing" id="i4W-tU-hxN"/>
+ <constraint firstItem="oJa-zg-vsj" firstAttribute="centerY" secondItem="6Tk-OE-BBY" secondAttribute="centerY" id="jha-iN-4U5"/>
+ <constraint firstItem="oJa-zg-vsj" firstAttribute="width" secondItem="G7e-bO-7dF" secondAttribute="width" id="kJs-gI-alj"/>
+ <constraint firstItem="6cf-NZ-4Z6" firstAttribute="leading" secondItem="6Tk-OE-BBY" secondAttribute="leading" constant="96" id="owO-u9-Qq5"/>
+ <constraint firstAttribute="bottom" secondItem="KJk-Rm-yfA" secondAttribute="bottom" constant="20" symbolic="YES" id="qxl-jW-vOq"/>
+ <constraint firstItem="KJk-Rm-yfA" firstAttribute="centerX" secondItem="oJa-zg-vsj" secondAttribute="centerX" id="sTE-p3-ACT"/>
+ <constraint firstItem="vFR-s4-Fgh" firstAttribute="top" secondItem="6Tk-OE-BBY" secondAttribute="top" constant="218" id="sdg-ZN-sOv"/>
+ <constraint firstItem="G7e-bO-7dF" firstAttribute="centerX" secondItem="6Tk-OE-BBY" secondAttribute="centerX" id="xdk-GY-gJh"/>
+ <constraint firstItem="KJk-Rm-yfA" firstAttribute="top" secondItem="6Tk-OE-BBY" secondAttribute="top" constant="138" id="yeu-N3-f8Y"/>
+ </constraints>
+ <viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
+ </view>
+ </viewController>
+ <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
+ </objects>
+ <point key="canvasLocation" x="56.799999999999997" y="27.436281859070466"/>
+ </scene>
+ <!--EventsController-->
+ <scene sceneID="TQK-G3-FTD">
+ <objects>
+ <viewControllerPlaceholder storyboardName="EventsController" id="GBq-lu-OIv" sceneMemberID="viewController"/>
+ <placeholder placeholderIdentifier="IBFirstResponder" id="iQW-tB-Uge" userLabel="First Responder" sceneMemberID="firstResponder"/>
+ </objects>
+ <point key="canvasLocation" x="779" y="19"/>
+ </scene>
+ </scenes>
+ <resources>
+ <image name="Background" width="375" height="667"/>
+ <image name="Continue" width="375" height="667"/>
+ <image name="Sub-Background" width="375" height="667"/>
+ </resources>
+</document>
diff --git a/Project/MoreFreeTime/MoreFreeTime/DatePopupViewController.swift b/Project/MoreFreeTime/MoreFreeTime/DatePopupViewController.swift
new file mode 100644
index 0000000000000000000000000000000000000000..770e8b04fc252c154201061eb66d0e4d8fd74f60
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime/DatePopupViewController.swift
@@ -0,0 +1,70 @@
+//
+// DatePopupViewController.swift
+// MoreFreeTime
+//
+// Created by Dylan Zeller on 11/25/18.
+// Copyright © 2018 Dylan Zeller. All rights reserved.
+//
+
+import UIKit
+
+class DatePopupViewController: UIViewController {
+
+
+ @IBOutlet weak var titleLabel: UILabel!
+ @IBOutlet weak var datePicker: UIDatePicker!
+
+ var isStart: Bool! = false
+
+ var date: Date {
+ return datePicker.date
+ }
+
+ var formattedDate: String {
+ get {
+ let formatter = DateFormatter()
+ formatter.dateStyle = .medium
+ return formatter.string(from: datePicker.date)
+ }
+ }
+
+ var formattedDateLong: String {
+ get {
+ let formatter = DateFormatter()
+ formatter.dateStyle = .long
+ return formatter.string(from: datePicker.date)
+ }
+ }
+
+ var formattedTime: String {
+ get {
+ let formatter = DateFormatter()
+ formatter.timeStyle = .short
+ return formatter.string(from: datePicker.date)
+ }
+ }
+
+ var formattedDateTime: String {
+ get {
+ let dateTime = formattedDate + " " + formattedTime
+ return dateTime
+ }
+ }
+
+ @IBOutlet weak var saveButton: UIButton!
+
+ override func viewDidLoad() {
+ super.viewDidLoad()
+
+ // Do any additional setup after loading the view.
+ }
+
+ @IBAction func clickSave(_ sender: Any) {
+ if (isStart) {
+ NotificationCenter.default.post(name: Notification.Name.saveStartDateTime, object: self)
+ } else {
+ NotificationCenter.default.post(name: Notification.Name.saveEndDateTime, object: self)
+ }
+ dismiss(animated: true)
+ }
+}
diff --git a/Project/MoreFreeTime/MoreFreeTime/Event.swift b/Project/MoreFreeTime/MoreFreeTime/Event.swift
new file mode 100644
index 0000000000000000000000000000000000000000..514295c5c69eca77e1cff12e27302be6b300f54b
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime/Event.swift
@@ -0,0 +1,56 @@
+//
+// Event.swift
+// MoreFreeTime
+//
+// Created by Dylan Zeller on 11/26/18.
+// Copyright © 2018 Dylan Zeller. All rights reserved.
+//
+
+import Foundation
+import UIKit
+
+struct Event {
+ var title : String
+ var startDate : String
+ var startTime : String
+ var endDate : String
+ var endTime : String
+ var location : String
+ var description : String
+
+ func getStartHour() -> Int {
+ let isAm = String(self.startTime.suffix(2)).isEqual("AM")
+ let indexOfHour = self.startTime.firstIndex(of: ":")!
+ var hour = Int(String(self.startTime[..<indexOfHour]))!
+ if (isAm && hour == 12) {
+ hour -= 12
+ } else if (isAm == false && hour < 12) {
+ hour += 12
+ }
+ return hour
+ }
+
+ func getStartMin() -> Int {
+ return Int(String(self.startTime.suffix(5).prefix(2)))!
+ }
+
+ func getTimeInMinutes() -> Int {
+ return ((60*getStartHour()) + getStartMin())
+ }
+
+ static func >(left: Event, right: Event) -> Bool {
+ if (left.getTimeInMinutes() > right.getTimeInMinutes()) {
+ return true
+ } else {
+ return false
+ }
+ }
+
+ static func <(left: Event, right: Event) -> Bool {
+ if (left.getTimeInMinutes() < right.getTimeInMinutes()) {
+ return true
+ } else {
+ return false
+ }
+ }
+}
diff --git a/Project/MoreFreeTime/MoreFreeTime/EventSingleDayCell.swift b/Project/MoreFreeTime/MoreFreeTime/EventSingleDayCell.swift
new file mode 100644
index 0000000000000000000000000000000000000000..f126f897551e983735561bbbf10d10a0991cf4f7
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime/EventSingleDayCell.swift
@@ -0,0 +1,38 @@
+//
+// EventSingleDayCell.swift
+// MoreFreeTime
+//
+// Created by Dylan Zeller on 11/27/18.
+// Copyright © 2018 Dylan Zeller. All rights reserved.
+//
+
+import UIKit
+
+class EventSingleDayCell: UITableViewCell {
+
+
+ @IBOutlet weak var eventName: UILabel!
+ @IBOutlet weak var eventLocation: UILabel!
+ @IBOutlet weak var eventStartTime: UILabel!
+ @IBOutlet weak var eventEndTime: UILabel!
+
+
+
+
+
+
+
+
+
+ override func awakeFromNib() {
+ super.awakeFromNib()
+ // Initialization code
+ }
+
+ override func setSelected(_ selected: Bool, animated: Bool) {
+ super.setSelected(selected, animated: animated)
+
+ // Configure the view for the selected state
+ }
+
+}
diff --git a/Project/MoreFreeTime/MoreFreeTime/EventsTable.storyboard b/Project/MoreFreeTime/MoreFreeTime/EventsTable.storyboard
new file mode 100644
index 0000000000000000000000000000000000000000..020fbdbcb933c666c80d5439bc3a2f2d693174d5
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime/EventsTable.storyboard
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="KDj-af-CHj">
+ <device id="retina4_7" orientation="portrait">
+ <adaptation id="fullscreen"/>
+ </device>
+ <dependencies>
+ <deployment identifier="iOS"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14460.20"/>
+ <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+ </dependencies>
+ <scenes>
+ <!--Table View Controller-->
+ <scene sceneID="4aD-pt-cCU">
+ <objects>
+ <tableViewController id="KDj-af-CHj" sceneMemberID="viewController">
+ <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="grouped" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" id="FKk-cx-bsw">
+ <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+ <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
+ <prototypes>
+ <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" id="vC3-UJ-Lb8">
+ <rect key="frame" x="0.0" y="55.5" width="375" height="44"/>
+ <autoresizingMask key="autoresizingMask"/>
+ <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="vC3-UJ-Lb8" id="1Jo-eW-uRU">
+ <rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
+ <autoresizingMask key="autoresizingMask"/>
+ </tableViewCellContentView>
+ </tableViewCell>
+ </prototypes>
+ <connections>
+ <outlet property="dataSource" destination="KDj-af-CHj" id="2qQ-4L-wnG"/>
+ <outlet property="delegate" destination="KDj-af-CHj" id="VY4-Tu-Va7"/>
+ </connections>
+ </tableView>
+ </tableViewController>
+ <placeholder placeholderIdentifier="IBFirstResponder" id="2II-wF-FQL" userLabel="First Responder" sceneMemberID="firstResponder"/>
+ </objects>
+ <point key="canvasLocation" x="-201" y="145"/>
+ </scene>
+ </scenes>
+</document>
diff --git a/Project/MoreFreeTime/MoreFreeTime/EventsTableTableViewController.swift b/Project/MoreFreeTime/MoreFreeTime/EventsTableTableViewController.swift
new file mode 100644
index 0000000000000000000000000000000000000000..b16bd57fa1ee626f7f65c6518818b7e3707a84f6
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime/EventsTableTableViewController.swift
@@ -0,0 +1,106 @@
+//
+// EventsTableTableViewController.swift
+// MoreFreeTime
+//
+// Created by Dylan Zeller on 11/26/18.
+// Copyright © 2018 Dylan Zeller. All rights reserved.
+//
+
+import UIKit
+
+class EventsTableTableViewController: UITableViewController {
+
+ var events = [Event]()
+
+ private let dataSource = ListViewDatasource()
+ override func viewDidLoad() {
+ super.viewDidLoad()
+
+ tableView.dataSource = dataSource
+ setUpEvents()
+ render()
+
+ // Uncomment the following line to preserve selection between presentations
+ // self.clearsSelectionOnViewWillAppear = false
+
+ // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
+ // self.navigationItem.rightBarButtonItem = self.editButtonItem
+ }
+
+ private func render() {
+ let eventNames = events.map { return $0.title }
+ dataSource.list = eventNames
+ tableView.reloadData()
+ }
+
+ private func setUpEvents () {
+ //let event1 = Event(title: "First Event", startDate: Date(), endDate: Date(), location: "nowhere", description: "")
+ //events.append(event1)
+ }
+
+ override func numberOfSections(in tableView: UITableView) -> Int {
+ // #warning Incomplete implementation, return the number of sections
+ return 0
+ }
+
+ override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+ // #warning Incomplete implementation, return the number of rows
+ return 0
+ }
+
+ /*
+ override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+ let cell = tableView.dequeueReusableCell(withIdentifier: "reuseIdentifier", for: indexPath)
+
+ // Configure the cell...
+
+ return cell
+ }
+ */
+
+ /*
+ // Override to support conditional editing of the table view.
+ override func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
+ // Return false if you do not want the specified item to be editable.
+ return true
+ }
+ */
+
+ /*
+ // Override to support editing the table view.
+ override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
+ if editingStyle == .delete {
+ // Delete the row from the data source
+ tableView.deleteRows(at: [indexPath], with: .fade)
+ } else if editingStyle == .insert {
+ // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
+ }
+ }
+ */
+
+ /*
+ // Override to support rearranging the table view.
+ override func tableView(_ tableView: UITableView, moveRowAt fromIndexPath: IndexPath, to: IndexPath) {
+
+ }
+ */
+
+ /*
+ // Override to support conditional rearranging of the table view.
+ override func tableView(_ tableView: UITableView, canMoveRowAt indexPath: IndexPath) -> Bool {
+ // Return false if you do not want the item to be re-orderable.
+ return true
+ }
+ */
+
+ /*
+ // MARK: - Navigation
+
+ // In a storyboard-based application, you will often want to do a little preparation before navigation
+ override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
+ // Get the new view controller using segue.destination.
+ // Pass the selected object to the new view controller.
+ }
+ */
+
+}
diff --git a/Project/MoreFreeTime/MoreFreeTime/Info.plist b/Project/MoreFreeTime/MoreFreeTime/Info.plist
new file mode 100644
index 0000000000000000000000000000000000000000..16be3b681122de83e380d47b840b7d0486f71f86
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime/Info.plist
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>$(DEVELOPMENT_LANGUAGE)</string>
+ <key>CFBundleExecutable</key>
+ <string>$(EXECUTABLE_NAME)</string>
+ <key>CFBundleIdentifier</key>
+ <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>$(PRODUCT_NAME)</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleVersion</key>
+ <string>1</string>
+ <key>LSRequiresIPhoneOS</key>
+ <true/>
+ <key>UILaunchStoryboardName</key>
+ <string>LaunchScreen</string>
+ <key>UIMainStoryboardFile</key>
+ <string>Main</string>
+ <key>UIRequiredDeviceCapabilities</key>
+ <array>
+ <string>armv7</string>
+ </array>
+ <key>UISupportedInterfaceOrientations</key>
+ <array>
+ <string>UIInterfaceOrientationPortrait</string>
+ <string>UIInterfaceOrientationLandscapeLeft</string>
+ <string>UIInterfaceOrientationLandscapeRight</string>
+ </array>
+ <key>UISupportedInterfaceOrientations~ipad</key>
+ <array>
+ <string>UIInterfaceOrientationPortrait</string>
+ <string>UIInterfaceOrientationPortraitUpsideDown</string>
+ <string>UIInterfaceOrientationLandscapeLeft</string>
+ <string>UIInterfaceOrientationLandscapeRight</string>
+ </array>
+</dict>
+</plist>
diff --git a/Project/MoreFreeTime/MoreFreeTime/ListViewDataSource.swift b/Project/MoreFreeTime/MoreFreeTime/ListViewDataSource.swift
new file mode 100644
index 0000000000000000000000000000000000000000..723754b03043e32e6dc1c602548c98fdd7d35ab4
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime/ListViewDataSource.swift
@@ -0,0 +1,24 @@
+//
+// ListViewDataSource.swift
+// MoreFreeTime
+//
+// Created by Dylan Zeller on 11/26/18.
+// Copyright © 2018 Dylan Zeller. All rights reserved.
+//
+
+import Foundation
+import UIKit
+
+class ListViewDatasource: NSObject, UITableViewDataSource {
+ var list = [String]()
+
+ func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+ return list.count
+ }
+
+ func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+ let cell = UITableViewCell()
+ cell.textLabel?.text = list[indexPath.row]
+ return cell
+ }
+}
diff --git a/Project/MoreFreeTime/MoreFreeTime/MoreFreeTime/Base.lproj/DatePopup.storyboard b/Project/MoreFreeTime/MoreFreeTime/MoreFreeTime/Base.lproj/DatePopup.storyboard
new file mode 100644
index 0000000000000000000000000000000000000000..f7f57d2b80436a57d6ebc5571d981eb94547bba8
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime/MoreFreeTime/Base.lproj/DatePopup.storyboard
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="DGp-K7-ijf">
+ <device id="retina4_7" orientation="portrait">
+ <adaptation id="fullscreen"/>
+ </device>
+ <dependencies>
+ <deployment identifier="iOS"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14460.20"/>
+ <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+ <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+ </dependencies>
+ <scenes>
+ <!--Date Popup View Controller-->
+ <scene sceneID="6ds-US-qcA">
+ <objects>
+ <viewController storyboardIdentifier="DatePopup" id="DGp-K7-ijf" customClass="DatePopupViewController" customModule="MoreFreeTime" customModuleProvider="target" sceneMemberID="viewController">
+ <view key="view" contentMode="scaleToFill" id="7Lb-oC-EcZ">
+ <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+ <subviews>
+ <view contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="f3S-hj-TGT">
+ <rect key="frame" x="39" y="210" width="296" height="246"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <subviews>
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="Select Date and Time" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="HkD-cZ-9eH" userLabel="Title">
+ <rect key="frame" x="0.0" y="0.0" width="296" height="47"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <color key="backgroundColor" red="0.0" green="0.47843137250000001" blue="1" alpha="0.75189810739436624" colorSpace="custom" customColorSpace="sRGB"/>
+ <fontDescription key="fontDescription" type="system" pointSize="17"/>
+ <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+ <nil key="highlightedColor"/>
+ </label>
+ <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="IkV-UZ-jMh">
+ <rect key="frame" x="105" y="208" width="86" height="30"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <state key="normal" title="Save"/>
+ <connections>
+ <action selector="clickSave:" destination="DGp-K7-ijf" eventType="touchUpInside" id="hnC-Ud-dFx"/>
+ </connections>
+ </button>
+ <datePicker contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" datePickerMode="dateAndTime" minuteInterval="1" translatesAutoresizingMaskIntoConstraints="NO" id="Ky1-TC-CuZ">
+ <rect key="frame" x="14" y="46" width="268" height="154"/>
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+ <date key="date" timeIntervalSinceReferenceDate="564885019.95294094">
+ <!--2018-11-26 00:30:19 +0000-->
+ </date>
+ </datePicker>
+ </subviews>
+ <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+ </view>
+ </subviews>
+ <color key="backgroundColor" white="0.66666666666666663" alpha="0.5" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+ <viewLayoutGuide key="safeArea" id="aIo-l9-bRG"/>
+ </view>
+ <connections>
+ <outlet property="datePicker" destination="Ky1-TC-CuZ" id="nsR-AG-Tde"/>
+ <outlet property="saveButton" destination="IkV-UZ-jMh" id="PWC-O4-NpE"/>
+ <outlet property="titleLabel" destination="HkD-cZ-9eH" id="PEV-NA-fJz"/>
+ </connections>
+ </viewController>
+ <placeholder placeholderIdentifier="IBFirstResponder" id="eZf-dL-h5T" userLabel="First Responder" sceneMemberID="firstResponder"/>
+ </objects>
+ <point key="canvasLocation" x="3112.8000000000002" y="26.53673163418291"/>
+ </scene>
+ </scenes>
+</document>
diff --git a/Project/MoreFreeTime/MoreFreeTime/MoreFreeTime/Base.lproj/EventsController.storyboard b/Project/MoreFreeTime/MoreFreeTime/MoreFreeTime/Base.lproj/EventsController.storyboard
new file mode 100644
index 0000000000000000000000000000000000000000..c37127f8bd25ecf166a1c4bf3109962404d32e2c
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime/MoreFreeTime/Base.lproj/EventsController.storyboard
@@ -0,0 +1,359 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="5Ls-Be-YnQ">
+ <device id="retina4_7" orientation="portrait">
+ <adaptation id="fullscreen"/>
+ </device>
+ <dependencies>
+ <deployment identifier="iOS"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14460.20"/>
+ <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+ <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+ </dependencies>
+ <scenes>
+ <!--Add Event View Controller-->
+ <scene sceneID="5yd-5B-PEN">
+ <objects>
+ <viewController id="Xaa-n3-v23" customClass="AddEventViewController" customModule="MoreFreeTime" customModuleProvider="target" sceneMemberID="viewController">
+ <view key="view" contentMode="scaleToFill" id="pB3-ag-7As">
+ <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+ <subviews>
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Add Event" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ad9-4e-H4r">
+ <rect key="frame" x="16" y="20" width="119" height="50"/>
+ <fontDescription key="fontDescription" type="system" pointSize="24"/>
+ <nil key="textColor"/>
+ <nil key="highlightedColor"/>
+ </label>
+ <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="KWj-Hi-Rnv">
+ <rect key="frame" x="302" y="30" width="34" height="30"/>
+ <state key="normal" title="Save"/>
+ <connections>
+ <action selector="clickSave:" destination="Xaa-n3-v23" eventType="touchUpInside" id="7CF-xE-8KA"/>
+ </connections>
+ </button>
+ <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="X5h-HB-tcS">
+ <rect key="frame" x="0.0" y="68" width="375" height="599"/>
+ <subviews>
+ <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="Title" borderStyle="roundedRect" clearsOnBeginEditing="YES" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="gfC-Uh-EbM">
+ <rect key="frame" x="30" y="31" width="315" height="30"/>
+ <nil key="textColor"/>
+ <fontDescription key="fontDescription" type="system" pointSize="18"/>
+ <textInputTraits key="textInputTraits"/>
+ </textField>
+ <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="Location" borderStyle="roundedRect" clearsOnBeginEditing="YES" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="t8N-0W-0A4">
+ <rect key="frame" x="30" y="74" width="315" height="30"/>
+ <nil key="textColor"/>
+ <fontDescription key="fontDescription" type="system" pointSize="18"/>
+ <textInputTraits key="textInputTraits"/>
+ </textField>
+ <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="r7r-by-AbI">
+ <rect key="frame" x="30" y="127" width="337" height="83"/>
+ <subviews>
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Start:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BBq-xY-lpP">
+ <rect key="frame" x="0.0" y="8" width="48" height="25"/>
+ <fontDescription key="fontDescription" type="system" pointSize="20"/>
+ <nil key="textColor"/>
+ <nil key="highlightedColor"/>
+ </label>
+ <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="BgT-0z-HhU">
+ <rect key="frame" x="277" y="46" width="52" height="30"/>
+ <state key="normal" title="Edit"/>
+ <connections>
+ <segue destination="4v5-iv-SDA" kind="presentation" identifier="toEndDatePopupView" modalPresentationStyle="overCurrentContext" id="yBZ-gP-Re8"/>
+ </connections>
+ </button>
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Kcp-yO-ZTa" userLabel="startDate">
+ <rect key="frame" x="54" y="10" width="128" height="21"/>
+ <fontDescription key="fontDescription" type="system" pointSize="17"/>
+ <nil key="textColor"/>
+ <nil key="highlightedColor"/>
+ </label>
+ <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="3GL-Ub-WPE">
+ <rect key="frame" x="277" y="8" width="52" height="30"/>
+ <state key="normal" title="Edit"/>
+ <connections>
+ <segue destination="4v5-iv-SDA" kind="presentation" identifier="toStartDatePopupView" modalPresentationStyle="overCurrentContext" id="w6l-3I-WV6"/>
+ </connections>
+ </button>
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dcS-A8-bZ7" userLabel="endDate">
+ <rect key="frame" x="54" y="53" width="128" height="21"/>
+ <constraints>
+ <constraint firstAttribute="width" constant="128" id="VfD-ga-NbW"/>
+ </constraints>
+ <fontDescription key="fontDescription" type="system" pointSize="17"/>
+ <nil key="textColor"/>
+ <nil key="highlightedColor"/>
+ </label>
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4Is-Y9-LyM" userLabel="startTime">
+ <rect key="frame" x="190" y="13" width="79" height="21"/>
+ <fontDescription key="fontDescription" type="system" pointSize="17"/>
+ <nil key="textColor"/>
+ <nil key="highlightedColor"/>
+ </label>
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5eQ-AF-rLa" userLabel="endTime">
+ <rect key="frame" x="190" y="50" width="79" height="21"/>
+ <constraints>
+ <constraint firstAttribute="height" constant="21" id="dGZ-jJ-cd0"/>
+ </constraints>
+ <fontDescription key="fontDescription" type="system" pointSize="17"/>
+ <nil key="textColor"/>
+ <nil key="highlightedColor"/>
+ </label>
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="End:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sdQ-KB-OZB">
+ <rect key="frame" x="0.0" y="50" width="48" height="27"/>
+ <fontDescription key="fontDescription" type="system" pointSize="20"/>
+ <nil key="textColor"/>
+ <nil key="highlightedColor"/>
+ </label>
+ </subviews>
+ <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+ <constraints>
+ <constraint firstAttribute="bottom" secondItem="dcS-A8-bZ7" secondAttribute="bottom" constant="9" id="3uZ-vD-G81"/>
+ <constraint firstItem="BgT-0z-HhU" firstAttribute="trailing" secondItem="3GL-Ub-WPE" secondAttribute="trailing" id="4Rw-17-16b"/>
+ <constraint firstItem="5eQ-AF-rLa" firstAttribute="leading" secondItem="dcS-A8-bZ7" secondAttribute="trailing" constant="8" symbolic="YES" id="BCi-i2-HSM"/>
+ <constraint firstItem="dcS-A8-bZ7" firstAttribute="leading" secondItem="r7r-by-AbI" secondAttribute="leading" constant="54" id="CO2-Jk-w0s"/>
+ <constraint firstItem="Kcp-yO-ZTa" firstAttribute="centerY" secondItem="BBq-xY-lpP" secondAttribute="centerY" id="Cny-bZ-WqI"/>
+ <constraint firstItem="BgT-0z-HhU" firstAttribute="leading" secondItem="5eQ-AF-rLa" secondAttribute="trailing" constant="8" symbolic="YES" id="DGr-1D-Mu2"/>
+ <constraint firstItem="5eQ-AF-rLa" firstAttribute="leading" secondItem="4Is-Y9-LyM" secondAttribute="leading" id="E18-Ga-wnp"/>
+ <constraint firstItem="BgT-0z-HhU" firstAttribute="leading" secondItem="dcS-A8-bZ7" secondAttribute="trailing" constant="95" id="EyY-ed-KCd"/>
+ <constraint firstItem="Kcp-yO-ZTa" firstAttribute="leading" secondItem="BBq-xY-lpP" secondAttribute="trailing" constant="6" id="GwZ-d3-PAn"/>
+ <constraint firstItem="dcS-A8-bZ7" firstAttribute="trailing" secondItem="Kcp-yO-ZTa" secondAttribute="trailing" id="Jil-Uq-Qzq"/>
+ <constraint firstItem="dcS-A8-bZ7" firstAttribute="top" secondItem="Kcp-yO-ZTa" secondAttribute="bottom" constant="22" id="Q8C-eQ-eb8"/>
+ <constraint firstItem="sdQ-KB-OZB" firstAttribute="leading" secondItem="r7r-by-AbI" secondAttribute="leading" id="U8P-iX-ac2"/>
+ <constraint firstItem="3GL-Ub-WPE" firstAttribute="leading" secondItem="Kcp-yO-ZTa" secondAttribute="trailing" constant="95" id="VNb-kc-Zuy"/>
+ <constraint firstItem="dcS-A8-bZ7" firstAttribute="leading" secondItem="sdQ-KB-OZB" secondAttribute="trailing" constant="6" id="WOi-Lu-p9u"/>
+ <constraint firstItem="sdQ-KB-OZB" firstAttribute="centerY" secondItem="dcS-A8-bZ7" secondAttribute="centerY" id="WwT-iW-elg"/>
+ <constraint firstItem="5eQ-AF-rLa" firstAttribute="baseline" secondItem="BgT-0z-HhU" secondAttribute="baseline" id="Xmj-gF-WIG"/>
+ <constraint firstItem="BgT-0z-HhU" firstAttribute="top" secondItem="3GL-Ub-WPE" secondAttribute="bottom" constant="8" symbolic="YES" id="bg7-p2-rI5"/>
+ <constraint firstItem="dcS-A8-bZ7" firstAttribute="leading" secondItem="Kcp-yO-ZTa" secondAttribute="leading" id="bhM-g9-VLg"/>
+ <constraint firstItem="sdQ-KB-OZB" firstAttribute="top" secondItem="5eQ-AF-rLa" secondAttribute="top" id="fYR-hf-238"/>
+ <constraint firstItem="sdQ-KB-OZB" firstAttribute="firstBaseline" secondItem="dcS-A8-bZ7" secondAttribute="firstBaseline" id="gdY-mv-d5y"/>
+ <constraint firstItem="5eQ-AF-rLa" firstAttribute="trailing" secondItem="4Is-Y9-LyM" secondAttribute="trailing" id="gjU-Ow-tIU"/>
+ <constraint firstItem="5eQ-AF-rLa" firstAttribute="top" secondItem="4Is-Y9-LyM" secondAttribute="bottom" constant="16" id="hBl-ZW-k3P"/>
+ <constraint firstItem="BgT-0z-HhU" firstAttribute="leading" secondItem="3GL-Ub-WPE" secondAttribute="leading" id="hI8-UQ-0I3"/>
+ <constraint firstItem="BgT-0z-HhU" firstAttribute="trailing" secondItem="r7r-by-AbI" secondAttribute="trailingMargin" id="jSG-yS-R6W"/>
+ <constraint firstItem="BBq-xY-lpP" firstAttribute="leading" secondItem="r7r-by-AbI" secondAttribute="leading" id="nRE-7C-3np"/>
+ <constraint firstAttribute="trailing" secondItem="BgT-0z-HhU" secondAttribute="trailing" constant="8" id="p5A-yP-3pS"/>
+ <constraint firstItem="sdQ-KB-OZB" firstAttribute="top" secondItem="BBq-xY-lpP" secondAttribute="bottom" constant="17" id="pyf-ch-bbT"/>
+ <constraint firstAttribute="height" constant="83" id="rRZ-sV-9h9"/>
+ <constraint firstItem="5eQ-AF-rLa" firstAttribute="baseline" secondItem="BgT-0z-HhU" secondAttribute="firstBaseline" id="vx6-c9-BRT"/>
+ <constraint firstAttribute="bottom" secondItem="BgT-0z-HhU" secondAttribute="bottom" constant="7" id="wCJ-vm-ORu"/>
+ </constraints>
+ </view>
+ <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" text="Description" textAlignment="natural" translatesAutoresizingMaskIntoConstraints="NO" id="vkC-6z-mET">
+ <rect key="frame" x="30" y="243" width="315" height="77"/>
+ <color key="backgroundColor" red="0.67078205958549231" green="0.67078205958549231" blue="0.67078205958549231" alpha="0.10615647007042253" colorSpace="custom" customColorSpace="sRGB"/>
+ <color key="tintColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+ <constraints>
+ <constraint firstAttribute="height" constant="77" id="BUh-wN-Ln2"/>
+ </constraints>
+ <fontDescription key="fontDescription" type="system" pointSize="14"/>
+ <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
+ </textView>
+ </subviews>
+ <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+ <constraints>
+ <constraint firstItem="r7r-by-AbI" firstAttribute="top" secondItem="gfC-Uh-EbM" secondAttribute="bottom" constant="66" id="0x4-Hi-EfX"/>
+ <constraint firstItem="vkC-6z-mET" firstAttribute="top" secondItem="r7r-by-AbI" secondAttribute="bottom" constant="33" id="5lF-lU-maL"/>
+ <constraint firstItem="gfC-Uh-EbM" firstAttribute="centerX" secondItem="X5h-HB-tcS" secondAttribute="centerX" id="B3B-mX-pcK"/>
+ <constraint firstItem="t8N-0W-0A4" firstAttribute="trailing" secondItem="gfC-Uh-EbM" secondAttribute="trailing" id="BAC-gy-W5C"/>
+ <constraint firstItem="r7r-by-AbI" firstAttribute="leading" secondItem="gfC-Uh-EbM" secondAttribute="leading" id="C9W-bz-a8b"/>
+ <constraint firstItem="r7r-by-AbI" firstAttribute="trailing" secondItem="X5h-HB-tcS" secondAttribute="trailingMargin" id="SJN-4A-JPm"/>
+ <constraint firstItem="vkC-6z-mET" firstAttribute="trailing" secondItem="t8N-0W-0A4" secondAttribute="trailing" id="Wja-R7-OHp"/>
+ <constraint firstAttribute="bottom" secondItem="r7r-by-AbI" secondAttribute="bottom" constant="389" id="Wse-Gb-eyb"/>
+ <constraint firstAttribute="trailing" secondItem="gfC-Uh-EbM" secondAttribute="trailing" constant="30" id="bMp-3I-EIy"/>
+ <constraint firstItem="gfC-Uh-EbM" firstAttribute="top" secondItem="X5h-HB-tcS" secondAttribute="top" constant="31" id="kFy-yF-93t"/>
+ <constraint firstItem="t8N-0W-0A4" firstAttribute="top" secondItem="gfC-Uh-EbM" secondAttribute="bottom" constant="13" id="lQU-A5-2OZ"/>
+ <constraint firstItem="t8N-0W-0A4" firstAttribute="leading" secondItem="gfC-Uh-EbM" secondAttribute="leading" id="uYw-3R-UsJ"/>
+ <constraint firstItem="vkC-6z-mET" firstAttribute="leading" secondItem="r7r-by-AbI" secondAttribute="leading" id="vjI-P7-u87"/>
+ <constraint firstItem="gfC-Uh-EbM" firstAttribute="leading" secondItem="X5h-HB-tcS" secondAttribute="leading" constant="30" id="xpI-Xr-B6Z"/>
+ </constraints>
+ </scrollView>
+ <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="HEF-XX-rIp">
+ <rect key="frame" x="228" y="30" width="48" height="30"/>
+ <state key="normal" title="Cancel"/>
+ <connections>
+ <action selector="clickCancel:" destination="Xaa-n3-v23" eventType="touchUpInside" id="T2C-gh-BH3"/>
+ </connections>
+ </button>
+ </subviews>
+ <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+ <constraints>
+ <constraint firstItem="HEF-XX-rIp" firstAttribute="top" secondItem="fRM-dQ-mZi" secondAttribute="top" constant="10" id="89e-SW-gT0"/>
+ <constraint firstItem="fRM-dQ-mZi" firstAttribute="trailing" secondItem="ad9-4e-H4r" secondAttribute="trailing" constant="240" id="8UR-Qb-VC6"/>
+ <constraint firstItem="fRM-dQ-mZi" firstAttribute="trailing" secondItem="KWj-Hi-Rnv" secondAttribute="trailing" constant="39" id="Awt-gR-ADH"/>
+ <constraint firstItem="X5h-HB-tcS" firstAttribute="leading" secondItem="pB3-ag-7As" secondAttribute="leading" id="CGN-in-2NT"/>
+ <constraint firstItem="fRM-dQ-mZi" firstAttribute="bottom" secondItem="ad9-4e-H4r" secondAttribute="bottom" constant="597" id="JAb-VH-sgW"/>
+ <constraint firstItem="ad9-4e-H4r" firstAttribute="leading" secondItem="fRM-dQ-mZi" secondAttribute="leading" constant="16" id="ShX-sD-uTY"/>
+ <constraint firstItem="HEF-XX-rIp" firstAttribute="leading" secondItem="ad9-4e-H4r" secondAttribute="trailing" constant="93" id="bKe-cF-2ga"/>
+ <constraint firstItem="X5h-HB-tcS" firstAttribute="top" secondItem="HEF-XX-rIp" secondAttribute="bottom" constant="8" id="cwK-C7-lUM"/>
+ <constraint firstItem="X5h-HB-tcS" firstAttribute="bottom" secondItem="fRM-dQ-mZi" secondAttribute="bottom" id="g1X-Ez-4TG"/>
+ <constraint firstItem="X5h-HB-tcS" firstAttribute="top" secondItem="pB3-ag-7As" secondAttribute="top" constant="68" id="hjB-9x-pGv"/>
+ <constraint firstItem="KWj-Hi-Rnv" firstAttribute="top" secondItem="fRM-dQ-mZi" secondAttribute="top" constant="10" id="mps-Po-fHs"/>
+ <constraint firstAttribute="trailing" secondItem="X5h-HB-tcS" secondAttribute="trailing" id="pEa-FG-cSZ"/>
+ <constraint firstItem="ad9-4e-H4r" firstAttribute="top" secondItem="fRM-dQ-mZi" secondAttribute="top" id="vWz-Mn-cSU"/>
+ <constraint firstItem="X5h-HB-tcS" firstAttribute="top" secondItem="KWj-Hi-Rnv" secondAttribute="bottom" constant="8" id="xmI-PE-WNc"/>
+ <constraint firstItem="KWj-Hi-Rnv" firstAttribute="leading" secondItem="HEF-XX-rIp" secondAttribute="trailing" constant="26" id="yFj-oN-GRk"/>
+ <constraint firstItem="KWj-Hi-Rnv" firstAttribute="leading" secondItem="HEF-XX-rIp" secondAttribute="trailing" constant="26" id="yZY-m6-j4t"/>
+ </constraints>
+ <viewLayoutGuide key="safeArea" id="fRM-dQ-mZi"/>
+ </view>
+ <connections>
+ <outlet property="eventDescriptionText" destination="vkC-6z-mET" id="pPq-dN-Ude"/>
+ <outlet property="eventEndDate" destination="dcS-A8-bZ7" id="lDG-Ak-2yN"/>
+ <outlet property="eventEndTime" destination="5eQ-AF-rLa" id="dd0-6E-EZm"/>
+ <outlet property="eventLocationLabel" destination="t8N-0W-0A4" id="sUv-vU-QcJ"/>
+ <outlet property="eventStartDate" destination="Kcp-yO-ZTa" id="Y7B-Pf-KyL"/>
+ <outlet property="eventStartTime" destination="4Is-Y9-LyM" id="hUy-dK-adb"/>
+ <outlet property="eventTitleLabel" destination="gfC-Uh-EbM" id="50D-oO-h0x"/>
+ </connections>
+ </viewController>
+ <placeholder placeholderIdentifier="IBFirstResponder" id="AOH-2q-Yt5" userLabel="First Responder" sceneMemberID="firstResponder"/>
+ </objects>
+ <point key="canvasLocation" x="1786" y="21"/>
+ </scene>
+ <!--DatePopup-->
+ <scene sceneID="Rwh-EU-gFF">
+ <objects>
+ <viewControllerPlaceholder storyboardIdentifier="DatePopup" storyboardName="DatePopup" id="4v5-iv-SDA" sceneMemberID="viewController"/>
+ <placeholder placeholderIdentifier="IBFirstResponder" id="DHl-bJ-RhP" userLabel="First Responder" sceneMemberID="firstResponder"/>
+ </objects>
+ <point key="canvasLocation" x="1444" y="803"/>
+ </scene>
+ <!--Schedule Controller View Controller-->
+ <scene sceneID="ngu-oy-Btt">
+ <objects>
+ <viewController storyboardIdentifier="UIViewController-afp-MA-Jf4" id="5Ls-Be-YnQ" customClass="ScheduleControllerViewController" customModule="MoreFreeTime" customModuleProvider="target" sceneMemberID="viewController">
+ <view key="view" contentMode="scaleToFill" id="l2W-fe-rtn">
+ <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+ <subviews>
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="This will be the date" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QYp-hf-Hht" userLabel="Date">
+ <rect key="frame" x="115.5" y="25" width="145" height="20"/>
+ <fontDescription key="fontDescription" type="system" pointSize="16"/>
+ <nil key="textColor"/>
+ <nil key="highlightedColor"/>
+ </label>
+ <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="6pK-lN-TLL">
+ <rect key="frame" x="292" y="20" width="70" height="30"/>
+ <state key="normal" title="Add Event"/>
+ <connections>
+ <segue destination="Xaa-n3-v23" kind="presentation" modalPresentationStyle="overCurrentContext" id="gbX-56-ZRA"/>
+ </connections>
+ </button>
+ <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="lky-WS-6IF">
+ <rect key="frame" x="10" y="20" width="90" height="30"/>
+ <state key="normal" title="Change Date"/>
+ <connections>
+ <segue destination="4v5-iv-SDA" kind="presentation" identifier="toStartDatePopupView" modalPresentationStyle="overCurrentContext" id="tdn-pF-58Z"/>
+ </connections>
+ </button>
+ <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="50" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="PNi-e0-Zyv">
+ <rect key="frame" x="0.0" y="58" width="375" height="565"/>
+ <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+ <prototypes>
+ <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" id="naT-uF-Wec" customClass="EventSingleDayCell" customModule="MoreFreeTime" customModuleProvider="target">
+ <rect key="frame" x="0.0" y="28" width="375" height="50"/>
+ <autoresizingMask key="autoresizingMask"/>
+ <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="naT-uF-Wec" id="xP6-Eg-qXR">
+ <rect key="frame" x="0.0" y="0.0" width="375" height="49.5"/>
+ <autoresizingMask key="autoresizingMask"/>
+ <subviews>
+ <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Rectangle" translatesAutoresizingMaskIntoConstraints="NO" id="tLm-YQ-Zcf">
+ <rect key="frame" x="0.0" y="0.0" width="375" height="49.5"/>
+ </imageView>
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" ambiguous="YES" text="Event Name" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="j0e-cc-zTU">
+ <rect key="frame" x="89" y="3.5" width="105" height="24"/>
+ <fontDescription key="fontDescription" type="system" pointSize="20"/>
+ <nil key="textColor"/>
+ <nil key="highlightedColor"/>
+ </label>
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" ambiguous="YES" text="Location" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="pzx-Yn-hd1">
+ <rect key="frame" x="91" y="31" width="284" height="16"/>
+ <fontDescription key="fontDescription" type="system" pointSize="13"/>
+ <nil key="textColor"/>
+ <nil key="highlightedColor"/>
+ </label>
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" ambiguous="YES" text="StTime" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ZdP-oK-c2W">
+ <rect key="frame" x="10" y="3" width="54" height="21"/>
+ <fontDescription key="fontDescription" type="system" pointSize="17"/>
+ <nil key="textColor"/>
+ <nil key="highlightedColor"/>
+ </label>
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" ambiguous="YES" text="EnTime" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="XJw-je-nl5">
+ <rect key="frame" x="10" y="25.5" width="56" height="21"/>
+ <fontDescription key="fontDescription" type="system" pointSize="17"/>
+ <nil key="textColor"/>
+ <nil key="highlightedColor"/>
+ </label>
+ </subviews>
+ <constraints>
+ <constraint firstItem="pzx-Yn-hd1" firstAttribute="top" secondItem="j0e-cc-zTU" secondAttribute="bottom" constant="3" id="06w-hX-0s9"/>
+ <constraint firstItem="j0e-cc-zTU" firstAttribute="top" secondItem="xP6-Eg-qXR" secondAttribute="top" constant="3" id="610-4S-fP8"/>
+ <constraint firstAttribute="trailing" secondItem="pzx-Yn-hd1" secondAttribute="trailing" id="7QN-dN-7dj"/>
+ <constraint firstItem="ZdP-oK-c2W" firstAttribute="leading" secondItem="xP6-Eg-qXR" secondAttribute="leading" constant="10" id="AaR-dL-jWF"/>
+ <constraint firstItem="pzx-Yn-hd1" firstAttribute="leading" secondItem="XJw-je-nl5" secondAttribute="trailing" constant="25" id="Md6-VQ-0Fy"/>
+ <constraint firstItem="ZdP-oK-c2W" firstAttribute="top" secondItem="xP6-Eg-qXR" secondAttribute="top" constant="3" id="OL8-Vd-Xfo"/>
+ <constraint firstAttribute="trailing" secondItem="j0e-cc-zTU" secondAttribute="trailing" id="Skd-rm-Qt4"/>
+ <constraint firstItem="tLm-YQ-Zcf" firstAttribute="leading" secondItem="xP6-Eg-qXR" secondAttribute="leading" id="TbJ-TJ-y1l"/>
+ <constraint firstAttribute="bottom" secondItem="XJw-je-nl5" secondAttribute="bottom" constant="3" id="UWK-BP-RFS"/>
+ <constraint firstItem="pzx-Yn-hd1" firstAttribute="leading" secondItem="XJw-je-nl5" secondAttribute="trailing" constant="25" id="WGe-Qr-ufh"/>
+ <constraint firstItem="j0e-cc-zTU" firstAttribute="leading" secondItem="ZdP-oK-c2W" secondAttribute="trailing" constant="25" id="dyc-zX-M9R"/>
+ <constraint firstItem="tLm-YQ-Zcf" firstAttribute="top" secondItem="xP6-Eg-qXR" secondAttribute="top" id="j4j-kc-8J9"/>
+ <constraint firstItem="XJw-je-nl5" firstAttribute="leading" secondItem="xP6-Eg-qXR" secondAttribute="leading" constant="10" id="lTu-6F-y2O"/>
+ <constraint firstItem="j0e-cc-zTU" firstAttribute="leading" secondItem="ZdP-oK-c2W" secondAttribute="trailing" constant="25" id="maC-PD-oNr"/>
+ <constraint firstAttribute="bottom" secondItem="tLm-YQ-Zcf" secondAttribute="bottom" id="nWG-Cz-pJ6"/>
+ <constraint firstAttribute="bottom" secondItem="pzx-Yn-hd1" secondAttribute="bottom" constant="3" id="qJo-X9-psM"/>
+ <constraint firstItem="pzx-Yn-hd1" firstAttribute="top" secondItem="j0e-cc-zTU" secondAttribute="bottom" constant="3" id="vKb-Z7-BBe"/>
+ <constraint firstAttribute="trailing" secondItem="tLm-YQ-Zcf" secondAttribute="trailing" id="xJb-bi-cY9"/>
+ </constraints>
+ </tableViewCellContentView>
+ <connections>
+ <outlet property="eventEndTime" destination="XJw-je-nl5" id="haT-Jp-3fI"/>
+ <outlet property="eventLocation" destination="pzx-Yn-hd1" id="ivp-YD-Dfz"/>
+ <outlet property="eventName" destination="j0e-cc-zTU" id="vmO-sd-XcX"/>
+ <outlet property="eventStartTime" destination="ZdP-oK-c2W" id="ZUM-fB-oPl"/>
+ </connections>
+ </tableViewCell>
+ </prototypes>
+ </tableView>
+ </subviews>
+ <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+ <constraints>
+ <constraint firstItem="kEM-OG-G6d" firstAttribute="trailing" secondItem="6pK-lN-TLL" secondAttribute="trailing" constant="13" id="A9H-hO-2yG"/>
+ <constraint firstItem="6pK-lN-TLL" firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="QYp-hf-Hht" secondAttribute="trailing" id="HRj-C3-vO9"/>
+ <constraint firstItem="QYp-hf-Hht" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="kEM-OG-G6d" secondAttribute="leading" id="KQj-vm-K6N"/>
+ <constraint firstItem="PNi-e0-Zyv" firstAttribute="leading" secondItem="kEM-OG-G6d" secondAttribute="leading" id="TCH-kd-wRi"/>
+ <constraint firstItem="6pK-lN-TLL" firstAttribute="top" secondItem="kEM-OG-G6d" secondAttribute="top" id="Thy-CW-W1K"/>
+ <constraint firstItem="QYp-hf-Hht" firstAttribute="centerX" secondItem="lky-WS-6IF" secondAttribute="centerX" constant="133" id="cg0-1m-tIu"/>
+ <constraint firstItem="6pK-lN-TLL" firstAttribute="top" secondItem="kEM-OG-G6d" secondAttribute="top" id="cki-cI-Xuu"/>
+ <constraint firstItem="lky-WS-6IF" firstAttribute="top" secondItem="kEM-OG-G6d" secondAttribute="top" id="dos-Uz-MlJ"/>
+ <constraint firstItem="6pK-lN-TLL" firstAttribute="leading" secondItem="kEM-OG-G6d" secondAttribute="leading" constant="292" id="fAc-vh-3TC"/>
+ <constraint firstItem="PNi-e0-Zyv" firstAttribute="bottom" secondItem="kEM-OG-G6d" secondAttribute="bottom" id="fMZ-e4-EWu"/>
+ <constraint firstItem="PNi-e0-Zyv" firstAttribute="top" secondItem="6pK-lN-TLL" secondAttribute="bottom" constant="8" id="laO-Lj-jCu"/>
+ <constraint firstItem="lky-WS-6IF" firstAttribute="leading" secondItem="kEM-OG-G6d" secondAttribute="leading" constant="10" id="wGq-ky-g9f"/>
+ <constraint firstItem="QYp-hf-Hht" firstAttribute="top" secondItem="kEM-OG-G6d" secondAttribute="top" constant="5" id="x9Q-dh-NUf"/>
+ <constraint firstItem="PNi-e0-Zyv" firstAttribute="trailing" secondItem="kEM-OG-G6d" secondAttribute="trailing" id="zxR-xh-keF"/>
+ </constraints>
+ <viewLayoutGuide key="safeArea" id="kEM-OG-G6d"/>
+ </view>
+ <toolbarItems>
+ <barButtonItem title="Add Event" id="7B0-9c-DWr"/>
+ </toolbarItems>
+ <simulatedToolbarMetrics key="simulatedBottomBarMetrics"/>
+ <connections>
+ <outlet property="dateLabel" destination="QYp-hf-Hht" id="OqI-Ps-0ZS"/>
+ </connections>
+ </viewController>
+ <placeholder placeholderIdentifier="IBFirstResponder" id="sr6-9U-d39" userLabel="First Responder" sceneMemberID="firstResponder"/>
+ </objects>
+ <point key="canvasLocation" x="696.79999999999995" y="20.239880059970016"/>
+ </scene>
+ </scenes>
+ <resources>
+ <image name="Rectangle" width="375" height="50"/>
+ </resources>
+ <inferredMetricsTieBreakers>
+ <segue reference="tdn-pF-58Z"/>
+ </inferredMetricsTieBreakers>
+</document>
diff --git a/Project/MoreFreeTime/MoreFreeTime/NotificationNameExtention.swift b/Project/MoreFreeTime/MoreFreeTime/NotificationNameExtention.swift
new file mode 100644
index 0000000000000000000000000000000000000000..44fddfb436f53ecec4ee0049a3043b76b770aafc
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime/NotificationNameExtention.swift
@@ -0,0 +1,15 @@
+//
+// NotificationNameExtention.swift
+// MoreFreeTime
+//
+// Created by Dylan Zeller on 11/25/18.
+// Copyright © 2018 Dylan Zeller. All rights reserved.
+//
+
+import Foundation
+
+extension Notification.Name {
+ static let saveStartDateTime = Notification.Name(rawValue: "saveStartDateTime")
+ static let saveEndDateTime = Notification.Name(rawValue: "saveEndDateTime")
+ static let saveNewEvent = Notification.Name(rawValue: "saveNewEvent")
+}
diff --git a/Project/MoreFreeTime/MoreFreeTime/ScheduleController.swift b/Project/MoreFreeTime/MoreFreeTime/ScheduleController.swift
new file mode 100644
index 0000000000000000000000000000000000000000..72ebf2a43d0734fd9f804ea5f094a70909462cfc
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime/ScheduleController.swift
@@ -0,0 +1,23 @@
+//
+// ScheduleController.swift
+// MoreFreeTime
+//
+// Created by Dylan Zeller on 11/25/18.
+// Copyright © 2018 Dylan Zeller. All rights reserved.
+//
+
+import Foundation
+import UIKit
+
+class ScheduleController: UIViewController {
+
+ @IBOutlet weak var dateLabel : UILabel!
+
+
+ override func viewDidLoad() {
+ super.viewDidLoad()
+ // Do any additional setup after loading the view, typically from a nib.
+ }
+
+
+}
diff --git a/Project/MoreFreeTime/MoreFreeTime/ScheduleControllerViewController.swift b/Project/MoreFreeTime/MoreFreeTime/ScheduleControllerViewController.swift
new file mode 100644
index 0000000000000000000000000000000000000000..827e722dfad0e881577c73f21a9a3f3e1fdecb5b
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime/ScheduleControllerViewController.swift
@@ -0,0 +1,219 @@
+//
+// ScheduleControllerViewController.swift
+// MoreFreeTime
+//
+// Created by Dylan Zeller on 11/25/18.
+// Copyright © 2018 Dylan Zeller. All rights reserved.
+//
+
+import UIKit
+import SQLite
+class ScheduleControllerViewController: UIViewController/*, UITableViewDelegate, UITableViewDataSource*/ {
+
+ var database : Connection!
+
+ let eventsTable = Table("events")
+ let id = Expression<Int>("id")
+ let eventTitle = Expression<String>("title")
+ let eventStartDate = Expression<String>("startDate")
+ let eventStartTime = Expression<String>("startTime")
+ let eventEndDate = Expression<String>("endDate")
+ let eventEndTime = Expression<String>("endTime")
+ let eventLocation = Expression<String>("location")
+ let eventDescription = Expression<String?>("description")
+
+
+
+ @IBOutlet weak var dateLabel: UILabel!
+
+ var dateObserver : NSObjectProtocol?
+ var newEventObserver : NSObjectProtocol?
+
+ var formattedDate: String {
+ get {
+ let formatter = DateFormatter()
+ formatter.dateStyle = .long
+ return formatter.string(from: Date())
+ }
+ }
+
+ var formattedShortDate : String {
+ let formatter = DateFormatter()
+ formatter.dateStyle = .medium
+ return formatter.string(from: Date())
+ }
+
+ var currentDate : String?
+ var currentShortDate : String?
+ var newEvent : Event?
+ var events : [Event] = []
+
+ @IBOutlet weak var eventsViewer: UIView!
+ @IBOutlet weak var scrollView: UIScrollView!
+
+ override func viewDidLoad() {
+ super.viewDidLoad()
+ // This will open and set the global database
+ do {
+ let docDirectory = try FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
+ let fileUrl = docDirectory.appendingPathComponent("testing1").appendingPathExtension("sqlite3")
+ let database = try Connection(fileUrl.path)
+ self.database = database
+ } catch {
+ print(error)
+ }
+ addObservers()
+ deleteTable()
+ createTable()
+ getTodaysEvents()
+
+ currentDate = formattedDate
+ currentShortDate = formattedShortDate
+ dateLabel.text = currentDate
+ //Pull all events from Database that correspond to date
+
+
+ }
+
+ func addObservers() {
+ dateObserver = NotificationCenter.default.addObserver(forName: .saveStartDateTime, object: nil, queue: OperationQueue.main) {
+ (notification) in let dateVc = notification.object as! DatePopupViewController
+ self.dateLabel.text = dateVc.formattedDateLong
+ self.currentDate = dateVc.formattedDateLong
+ self.currentShortDate = dateVc.formattedDate
+ //When the date changes, also clear the events and populate with the current dates events
+ }
+ newEventObserver = NotificationCenter.default.addObserver(forName: .saveNewEvent, object: nil, queue: OperationQueue.main) {
+ (notification) in let newEvent = notification.object as! Event
+ self.insertEvent(e: newEvent)
+ print("Events List:")
+ self.getTodaysEvents()
+ print(self.events[0].getTimeInMinutes())
+ self.sortEvents()
+ }
+ //print("added observer")
+ }
+
+ func getTodaysEvents() {
+ var todaysEvents : [Event] = []
+ do {
+ let dbEvents = try self.database.prepare(eventsTable)
+ for dbEvent in dbEvents {
+ if dbEvent[self.eventStartDate].isEqual(currentShortDate) {
+ let event = Event(title: dbEvent[self.eventTitle], startDate: dbEvent[self.eventStartDate], startTime: dbEvent[self.eventStartTime], endDate: dbEvent[self.eventEndDate], endTime: dbEvent[self.eventEndTime], location: dbEvent[self.eventLocation], description: dbEvent[self.eventDescription]!)
+ todaysEvents.append(event)
+ }
+ }
+ } catch {
+ print(error)
+ }
+ self.events = todaysEvents
+ }
+
+ func sortEvents() {
+ events = events.sorted(by: { $0 < $1 })
+ }
+
+ func createTable() {
+ let createTable = self.eventsTable.create { (table) in
+ table.column(self.id, primaryKey: true)
+ table.column(self.eventTitle)
+ table.column(self.eventStartDate)
+ table.column(self.eventStartTime)
+ table.column(self.eventEndDate)
+ table.column(self.eventEndTime)
+ table.column(self.eventLocation)
+ table.column(self.eventDescription)
+ }
+
+ do {
+ try self.database.run(createTable)
+ print("Created Table")
+ } catch {
+ print(error)
+ }
+ }
+
+ func deleteTable() {
+ let deleteTable = self.eventsTable.delete()
+ do {
+ try self.database.run(deleteTable)
+ } catch {
+ print(error)
+ }
+ }
+
+ func deleteEvent() {
+ let event = self.eventsTable.filter(self.id == 1)
+ let deleteEvent = event.delete()
+ do {
+ try self.database.run(deleteEvent)
+ } catch {
+ print(error)
+ }
+ }
+
+ func insertEvent(e : Event) {
+ let insertEvent = self.eventsTable.insert(self.eventTitle <- e.title, self.eventStartDate <- e.startDate, self.eventStartTime <- e.startTime, self.eventEndDate <- e.endDate, self.eventEndTime <- e.endTime, self.eventLocation <- e.location, self.eventDescription <- e.description)
+ do {
+ try self.database.run(insertEvent)
+ print("Inserted Event")
+ } catch {
+ print("Error")
+ }
+ }
+
+ func insertGenericEvent() {
+ let insertEvent = self.eventsTable.insert(self.eventTitle <- "Name", self.eventStartDate <- "EventStartDate", self.eventStartTime <- "EventStartTime",self.eventEndDate <- "EventEndDate", self.eventEndTime <- "EventEndTime", self.eventLocation <- "EventLocation", self.eventDescription <- "EventDescription")
+
+ do {
+ try self.database.run(insertEvent)
+ print("Inserted Event")
+ } catch {
+ print("Error")
+ }
+ }
+
+ func updateEvent() {
+ let event = self.eventsTable.filter(self.id == 1)
+ let updateEvent = event.update(self.eventLocation <- "Meet me here.")
+ do {
+ try self.database.run(updateEvent)
+ } catch {
+ print(error)
+ }
+ }
+
+ func listEvents() {
+ do {
+ let events = try self.database.prepare(eventsTable)
+ for event in events {
+ print("eventId: \(event[self.id]), title: \(event[self.eventTitle]), startDate: \(event[self.eventStartDate]), startTime: \(event[self.eventStartTime]), endDate: \(event[self.eventEndDate]), endTime: \(event[self.eventEndTime]),location: \(event[self.eventLocation]), description: \(event[self.eventDescription]!),")
+ }
+ } catch {
+ print(error)
+ }
+ }
+
+ func populateEvents() {
+ //This is where the events in the page will be populated from
+ }
+
+ override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
+ if segue.identifier == "toCurrentDatePopupView" {
+ let popup = segue.destination as! DatePopupViewController
+ popup.isStart = true
+ }
+ }
+
+ override func viewDidDisappear(_ animated: Bool) {
+ super.viewDidDisappear(animated)
+
+ if let dateObserver = dateObserver {
+ NotificationCenter.default.removeObserver(dateObserver)
+ }
+ if let newEventObserver = newEventObserver {
+ NotificationCenter.default.removeObserver(newEventObserver)
+ }
+ }
+}
diff --git a/Project/MoreFreeTime/MoreFreeTime/ViewController.swift b/Project/MoreFreeTime/MoreFreeTime/ViewController.swift
new file mode 100644
index 0000000000000000000000000000000000000000..67ca123636bb1e811559833a9ef75b93beb16ec9
--- /dev/null
+++ b/Project/MoreFreeTime/MoreFreeTime/ViewController.swift
@@ -0,0 +1,20 @@
+//
+// ViewController.swift
+// MoreFreeTime
+//
+// Created by Dylan Zeller on 11/23/18.
+// Copyright © 2018 Dylan Zeller. All rights reserved.
+//
+
+import UIKit
+
+class ViewController: UIViewController {
+
+ override func viewDidLoad() {
+ super.viewDidLoad()
+ // Do any additional setup after loading the view, typically from a nib.
+ }
+
+
+}
+
diff --git a/Project/MoreFreeTime/SQLite_Example.swift b/Project/MoreFreeTime/SQLite_Example.swift
new file mode 100644
index 0000000000000000000000000000000000000000..280df30b818a34de9054b365e39498bb54de1c34
--- /dev/null
+++ b/Project/MoreFreeTime/SQLite_Example.swift
@@ -0,0 +1,84 @@
+//
+// SQLite_Example.swift
+// MoreFreeTime
+//
+// Created by Dylan Zeller on 11/26/18.
+// Copyright © 2018 Dylan Zeller. All rights reserved.
+//
+/*
+import Foundation
+
+ let eventsTable = Table("events")
+ let id = Expression<Int>("id")
+ let eventTitle = Expression<String>("title")
+ let eventStartDate = Expression<String>("startDate")
+ let eventStartTime = Expression<String>("startTime")
+ let eventEndDate = Expression<String>("endDate")
+ let eventEndTime = Expression<String>("endTime")
+ let eventLocation = Expression<String?>("location")
+ let eventDescription = Expression<String?>("description")
+
+
+func createTable() {
+ let createTable = self.eventsTable.create { (table) in
+ table.column(self.id, primaryKey: true)
+ table.column(self.eventTitle)
+ table.column(self.eventStartDate)
+ table.column(self.eventStartTime)
+ table.column(self.eventEndDate)
+ table.column(self.eventEndTime)
+ table.column(self.eventLocation)
+ table.column(self.eventDescription)
+ }
+
+ do {
+ try self.database.run(createTable)
+ print("Created Table")
+ } catch {
+ print(error)
+ }
+}
+
+func deleteEvent() {
+ let event = self.eventsTable.filter(self.id == 1)
+ let deleteEvent = event.delete()
+ do {
+ try self.database.run(deleteEvent)
+ } catch {
+ print(error)
+ }
+}
+
+func insertEvent() {
+ let insertEvent = self.eventsTable.insert(self.eventTitle <- "Name", self.eventStartDate <- "EventStartDate", self.eventStartTime <- "EventStartTime",self.eventEndDate <- "EventEndDate", self.eventEndTime <- "EventEndTime", self.eventLocation <- "EventLocation", self.eventDescription <- "EventDescription")
+
+ do {
+ try self.database.run(insertEvent)
+ print("Inserted Event")
+ } catch {
+ print("Error")
+ }
+}
+
+func updateEvent() {
+ let event = self.eventsTable.filter(self.id == 1)
+ let updateEvent = event.update(self.eventLocation <- "Meet me here.")
+ do {
+ try self.database.run(updateEvent)
+ } catch {
+ print(error)
+ }
+}
+
+func listEvents() {
+ do {
+ let events = try self.database.prepare(eventsTable)
+ for event in events {
+ print("eventId: \(event[self.id]), title: \(event[self.eventTitle]), location: \(event[self.eventLocation])")
+ }
+ } catch {
+ print(error)
+ }
+}
+
+ */