*Python 3.6 or newer is required
Install dependencies with requirements.txt
pip install -r requirements.txt
Alternatively,
pip install django django-crispy-forms requests
git clone https://csil-git1.cs.surrey.sfu.ca/fresh-potatoes/fresh-potatoes.git
cd fresh-potatoes
python manage.py runserver
Webpage can be accessed on the browser at 127.0.0.1:8000 while the web server is running.
-
02/23/2021
Fresh Potatoes web application now contains a fully operated login and registered system. The system is able to store a user's username and password as they registered to become one of the members of Fresh Potatoes. Furthermore, a profile feature has been implemented for each user who registered. Any changes or updates on users’ profile information will be saved and presented every time they login.Following the current progression speed of the project, the homepage for unregistered users is completed along with login, register, and profile pages. The body of the homepage has been seperated into 4 sections with one featured movie at the top and 3 categorized columns of movie showcases beneath. The 3 columns of movies are listed as popular movies, trending movies, and upcoming movies for unregistered users. Every movie present in the homepage is directly pulled from a third party database using application programming interface.
The application programming interface that is introduced in our project is TMDb. In current progress, we are able to retrieve movie information including movie genres, poster, overview, and details including title, rating, budget, popularity, production and more. More API features require further research and implementation.
-
03/11/2021
Individual Movie Page
All movies contain its individual pages introducing its basic information including movie genres, poster, overview, rating, trailer, and available streaming services.
Survey
In this iteration, users who logged in to the fresh potatoes are able to select their favorite movies genres, streaming platforms, and movies. All information gathered from the survey will be presented in users’ profile pages.
Search Engine
Users are able to search their desired movie title through the search bar in the navigation section. The application programming interface used in Fresh Potatoes supports keywords search instead of matching the same alphabets. The result of the search will be present in a new page with all movies in the database that contain the keywords.
Fresh potatoes provides a simplified and more efficient movie searching process for any users that watches movies and TV shows at any age range. Though the recommendation option has been implemented on most of the streaming services, many users still feel lost while searching for something new to watch due to the limited content and overly complicated designs on most of the modern streaming services and databases such as Netflix and IMDb. Our project aims to solve that problem by implementing more defined and detailed recommendation options as well as filtering the movies and shows based on the streaming platforms they are on and provide a link to that platform.
The main overarching features of this project consist of filter features, recommendations, as well as search functions. Some of our features can be classified as both filter features and recommendation features such as the search filter that can be used when searching the website for movies. The recommendations on the user’s homepage are optimized by filtering out the movie they might not enjoy as well as filtering out movies based on the user’s age in order to give them appropriate movie recommendations. For example a user who is 14 years old would not be recommended a movie that is rated for those who are 18+ ( the type of rating can be changed in the user’s preferences). During the user’s initial signup we establish a basis for how movies should be filtered and recommended during the user’s first experience. We will have the user go through a survey to lay a foundation in order. The web site also has a recommendation feature where it recommends which streaming platform holds most of the movies it thinks the user would enjoy. From this information we can then further suggest what streaming platform might be best for the user. Each movie in the database would have a trailer, user rating, age rating, what platforms to watch it on, where a hardcopy can be found and a comment section where any (non banned) user can comment. A point for list of project features and subfeatures is listed below:
This iteration had very few testable code blocks as much of the code was frontend development. However, we did develop some test functions to test the validity of our search function. These functions are found in test_api.py and can be run by executing that same file. The test code checks to find results in the search that don't match the search word. The code will tell you if it finds such discrepencies.
To run the test code execute:
cd api
py test_api.py
- Forgot password: Clicking the forgot password button sends an email link to the customer’s email and the customer can reset their password through the link in the email.
- Recommendation system: The recommendation system will be an account specific system. It will allow the user to enter their own preferences and recommend entertainment to them based on those preferences. Once a user is logged in, their home screen will display personalized movies to their liking.
- More inputs for survey to show recommendations accurately: In future iterations we hope to improve upon the recommendation feature by fleshing out the registration survey. We also want to track what the user likes and doesn’t like to try and incorporate these things into the recommendation algorithm as well.
- Individual movie pages: Individual movie pages display more details for the selected movie, including the release date, genre, rating, story overview, link to watch the movie and many more.
- Registered user homepage: This is the homepage that will display customized content based on the users preferences.
- About page: This will be a page in which we describe our team and how we have completed the project.
- Search feature: This will be a typical search feature. It will allow the user to search for entertainment and give recommendations based on what they searched. The user will be able to navigate from the search page to any individual movie page.
- Rating System: This will be a system where a user can leave a rating out of 10 on a movie/show and have it contribute to an aggregate rating that is kept on the site.
- More info on individual movie pages
- Genre
- Actors
- Comments
- Correctly format the survey for movies
- Improve search function for reduced search time
- Update functions for upcoming movies to show movies correctly
- User profile page