kenny-leong / threadit

🫧 threadit - because we all need another platform to procrastinate on.

Home Page:https://threadit.onrender.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

threadit

Threadit is a web application inspired by Reddit that allows users to share and discuss content through the creation of posts and comments in various threads. This project aims to replicate the popular layout of Reddit and go a step further by making the UI/UX easier for new users to navigate. Threadit is built with a Python/Flask backend and React/Redux frontend for responsiveness.

Click here to view threadit's Live Site

Technologies/Frameworks Used:

Screenshot 2023-04-22 at 1 23 42 PM

Features

Demo User Implementation:

  • Feel free to test the site features through clicking the "Demo User" button which will directly log you in

demo_login

Sign up a User:

  • You will be able to sign up and automatically be redirected to the logged in page
  • There are validations for signing up such as username length requirements, valid email address, password length, etc
  • Passwords must be matching when entered twice or the signup button will be disabled
  • Friendly reminders will display and signup will be blocked if fields are not properly filled out

signup-user

User Login and Authentication:

  • You are able to login as long as your credentials are stored within the database (hashed)
  • If there are no matching credentials an error message is displayed
  • Login button is disabled if there are null fields or if the amount of characters entered is not within the acceptable range

login

Search Bar

  • Users are able to use the search bar to search through subreddits without being logged in
  • There is a list of results that populates when using the search bar

search-bar

View Joined Communities

  • Logged in users can view all the joined communities they have joined and leave them if they want

my-communities

View Owned Subreddits

  • Logged in users can view the subreddit they have created and update or delete them

owner-section

Create/Update a Post:

  • Logged in users can create a post of three different types (Text, Image, and Link)
  • Users are able to see their post in the main feed and within the subreddit page
  • Users are able to edit their own posts and swap the type of post

create-post

Create/Update a Vote

  • Users can vote on a post as long as they have joined the subreddit the post belongs to
  • Users can update or delete a vote by either toggling it (pressing their existing vote again) or by changing the vote type (upvote -> downvote)

vote-system

Create/Update Subreddit

  • Users can create a subreddit as long as the subreddit name is not already taken
  • Users can update their subreddit with a description, banner picture, and profile picture

create-subreddit

Create/Update a Comment

  • Users can comment under a post if they have joined the subreddit the post belongs to
  • Users can edit their comments as long it belongs to the user

create-comment

View Posts:

  • Users can view posts regardless of whether they are logged in or not
  • Users can view the comments underneath the post

View Subreddits

  • Users can view and browse different subreddits regardless of whether they are logged in
  • Users are unable to post in subreddits unless they are logged in
  • Subreddits will automatically be generated with a creation date and display the number of members

View Comments

  • Users can view comments under a post regardless of if there is a logged in user or not
  • Users are unable to post a comment unless they are logged in

View Votes

  • Users can view the net votes (upvotes - downvotes) of a post or comment without being logged in
  • If a user has already voted on a post, there will be a glow effect on the type of vote they have submitted
  • Users may not upvote or downvote on a post or comment unless they are logged in

Schema

The following schema is used for the Threadit database:

threadit-schema

About

🫧 threadit - because we all need another platform to procrastinate on.

https://threadit.onrender.com


Languages

Language:Python 58.8%Language:CSS 40.3%Language:HTML 0.5%Language:Mako 0.4%Language:Shell 0.0%