Code Monkey home page Code Monkey logo

greddiit's Introduction

GreddIIT, the clone of Reddit (but better)




Running the App


Clone the github repository onto your local machine, either by using git clone or by directly downloading the zip


If, on Linux you can run the script attached to start the whole application using the following command

bash ./run.sh

To run the processes individually

  • To run the backend
    cd server
    npm install && nodemon index.js
    
  • To run the frontend
    cd client
    npm install && npm start -y
    

To run the docker file

sudo docker-compose build
sudo docker-compose up

If you are using the docker command to run the website then to see the website, search "localhost:3050" on the browser and not the frontend port (3000) unlike npm run


Description


GredIIT is a social media platform based on MERN stack with UI designed using MUI. It resembled to the original Reddit in a lot of aspects.

All the data is being stored in MongoDB cloud. To attach your MongoDB URI, change the URI in the backend folder .env to your own URI.

Some features of the application are listed below

  • Light and Dark mode (the colors are defined in theme.js in frontend folder)



    --


  • Register page (the password is encrypted before storing in the database)



  • Login Page (a token along with some basic details of the user are stored in the local using Redux which thus allow to access the site, even on closing the tab/browser/PC, until logged out)

  • Home Page : The home page consists of "subgrediits" which are similar to the concept of subreddits in Reddit.

    • You can create your own subgrediit OR

    • You can request to join someone else's subgrediit

    • You can sort the arrangement of the subgrediit based on name, number of followers and the creation date. ( Without any filters, the joined subgrediits are shown first followed by the un-joined subgrediits)

    • A search bar having fuzzy search based on the name of the subgrediits and the tags associated with them.

    • For subgrediits you have the following options

      • Delete : Appears only if you have created the subgrediit

      • Join : If someone else has created the subgrediit, and you want to join the subgrediit, in order to see and create posts inside the subgrediit

      • Leave : If you have already joined the subgrediit and want to leave the subgrediit

        If you leave the subgrediit once, you won't be able to join it again

      • Blocked : If you created a post, which was reported by someone and the moderator of that subgrediit blocked you, in that case you won't be able to access the subgrediit



        -


  • Posts : On clicking a subgrediit on the home page, you are redirected to this page where the posts can be created.

    If the post title contains the banned keywords of that subgrediit, then you cannot create that post. But if the description has banned keywords, they will be converted to asterisks after notifying the user

    • Posts have the following features :

      • Upvoting of the posts (one user can upvote a post only once)
      • Downvoting of the posts (same)
      • Comments (Are a bit broken)
      • Follow the user who created the post
      • Saving of the posts for later ( can be accessed from the Saved Posts menu in the dropdown)
      • Reporting of the posts


      -

  • Chats : Only the basic UI has been implemented. They do not work as of now.

  • Profile Page

    • Shows the details of the user

      • Here you can also the see the following 2 options

        • Followers : The people who follow you : You can remove them

        • Following : The people whom you follow : You can remove the previous following and add more following as well

    • Gives a form to change the details of the user (except the email id and the password of the user)



      -

  • My Subgrediits : Shows the subgrediits created by you. You can see the basic details about that subgrediit along with the option of deleting the subgrediit



    • On clicking the subgrediit, you go to next page, which gives a description of that subgrediit along with 4 options at the top
      • Users : shows the followers and the blocked users of that subgrediit
      • Joining Requests : shows the list of joining requests for that subgrediit
      • Reports : shows all the reports for the posts present in that subgrediit
      • Stats : shows some basics stats about that subgrediit (has not been implemented properly)


  • Saved Posts : Shows the posts saved by the user





Refer to details.pdf for further details (the highlighted features are the ones that have been implemented) and feel free to commit for any bugs

greddiit's People

Contributors

mhardik003 avatar

Stargazers

Arjun Dosajh avatar

Watchers

 avatar

Forkers

sarverjii

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.