- Enable Virtualization for your device, the specifics of this depends on your processor and OS but this usually involves enabling a setting in your device's BIOS
- Download and install the latest version of Android Studio
- Clone the project onto the machine with Android Studio
- Open the project in Android Studio
- Select Build->Make Project (or hit Ctrl+F9)
- Tools->Android->AVD Manager
- Click Create Virtual Device
- Make sure Phone is the selected category
- Select Pixel 2 from the list of devices
- Press next
- Choose the API 27 release with Google APIs enabled
- Enter a device name if you want a different name from the default name
- Select Portrait for the Startup Orientation
- For Graphics, select Automatic
- Make sure Enable Device Frame is checked
- Press finish
- Go to Run->Run App (or hit Shift+F10)
- Under Available Virtual Devices, select the device you created and click Ok
- Once the device has finished setting up, press the circle and then the up arrow
- Click on the Settings app and go to Apps & notifications
- Select See All Apps and click on Hitch
- Click on Permissions and enable the Location permission
- Press the circle and then the up arrow
- Click on the Hitch app
- App should start
(These are not bugs in the code. Rather, they are uncontrollable issues that arise as a result of some outside force)
- Logging in and signing up take a longer amount of time the worse the internet connection is
- The map may not work unless you have a powerful enough computer (in terms of RAM, mostly) and have enabled graphics acceleration in the options menu of your Android Virtual Device. Also, make sure "Location Services" are enabled on your Android Virtual Device.
In our Draft Project, there was a link to our Firebase Database (https://hitch-7466c.firebaseio.com/). Invitations to join this Firebase project were sent to [email protected] and [email protected]. However, this is no longer neccessary. All use cases can be successfully tested without manipulating Firebase data directly. In fact, manipulating data directly in the Firebase Database may cause bugs. Please do not do so unless a new bug that impedes testing is discovered.
- Open the app
- Click on the "Sign up" text after "Don't have an account?"
- Enter your details
- Click the "Sign up" button
- Attempt to log in. If you succeed, then you have successfully created a new account
- Open the app
- Log in (Or create an account first, then log in)
- Click on the green square button with a plus icon
- Enter whatever details you wish
- Post your Ride post
- Go back to the main menu
- Click the "Rides" button
- Now, click the "My Posts" button
- If the post was added successfully, the post you just added should be visible
- Open the app
- Log in (Or create an account first, then log in)
- Enter a destination in the Search Bar (If you simply want to see all the available Rides, then after you have entered some text, delete that text, then exit out of the search bar completely, by clicking the "x" twice)
- Select a Ride post from the list
- Click on it
- Press the "Request to Join" button
- Go back to the main menu
- Click the "Rides" button
- Now, click the "Requested Rides" button
- If the post was added successfully, the post you just added should be visible
- Open the app
- Log in (Or create an account first, then log in)
- Click the "Rides" button
- Now, click the "Accepted Rides" button
- All the Rides that you have been accepted to will be visible, which may be none (you may need to use another account to make a post (UC2), have this account request to join it (UC3), then use the first account to accept requests (UC11) in order to have at least one Ride post visible on this page)
- Open the app
- Log in (Or create an account first, then log in)
- Click the "Rides" button
- Now, click the "Accepted Rides" button
- If successful, all the Rides that you have been accepted to will be visible, which may be none (you may need to use another account to make a post (UC2), have this account request to join it (UC3), then use the first account to accept requests (UC11) in order to have at least one Ride post visible on this page)
- Click on a Ride post
- If successful, you will be able to see all the details of the Ride you selected: the driver’s name, their profile picture, where the driver is departing from, when they are leaving, where the driver is going to, the Ride’s description, and how many seats are available
- Open the app
- Log in (Or create an account first, then log in)
- Click the "Rides" button
- Now, click the "Requested Rides" button
- If successful, all the Rides that you have requested to join will be visible, which may be none (you may need to use another account to make a post (UC2) and have this account request to join it (UC3))
- Open the app
- Log in (Or create an account first, then log in)
- Click the "Rides" button
- Now, click the "Requested Rides" button
- If successful, all the Rides that you have requested to join will be visible, which may be none (you may need to use another account to make a post (UC2) and have this account request to join it (UC3))
- Click on a Ride post
- If successful, you will be able to see all the details of the Ride you selected: the driver’s name, their profile picture, where the driver is departing from, when they are leaving, where the driver is going to, the Ride’s description, how many seats are available, and a button to "Cancel Request"
- Open the app
- Log in (Or create an account first, then log in)
- Click the "Rides" button
- Now, click the "My Posts" button
- If successful, all the Rides that you created will be visible, which may be none (you may need to make a post first (UC2))
- Open the app
- Log in (Or create an account first, then log in)
- Click the "Rides" button
- Now, click the "My Posts" button
- If successful, all the Rides that you created will be visible, which may be none (you may need to make a post first (UC2))
- Click on a Ride post
- If successful, you will be able to see all the details of the Ride you selected: the driver’s name, their profile picture, where the driver is departing from, when they are leaving, where the driver is going to, the Ride’s description, how many seats are available, a button to “Accept Requests”, and a button to view "Accepted Passengers"
- Open the app
- Log in (Or create an account first, then log in)
- Click the "Rides" button
- Now, click the "My Posts" button
- If successful, all the Rides that you created will be visible, which may be none (you may need to make a post first (UC2))
- Click on a Ride post
- You will be able to see all the details of the Ride you selected
- Click the "Accept Requests" button
- You will see a list of all the people who have requested to join your Ride
- Click on a person to accept them (they will not disappear from the list until you have backed out to the “My Posts” menu)
- Back out to the “My Posts” menu
- Click on the same Ride post you were just viewing
- Click the “Accepted Passengers” button
- If successful, the person you just accepted will be visible (if you log in to the account that was accepted, this Ride will also be visible in their “Accepted Rides” section under the “Rides” section accessible by clicking the “Rides” button on the homepage)
- Open the app
- Log in (Or create an account first, then log in)
- Enter a destination in the Search Bar (If you simply want to see all the available Rides, just exit out of the search bar completely, by clicking the "x" twice)
- If successful, a list of every Ride post with a destination that starts with the information entered by the user is displayed (if you have exited out of the search bar completely, then all available Rides will be displayed instead)
- Open the app
- Log in (Or create an account first, then log in)
- Click the map icon in the navigation bar at the bottom of the screen (second from the right)
- If initial map construction is successful, then there will be a marker at each post's destination
- Click on a marker
- If successful, a small window will pop up at the marker showing the destination and the post's description
- These can be verified in two ways: a. View the post through the search bar and confirm the fields are the same b. Examine the Firebase database and verify the information is correct
- Click on the window
- If successful, you will be taken to a screen showing the post's details
- These can be verified to be correct using the methods from step 7
- Open the app
- Log in (Or create an account first, then log in)
- Click the profile icon in the navigation bar at the bottom of the screen (last one on the right)
- If successful, the information you entered previously (either from account creation (UC1) or editing the profile (UC14) will be displayed
- Open the app
- Log in (Or create an account first, then log in)
- Click the profile icon in the navigation bar at the bottom of the screen (last one on the right)
- First, click on the edit profile button, located in the top left corner
- Then, input the desired fields to update your profile
- Select "Finish", then the profile will be updated.
- If successful, the information you entered previously will be displayed, overwriting any previous information, while unchanged fields will display the same information as before
- Open the app
- Log in (Or create an account first, then log in)
- Click the "Rides" button
- Now, click the "Requested Rides" button
- If successful, all the Rides that you have requested will be visible, which may be none (you may need to request to join first (UC3))
- Click on a Ride post
- You will be able to see all the details of the Ride you selected
- Click the "Cancel Request" button
- If successful, the Ride will no longer appear in your "Requested Rides" section (if you log in to the account that made the Ride post, the account that cancelled their request will no longer appear under the "Accept Passengers" menu from this Ride's details screen)
- Open the app
- Log in (Or create an account first, then log in)
- Click the "Rides" button
- Now, click the "My Posts" button
- If successful, all the Rides that you created will be visible, which may be none (you may need to make a post first (UC2))
- Click on a Ride post
- You will be able to see all the details of the Ride you selected
- Click the "Accepted Passengers" button
- If successful, a list of all the accepted passengers will be displayed (if none are accepted, a message will appear telling you so, instead of taking you to an empty list)
- Open the app
- Log in (Or create an account first, then log in)
- Click on the profile icon in the bottom of the navigation bar (last icon)
- User clicks on the profile picture icon
- User chooses icon to set as their new profile picture (If you have no pictures available, take one with the "Camera" app)
- If successful, when viewing you profile, the picture you chose will be visible, replacing the default profile picture
- Open the app
- Log in (Or create an account first, then log in)
- Click the "Rides" button
- Now, click the "My Posts" button
- Click the specific post to be deleted
- Click the delete post button
- If successful, the post will no longer be visible in the "My Rides" section (any accounts that were requested or accepted to the deleted post will no longer see this post in their "Requested Rides" section or their "Accepted Rides" section, respectively)
- Open the app
- Log in (Or create an account first, then log in)
- Click on the “Profile” icon (last one on the right)
- Click on the “Edit Profile” button
- Click on the “Delete Account”, at the very bottom
- If successful:
a. The user will be removed from the database
b. All of the user’s posts will be deleted (UC18)
c. All of the user’s requests to join Rides will be cancelled (UC15)
d. User will be removed from the list of accepted passengers of any Ride that they have been accepted to, and that Ride gains an available spot