Shreddit is a MVP clone of reddit.com, with a focus on shred-metal guitar music. Users can get the latest info on the world of shred-guitar here, share updates on your favorite guitarists, post videos and images, plug your own music, and tell other users why you think their favorite band's older stuff was better. Users can create Communities focused on various topics, and Post their thoughts.
- Users can create an account (or sign in with the Demo button at the top of the landing page) and, upon sucessful login, see a home page feed, populated by all sorts of different Posts in different Communities! Each Post in the feed has a link to the Community Page it's a part of, as well as a link to the User who submitted the Post's User Profile Page. Submitting Posts is easy! Users can either browse around and find a Community they'd like to Post in, or start their own Community. Community creation is just as easy as submitting a Post! Both can be done right from the Home page, via clearly displayed buttons on the right-hand side of the page. Users can also submit posts to any Community by clicking the input box at the top of the Home page. Users can easily update or delete their own posts from any page they are displayed.
- On the top-right-hand side of the Home page, Users will find a "Shredder Suggestions" section, displaying (in random order) the 5 most recenly created Communities. Clicking on any of the Community names in the list will navigate the User to the Community's page, which displays all the Posts associated with that Community. Users can also submit Posts from a Community page by clicking the input box at the top, though this time we'll take care of selecting the Community for you so things don't get mixed up! From the Home page, Users can create new Communities by clicking the "Create Community" button located on the right-hand side of the page. When a User creates a Community, they become the "Moderator" of that Community, which gives them special privileges, to Edit or Delete the Community.
Ideally, Users will be able to "follow" Communities, and their Home feed will be populated by Posts from the Communities they follow. Additionally, Users will be able to submit Comments on Posts, as well as Upvote/Downvote Posts. Keep checking for updates in the near future! :)
Have fun!
- Frontend:
- JavaScript
- React
- Redux
- HTML
- CSS
- Backend:
- Python
- Flask
- SQLAlchemy
- PostgreSQL
Users can create new Communities focused on a certain "Shredder" where others can submit Posts on that topic.
Users can submit new Posts to Communities to share their thoughts
Displays User's public info, all Posts the User has submitted, and a list of Communities for which they are a "Moderator" (have edit/delete authorization)
-
Clone this repository (only this branch)
git clone https://github.com/JacobDChamberlain/Shreddit.git
-
Install dependencies
pipenv install --dev -r dev-requirements.txt && pipenv install -r requirements.txt
-
Create a .env file based on the example with proper settings for your development environment
-
Setup your PostgreSQL user, password and database and make sure it matches your .env file
-
Get into your pipenv, migrate your database, seed your database, and run your flask app
pipenv shell
flask db upgrade
flask seed all
flask run
-
To run the React App in development, in a separate terminal:
cd react-app
npm start