A GPS app that allows you to travel with other together in a single instance of map. Track places where travel buddies have been to. It also allows for sharing spots in town that would have gone unnoticed by visitors otherwise.
- Category: Social Networking / Location Sharing / Map
- Mobile: This app would be primarily developed for mobile devices. Functionality would be limited to mobile devices since it will be used on the move.
- Story: Finds interesting places in town where travel buddies have been to. Users can communicate with one another if they choose to. It would also have an option for reviews of the different places that were visited. Travel together as group.
- Market: Any individual could choose to use the app. Users would be organized into age groups to allow flow in communication.
- Habit: This app could be used whenever the user would like to take a stroll in their own city or town or wherever they might be traveling to.
- Scope: First users would connect based on their location, it could then turn into an application that could be used as a travel guide, and lastly a possible means of meeting people.
- User can register an account
- User can log into app
- User can find coordinates on map page
- User gets personalized weather info
- User can pin locations on the map
- Obtain address and postion from pin on map
- Give user routes to a pinned location
- Follow user on map
- User can opened prototyped perfil page
- User can opened prototyped settings page
- Naviagte together with other users
- Show other users on map
- Gifs created to show build progress and added to README
- Create a narrated walkthrough video of your completed app
- Present your app at Demo Day
Required Must-have Stories
- User logs in to access previous locations and preference settings
- Map settings as well as marked visited places
- Chat window for communication with other users
- User picks desired location on map
- Login
- Register - User signs up or log into the account
- User will be prompted to either register their information to gain access to the app or login in case there is an existing account
- Messaging Screen - Group chat or one-on-one
- Once location is picked user can then contact to other users who are located at the desired place or have been to the specified location
- Profile Screen
- Allows user to upload picture if desired as well as have any information deemed interesting to share
- Map Screen
- Allows user to pinpoint a desired location on map or travel together with others.
- Settings Screen
- Allows user to change language, and notification settings
Tab Navigation (Tab to Screen)
- Specific location on map
- Profile
- Settings
Optional:
Flow Navigation (Screen to Screen)
- Log-in --> Account setup if login is not available
- Specific location on map -- > Locate travel buddies
- Settings --> Toggle settings
- Profile --> Text fields to be modified
Property | Type | Description |
---|---|---|
userId | String | unique id for user |
name | String | user full name |
username | String | unique username for user |
String | user email address | |
password | String | password created by user, must contain at least one uppercase, or capital letter, one lowercase and at least one number |
createdAt | DateTime | date when user is registered |
updatedAt | DateTime | date when user information is updated |
let user = PFUser()
user.name = nameField.text
user.username = userNameTF.text
user.email = emailField.text
user.password = passwordField.text
user.signUpInBackground { (success, error) in
if let error = error{
print("error \(error.localizedDescription)")
}else{ //success
self.userNameTF.text = ""
self.nameField.text = ""
self.emailField.text = ""
self.passwordField.text = ""
self.performSegue(withIdentifier: "loginToHome", sender: nil)
}
}
Logging in:
let userName = userNameTF.text!
let password = passwordField.text!
PFUser.logInWithUsername(inBackground: userName, password: password) { (user, error) in
if user != nil{
self.userNameTF.text = ""
self.passwordField.text = ""
self.performSegue(withIdentifier: "loginToFeed", sender: nil)
}else{
print("error \(error!.localizedDescription)")
}
}
Property | Type | Description |
---|---|---|
userCoordinates | CLLocationDegrees | coordinates representing user's location on map |
navigationStatus | String | user navigation status |
userPinStatus | Boolean | user location pin status |
pinCoordinates | CLLocationDegrees | pin coordinates on map |
sessionStatus | String | network session status |
userPosts | [String] | text posted by other users |
userPostCoordinates | [CLLocationDegrees] | coordinates representing users post coordinates on map |
let mapObject = PFObject(classname: "MapObjects")
mapObeject["userCoordinates"] = userCoordinates
mapObeject["navigationStatus"] = navigationStatus
mapObeject["userPinStatus"] = userPinStatus
mapObeject["pinCoordinates"] = pinCoordinates
mapObeject["sessionStatus"] = sessionStatus
mapObeject["usersPosts"] = usersPosts
mapObeject["usersPostCoordinates"] = usersPostCoordinates
mapObject.saveInBackground { (success, error) in
if success {
print("Map Data saved")
} else {
print("error \(error!.localizedDescription)")
}