Dictionary:
*(Only users can do this things)
Restaurant page
Multi-filter Search Engine (Able to accept four different filters plus search at once)
Able to add a restaurant to the favourite section* (Will add the restaurant to the user's favourite restaurant)
Google Map
Add, edit, delete Reviews*
upvote and downvote Reviews*
Give users random Restaurants.
Upload food images to the website*
Will store images into local storage.
Filter the reviews.
Display Restaurant and Reviews
Account page*
Display the Account Information.
Chat with other users (Create and delete Text)
Google login (Can only be used with a google account)
use google API to get email and component.
Forget password (Will send the link to users)
Use Nodemailer to send the email
Follow, and unfollow users.
The follow and unfollow user is still buggy
Like restaurants displayed to users
Can like, unlike a restaurant.
Edit and Delete the user account
Log out
remove the refresh token and access token.
unauthorize users with invalid refresh token would not be allowed.
Displaying Rating and popularity
Rating is calculated by taking the average rating for each review
Popularity is calculated by taking the total amount of people who has it as favourite
Able to slide in, and slide out when going to different pages
Able to show a slide-in of review when the restaurant is hovered
Restaurant results can slide in and out
Image increase or decrease in size on different position
Used Swiper for Carousel.
Implementation of the Refresh token
-Will renew the access token every 10 seconds (not ideal)
-Decrease the risk of stolen identity
-Server will check if refresh token is valid
Access token
-Expire in 15 Min
Used "Json_arr" and "Json_object" MySQL keywords for Efficient data collection
MySQL functions, procedures, transactions and triggers for MySQL-server
Used 'In', 'Group by' and 'Regexp' for the Search-Engine
Used Sockets for private chatting of users.