Please read all instructions CAREFULLY before starting this project!
The objective of this project is to create the beginnings of a basic property rental web application (think Airbnb). We have provided you with a skeleton Laravel application and some dummy rental property records. Your goal is to complete the tasks from the tasklist below.
We will use this project as a way to analyze your frontend, backend, and database skills.
- Display all properties from the
Propertytable on the homepage as links (this was done for you) - Assign types to the properties HINT: Is a new table needed for this?
- Properties with
property_id1 and 2 should have type: "House" - Properties with
property_id3 and 4 should have type: "Apartment" - Property with
property_id5 should have type: "Cabin"
- Properties with
- Create fake reviews for some (or all) of the properties. Reviews should include a numeric rating from 1-5 (required) as well as a comment (optional).
- Route each link from the homepage to a separate page containing details for each of the properties. The property pages should include: the title of the property, its type, and its reviews.
- Allow users to filter all properties on the homepage by type.
- Allow users to sort all properties on the homepage by average rating.
- It is highly recommended that you use Docker/Laravel Sail as your local Laravel development environment (follow this step-by-step installation tutorial). This will ensure that your local environment has the required packages and dependencies.
- Docker is not necessary to run a local Laravel app, however, if you decide not to use Docker/Sail for your development, be sure to update your DB configurations in the
.envfile. - After cloning/forking the repo, run
composer installfrom theufis-bnbdirectory as well asphp artisan migrate:fresh --seed. - You should now be able to navigate to the homepage of your local site from your browser to see the homepage of the skeleton app we have provided.
- Contact Michelle Nguyen if you have any set-up questions or concerns.
- You will need to modify existing tables as well as create new tables in order to fulfill the required tasks.
- Commit frequently! We are as interested in your workflow as your result. Make sure to include good commit messages.
- If you have more time and would like to show off, feel free to add more to your implementation (e.g. allowing current users to add reviews to properties, more sorting/filtering capabilities, descriptions/images for the properties, a fancy UI, etc.)
- Feel free to use internet resources to help you implement your solutions, but make sure all code is your own. We want to see how you are able to find and utilize available resources.
- External libraries and packages are allowed. Let us know in your submission email if you used any additional libraries/packages and if there are special instructions to compile and run your code.
- You may spend a maximum of 8 hours (not including time spent for setup) on this! If you have not completed the tasks by the end of the 8 hours, submit what you have.
When you have finished, email us a link to your public repository on GitHub or Bitbucket. Also, in the email, send us a short analysis answering these questions:
- If you had days instead of hours to implement this, how would you improve your solution?
- Do you have any enhancements that you want to suggest, or pre-emptively implement?