There are two options for this rudiment. You can do Super Search which is described here or you can do a project of your own design. The benefit of doing your own idea is that you will have stronger motivation to work on the rudiment. The requirements are:
-
Your app has a complete login/user system
- A page where you can create a new user account
- A login feature
- A logout feature
-
A person should stay logged into the site until they logout or they close the browser.
-
Your app should have a search feature which is dependent on who is logged in. For example, in super search when a user searches for a store the results are dependent on the logged in user’s zipcode. If you have an idea that doesn't use a search but instead has some other compelling reason for a login, that might be fine.
If you are implementing your own app, run the idea by me.
See the YouTube video:React Super Search. Your web app should implement similar features.
Here are the things you need to do and implement:
The SQL file in this github repo has some insert statements to help you get started. However, it doesn’t have code to create a database or any tables. You need to add those.
There is one problem with the current design. The structure of the store table looks like
| name | type | address | etc |
|---|---|---|---|
| Duck Donuts | Coffee, donuts | 1223 Jefferson Davis Hwy | ... |
| 25 30 Expresso | coffee | 400 Princess Anne | ... |
| La Posta | Mexican | 2410 Calle De San Albino | ... |
| Double Eagle | Steakhouse, American | 2355 Calle De Guadalupe | ... |
Now we would like to have a store have multiple types. For example, Duck Donuts is listed on Yelp as donuts, coffee, breakfast and Double Eagle is listed as Steakhouse, American. I would like you to add this feature to our database and have at least 10 items that have multiple types.
The database needs to be in 3NF
You should implement a search feature that works similarly to the video. We should be able to search for:
-
The name of a store (i.e., Starbucks)
-
The type of a store (i.e., Mexican)
-
The name of a movie (i.e., Wonder Woman)
-
All the movies by typing movies.
You need to implement a login page. Once a person logs in, it should be persistent across pages. Add a visual indicating who is logged in -- If Ann is logged in we should display ‘Ann” somewhere on the page.
There should be a working logout feature.
You need to create an ‘add new user’ page for the website.
The database user your code uses should have the minimal permissions necessary to complete its job. All passwords should be hashed.
Once a person is logged in any search should be limited to their zipcode.For example, if my zipcode is 88005 and I search for Starbucks, I should only see results for 88005.
Make sure you can successfully search for Peet’s and Nobody’s Watching.
Your application must be running on a Google Cloud VM
push your code to github and fill out the submit form.