This document is meant to guide you through my project as you navigate to different pages.
When you first arrive to the homepage, you are shown several options for user authentication. There are the sign in/sign up links located on the top right. When you look under the hero image, you'll see a link to login as a guest or login using Google. For now, I'd suggest using the guest login button to experience the website!
- For the google login, I used the google omniauth gem.
- The guest login button creates a new user model in the database with data generated by the Faker gem, when signed out as a guest, everything associated to that user is destroyed.
After you have logged in, you are immediately taken to the dashboard. On the left side of the dashboard, you can see your profile image and a dropdown that allows you to change your hosting status. Try them out!
On the right side you have the main content for the dashboard which includes friend requests and a listing of trips that you have created. You can interact with both, try accepting or rejecting some friends! Try editing/deleting a trip.
You can also create a new trip which will load a modal, you don't actually have to leave the page to create new things, cool huh?
- The page is broken up into several composite views, so when something updates, only that subview has to re-render and not the whole page. For this page the major components are: header view, the dashboard sidebar and the dashboard main.
- The avatar upload uses the Filepicker gem and imagemagick, it stores the images using AWS S3.
On the header you will notice that if you hover over your avatar, a dropdown menu will appear and you can navigate through the website. Try visiting your profile page. Here you will see what your hosting status is, when you were last logged in, references that other people wrote for you and on the very bottom of the age, a listing of your friends.
Try visiting one of your friends pages by clicking on their name. You will notice that you have the option to 'unfriend' them on their profile page. You will also see references that other people wrote for them, try writing your own! You can delete references that you have written for others!
One of the last features on the profile page is requesting them as your host, try it out. After completing the form, it will submit a request to the user for them to host you. You can check out the details by visiting your "inbox" on the dropdown menu and clicking on that request.
- Every request that is made is done through a model or collection on the Backbone.js side, which sends an AJAX request to the rails controller.
This section of the website is a complete listing of every request that you made and requests that others have made. Try looking at a request that you made, you will notice that you can cancel it and write messages to the user.
If you were the one that received the request, instead of cancelling, you will see the options to accept or reject the request. If you logged in as a guest, you will see several requests, some of them were made by you and others were made to you. Try accepting/rejecting them and writing some messages!
The last major feature of the website is the ability to search for different types of users. You can search for hosts (those that have their hosting status set to "ACCEPTING GUESTS"), all members or travelers (those who have created trips).
This feature is useful because you can search for hosts that are located in areas where you plan to visit and make a connection!
- For searching, I used PgSearch on the model. It uses a feature called trigram which can find closely matched results, even if you misspell something!
If you have any questions or have found any bugs, please e-mail me at [email protected], thanks for visiting my project!