I created a web app for rating, discovering, and discussing films, series, games, books and music using Django/Vue

Here it is: www.peepthis.app

Summary:

Rate, discover, and discuss interesting films, series, games, books, and music. Connect with users with compatible taste. An SSR/SPA web app built with Vue/Vuetify/Nuxt on the frontend and Django REST Framework on the backend.

Features:

-Rate, review, and track your media (films, series, games, books and music).

-See your taste compatibility with other users, find users with the most compatible taste.

-Receive personalized media recommendations based on your ratings, or browse the media database using various filters.

-A fully-featured subreddit-style community (topics with nested comments) for each media title.

-Create lists to organize your media, browse user-curated lists.

-Fully-featured instant messaging between users and real-time notifications.

-Custom-built change management system for updating the media database. Any user can submit new media titles or updates to existing ones, which are gated to mod approval.

-Responsive design.

Iā€™m a hobby coder and this is my first and only web project, but Iā€™ve put a lot of time and effort into it. If anyone has any questions about how I implemented something or how I got to this point, just let me know. Iā€™d love to hear feedback/suggestions/comments, especially about design since thatā€™s what I struggle with the most.

4 Likes

Oh my God, it is really amazing. Terrific job, CoolDogAnytime

Thank you themaleem!! I really appreciate it.

looking good and amazing job, do you share your project?

Hey, your site looks amazing, great work. I think the design is quite nice and idea for the site is cool.

Iā€™d love to know what youā€™re using to do your social queries, like how do you find users with compatible tastes? Are you using a graph database?

Also for your nested comments, did you go with either of django-mptt or treebeard for handling the tree models? I used to use django-mptt but switched to treebeard.

Anyway, great work!

Thanks snirben and tyler! I really appreciate it.

@snirben Iā€™m not planning on sharing the full repository at the moment (this may change in the future), but if youā€™re interested in anything in particular then let me know I can send you excerpts.

@tyler Iā€™ve just using a standard Postgres database. Compatibility scores between users are generated in the background (and stored as a model) and are based on the average difference between the usersā€™ overlapping ratings with some weights. Users with many ratings with similar scores will be highly compatible while users with many ratings with dissimilar scores will be incompatible. I also use this compatibility data to provide recommendations- users are recommended media that is highly rated by users who are most compatible with them. Iā€™m definitely not that knowledgeable on statistics, so Iā€™m still learning better ways to do this as I go, but I donā€™t plan to change it dramatically.

I actually built my own nested comments system a while ago and just recently heard of django-mptt and treebeard (this is a question that Iā€™ve received a lot when I posted my site on reddit). Itā€™s on my to-do list to look into these packages, since I wouldnā€™t be surprised if Iā€™ve overlooked some best practices. However Iā€™ve done tests with a large number of nested replies, and so far my comment queries seems to be performing well enough.

Basically I have a comment model that has a ForeignKey relationship with a topic and an optional ForeignKey relationship with itself (for nested replies). Comments also have a ā€˜depthā€™ IntegerField (0 for top, 1 for the next level, etc.) to filter by. The initial comment data fetch returns top level comments and a limited numbers of child comments depending on depth. The user can click a ā€˜see more repliesā€™ button on the front end to fetch more undisplayed comments at any depth. Pretty simple, but it getā€™s the job done.

Amazing websiteā€¦really. How long does it takes to build such website?

I posted the ā€œbetaā€ version of this web app back in April. I just launched the full version today!

Iā€™ve made countless improvements since I first posted it and it looks quite different. It is also now downloadable as a PWA. I think that it turned out great! Still happy to answer any questions. Thanks for checking it out.

@ycv005 Sorry, I missed your reply until now. I had been working on it for about 2 years since my initial post. Itā€™s been about 2.5 since today. That includes time spent learning Python/Javascript, refactoring code, and periods where I took breaks. Thanks for the kind words!