public class HomeScreen
This class is the first page the user sees upon logging in, and helps them navigate the application.
Properties
firebaseDatabas: Stores a reference to the database
firebaseAuth: Stores a reference to the authenticator
Methods
public HomeScreen(firebaseDatabase, firebaseAuth)
- constructor for the class
- parameters - firebaseDatabase, firebaseAuth - information needed to instantiate the class
private class _HomeScreen
- First page that is generated when the application opens.
Properties
displayedGroups: List that contains all groups the user is in.
observing: boolean to state whether the state is currently observing
code: String that contains the code fo the user.
Methods
updateDatabase(groupID)
- updates the database with user information
- parameters - groupID - Updates database with new information
showQR(context)
- Allows the user to scan or enter a QR code/manual code
- parameters - context - The page the user is currently on
showAdd(context)
- Allows the user to add a new group
- parameters - context - The page the user is currently on
showSettings(context)
- Allows the user to go the settings page
- parameters - context - The page the user is currently on
selectedGroup(int group)
- Takes user to the appropriate group page depending on what they clicked.
- parameters - group - The group the user clicked.
observeGroups()
- Allows the user to view all groups they are a part of
public class CalendarPage
Purpose
The page that allows the user to view their calendar
Properties
group: A map of dynamic and dynamic type that represents the group.
title: A string representing the title of the page.
Methods
createState()
- Returns a state object for the CalendarPage.
private class _CalendarPage
Properties
allEvents: A list of Appointment objects representing all the events in the calendar.
Methods
getData()
- Asynchronously gets all the calendar events and round meetings for the members in the group.
chosenDateAddedToCalendar(DateTime begTime, DateTime finTime, String meetingName)
- Asynchronously adds a new meeting to the calendar.
- Parameters begTime, finTime, meetingName - Adds the appropriate information to the page's calendar.
_handleSignIn()
- Asynchronously handles signing into Google.
getPrimaryCalendar()
- Asynchronously retrieves the primary calendar for the current user.
public class LinkCalendar
Properties
allEvents: A list of Appointment objects representing all the events in the calendar.
Methods
getData()
- Asynchronously gets all the calendar events and round meetings for the members in the group.
chosenDateAddedToCalendar(DateTime begTime, DateTime finTime, String meetingName)
- Asynchronously adds a new meeting to the calendar.
_handleSignIn()
- Asynchronously handles signing into Google.
getPrimaryCalendar()
- Asynchronously retrieves the primary calendar for the current user.
public class CodeReception
Purpose
The page that allows the user to receive a QR code and handle it
Properties
title: A string representing the title of the page.
Methods
createState()
- Returns a state object for CodeReception.
private class _CodeReceptionState
Properties
groupId: TextEditingController that reads the incoming group information
Methods
updateDatabase()
- Asynchronously updates the database with the incoming group information.
camSanner()
- Allows for access to the camera to read the QR code and update the database accordingly.
public class CodeSharing
Purpose
The page that allows the user to share a QR code to others
Properties
title: A string representing the title of the page.
Methods
createState()
- Returns a state object for CodeSharing.
private class _CodeSharingState
Properties
Methods
getCode()
- Asynchronously obtains the code from the database to be used.
public class DisplayCode
Purpose
The page that allows the user to display the code for others to utilize
Properties
groupName: A dynamic list that contains the group names.
nameId: A dynamic list that contains the ID names.
Methods buildList(List groupName, List nameId)
- Creates the group code in a presentable manner for the user to see it
- parameters groupName, nameId - Lists that allow for the QR code to be created.
- returns a Widget to be used to display the QR code
public class Display
Purpose
The page that allows the user to display the code for others to utilize
Properties
groupName: A dynamic list that contains the group names.
nameId: A dynamic list that contains the ID names.
Methods
public class Qr
Purpose
Allows for the scanning of the QR code
Properties
scanning: A boolean that determines whether the code is being scanned.
Methods
scanQR(Buildcontext context)
- Scans the QR code given the current state of the application.
public class AddEvent
Purpose
The page that allows the user to share a QR code to others
Properties
title: A string representing the title of the page.
ref: a Database reference that refers to the user's currently stored events.
Methods
createState()
- Returns a state object for AddEvent.
private class _AddEventState
Properties
start: the start date of the custom event
end: The end date of the custome event
ref: a Database reference that refers to the user's currently stored events.
Methods
public class AllGroups
Purpose
The page that displays all groups to the user.
Properties
uid: The user's database ID
ref: A Database reference that refers to the user's currently stored events.
Methods
createState()
- Returns a state object for AllGroups.
private class _AllGroupsState
Properties
uid: The user's database ID
ref: A Database reference that refers to the user's currently stored events.
Methods
grabGroups()
- Obtains and returns the groups for the user from the database to be displayed to the user
- Returns a Future List of Maps that contain all groups and their pertinent information.
public class GroupCreation
Purpose
The page that allows the user to create a new page.
Properties
userID: The user's database ID
firebaseDatabase: A Database reference that refers to the user's currently stored events.
Methods
createState()
- Returns a state object for GroupCreation.
private class _GroupCreationState
Properties
Methods
createMaterialColor(Color color)
- Creates the color material to be used when displaying the group
- Parameters color - The color chosen by the user.
- Returns A MaterialColor object that contains the information needed to display the color in the future.
buttonPress(BuildContext context)
- Parameters context - The page seen by the user.
- An Asynchronous method that creates the group when the user pressed the button.
_openDialog(String title, Widget content)
- Creates a popup for the user to navigate.
- Parameters title, content - The information needed to create the information in the popup.
colorTapped()
- Indicates which color code was selected by the user
public class GroupHomePage
Purpose
Displays all information for the group to the user.
Properties
title: String that contains title of the page
databaseReference - reference to the database to get all related information
myGroup - a Map of dynamic, dynamic that contains any additional information about the group.
Methods
createState()
- Returns a state object for GroupHomePage.
private class _HomeScreen
Properties
databaseReference - reference to the database to get all related information
instaCount - Number of users using Instagram
fbCount - Number of users using Facebook
discordCount - Number of users using Discore
messagesCount - Number of users using Texting
snapCount - Number of users using Snapchat
instaHandles - List of all group member instagram information
fbHandles - List of all group member Facebook information
discordHandles - List of all group member Discord information
messagesHandles - List of all group member Texting information
snapHandles - List of all group member Snapchat information
chosenPlatform - platform with the most usage
chosenHandles - List of all group member chosen information
Methods
grabGroupMembers()
- Asynchronously pulls data from the database
- Returns - List of all group members
leaveGroup()
- Allows the user to leave the group*
getData()
- Asynchronously pulls data from the database
- Returns - HashMap of all group information
getHandles()
- Asynchronously pulls data from the database
- Returns - HashMap of all social media information
getEventList()
- Asynchronously pulls data from the database
- Returns - HashMap of all events from the users
FindNextBestDate()
- Asynchronously pulls data from the database
- Returns - First available date available to all group members.
GetFirstDate()
- Asynchronously pulls data from the database
- Returns - Date of the first available time for all users to meet.
RemoveCurrentDate()
- Asynchronously pulls data from the database
- Returns - 1 if the method was successful, -1 if unsuccessful.
getQr()
- Creates a QR code to be used.
public class GroupMember
Purpose
The page that allows the user to create a new page.
Properties
uid: The user's database ID
name: The user's name
email: The user's name
snapchat: The user's snapchat
discord: The user's discord
sms: The user's sms number
instagram: The user's instagram
facebook: The user's facebook
hasCalendar: A boolean showing whether the member has integrated their calendar.
public class GroupView
Purpose
The page that allows the user to view their group.
Properties
group: The associated Round Group
Methods
createState()
- Returns a state object for GroupView.
private class _GroupView
Properties
appointment: Current time of the next meeting
parsedMembers: A list containing all current member information
rsvped: A list of members who have confirmed.
snapCount: number of snapchat users
smsCount: number of texting users
discordCount: number of discord users
instacount: number of instagram users
fbCount: number of facebook users
calCount: number of users with integrated calendars
isObserving: whether the user is a member
isAdmin: whether the user is the creator of the group
group: the associate Round group.
Methods
GetFirstDate()
- Asynchronously pulls data from the database
- Returns - Date of the first available time for all users to meet.
observeGroup()
- Determines whether the current viewer is an admin.
triggerDelete()
- Asynchronous method that deletes the group.
popMain()
- returns to the previous page.
leaveGroup()
- Asynchronously removes the user from the group
calculateSocialCounts()
- Tabulates how many people are using each platform
profileTap(int index)
- determines which profile was selected
- Returns - Integer showing which platform was tapped.
socialTap()
- determines which social was tapped.
- Returns - Integer showing which social media information to display.
_openDialog(String title, Widget content)
- Creates a popup for the user.
- Parameters title, content - information needed to create the dialogue
socialWidget(String name, int count, BuildContext context)
- Creates a Widget for the specified social media
- Parameters name, count, context - information needed to create the widget.
- Returns - A widget displaying the appropriate social media information.
handleCalendarRequest()
- Asynchronously handles requests regarding the calendar
RemoveCurrentDate()
- Asynchronously pulls data from the database
- Returns - 1 if the method was successful, -1 if unsuccessful.
getEventList()
- Asynchronously pulls data from the database
- Returns - HashMap of all events from the users
FindNextBestDate()
- Asynchronously pulls data from the database
- Returns - First available date available to all group members.
calendar()
- Asynchronously pulls data from the database
share()
- displays the group information for others to use.
showRSVPList()
- displays all users expected to make the meeting.
public class Explainer
Purpose
The page that briefly explains Round to the user.
Properties
pageNo: int that contains information about the user's device
headers: array of headers used throughout
texts: array of text used throughout
Methods
buttonPress(BuildContext context)
- Observer to see if a button is pressed.
- Parameters context - current page information for the user.
createState()
- Returns a state object for GroupView.
public class SignIn
Purpose
The page that allows the user to sign in with an existing account.
Properties
firebaseDatabase: Database information for the user.
firebaseAuth: Authenticator for the user.
email: the user's email.
password: the user's password.
Methods
buttonPress(BuildContext context)
- Observer to see if a button is pressed.
- Parameters context - current page information for the user.
SignIn(BuildContext context)
- Uses credentials to sign the user in.
- Parameters context - current page information for the user.
changedEmail(String string)
- Recognizes whether a new email is used.
- Parameters string - new string to be used.
changedPassword(String string)
- Recognizes whether a new password is used.
- Parameters string - new string to be used.
createState()
- Returns a state object for GroupView.
public class SignUp
Purpose
The page that allows the user to sign Up with an existing account.
Properties
firebaseDatabase: Database information for the user.
firebaseAuth: Authenticator for the user.
name: the user's name.
email: the user's email.
password: the user's password.
ref: A database reference to store the newly created data.
uid: the user's uid.
Methods
buttonPress(BuildContext context)
- Observer to see if a button is pressed.
- Parameters context - current page information for the user.
SignIn(BuildContext context)
- Uses credentials to sign the user in.
- Parameters context - current page information for the user.
changedName(String string)
- Recognizes whether a new name is used.
- Parameters string - new string to be used.
changedEmail(String string)
- Recognizes whether a new email is used.
- Parameters string - new string to be used.
changedPassword(String string)
- Recognizes whether a new password is used.
- Parameters string - new string to be used.
createState()
- Returns a state object for GroupView.
public class Social Onboarding
Purpose
The page that allows the user to enter their desired social media information.
Properties
firebaseDatabase: Database information for the user.
firebaseAuth: Authenticator for the user.
insta: the user's instagram.
fb: the user's facebook.
discord: the user's discord.
snap: the user's snapchat.
sms: the user's sms number.
Methods
buttonPress(BuildContext context)
- Observer to see if a button is pressed.
- Parameters context - current page information for the user.
facebookChanged(String string)
- Recognizes whether a new facebook is used.
- Parameters string - new string to be used.
instagramChanged(String string)
- Recognizes whether a new instagram is used.
- Parameters string - new string to be used.
snapChanged(String string)
- Recognizes whether a new snapchat is used.
- Parameters string - new string to be used.
discordChanged(String string)
- Recognizes whether a new discord is used.
- Parameters string - new string to be used.
smsChanged(String string)
- Recognizes whether a new sms number is used.
- Parameters string - new string to be used.
createState()
- Returns a state object for GroupView.
public class About
Purpose
The page that displays information about Round.
Properties
title: The title of the page
Methods
createState()
- Returns a state object for AllGroups.
public class AboutState
Properties
_googleSignIn: Signs in to Google Calendar for the user.
ref: A Database reference that refers to the user's currently stored events.
Methods
getPrimaryCalendar()
- Obtains all events from the user's Google Calendar, and then stores them in the database.
public class EditAccountInfo
Purpose
The page that allows the user to edit their account information.
Properties
title: The name of the page.
ref: A Database reference that refers to the user's currently stored events.
Methods
createState()
- Returns a state object for AllGroups.
private class _EditAccountInfoState
Properties
fname: The user's first name
lname: The user's last name
email: The user's first email
ref: A Database reference that refers to the user's currently stored events.
_firstNameController: The text controller that reads the user's first name
_lastNameController: The text controller that reads the user's last name
_emailController: The text controller that reads the user's email
Methods
getData()
- Asynchronous call that obtains user information from the database to be edited
saveChanges()
- Asynchronous call that stores user information to the database.
public class Settings
Purpose
The page that allows the user to edit their settings.
Properties
firebaseDatabase: Database information for the user.
firebaseAuth: Authenticator for the user.
Methods
createState()
- Returns a state object for AllGroups.
private class _EditAccountInfoState
Properties
name: The user's name
email: The user's first email
snap: The user's snapchat
discord: The user's discord
messages: The user's sms number
isnta: The user's instagram
fb: The user's facebook
cal: A boolean showing whether the member has integrated their calendar.
newName: The user's update name
newEmail: The user's updated email
observing: A boolean to determine whether the user viewing the page.
ref: A Database reference that refers to the user's currently stored events.
_firstNameController: The text controller that reads the user's first name
_lastNameController: The text controller that reads the user's last name
_emailController: The text controller that reads the user's email
Methods
changedName(String string)
- Recognizes whether a new name is used.
- Parameters string - new string to be used.
changedEmail(String string)
- Recognizes whether a new email is used.
- Parameters string - new string to be used.
saveInfo()
- Asynchronous call that stores user information to the database.
ObserveData()
- Handles whether the user is an observer or not.
_handleSignIn()
- Asynchronously handles signing into Google.
getPrimaryCalendar()
- Asynchronously retrieves the primary calendar for the current user.
saveSocial(String media)
- Saves the social information to the appropriate platform.
- Parameters media - The handle being saved.
selectedSocial(String social)
- handles the currently selected social media platform.
- Parameters media - The handle being handled.
_handleCal(BuildContext context)
- handles GoogleCalendar information.
- parameters context - The current page the user is looking at.
editProfile()
- Allows the user to edit their profile.
about(BuildContext context)
- Asynchronously shows the user Round's information.
- parameters context - The current page the user is looking at.
signOut()
- Asynchronously signs the user out of their account.
- parameters context - The current page the user is looking at.