Code Monkey home page Code Monkey logo

chatting-website-backend's Introduction

Dubify : Time to be social, go social

Introduction

Time to get social. Isn’t it ? Then why wait. Get Started now. Finally, Dubify is here to help you get connected with the world providing an easy to use environment with an amazing interface, meeting all your needs like posts creating, sharing, comments, likes, adding and viewing stories, managing personal information and much more waiting to be discovered. Bored with the regular theme ? Don’t Worry. Dark Mode is ready for you.

Live Webiste

Features Implemented

Frontend

  1. Login-SingUp pages:

    • Registeration of new users.
    • Login A register user.
    • Send Password reset email using SMTP service.
    • Verification of user's email using SMTP service.
  2. Posts - features:

    • Adding, Deleting and Editing.
    • Can contain text and image both.
    • Likes and Comments.
    • Resharing the posts.
    • Follow/Unfollow a user.
  3. Personalised Dashboard for :

    • Viewing Posts and related Activities.
    • Search people registered on Dubify.
    • Viewing upcoming events.
    • My-Contact list.
    • Connection suggestions.
    • Follow/Unfollow a user.
    • See Trending Info and play games
  4. Stories Page :

    • Add your story
    • See like and view count on ohter's story.
    • View Others stories and like them
  5. Profile Page:

    • View and Edit personal info and profile pic.
    • See Users Stats like followers, following, Total Posts and likes count.
    • All the users posts are shown which can be edited and deleted by user.
  6. Dark/Light Theme.

  7. Hamburger Icon (for mobile and tablets).


Backend

  1. Auth Route(auth/)

    • signUp -> Registeration of user.
    • login -> Authentication of user.
    • forgotPassword -> Send a JWT Token valid for 10 minutes on user's registered email.
    • verifyEmail -> Recevies a JWT token and if token is valid sets user verification status to true in database.
    • resendVerificationLink -> Mainly used to JWT Token when the earlier JWT Token expired.
    • logout -> Set logged in status to false in database.
  2. Profile Route(user/)

    • getUserinfo -> Fetch user information from database using user's id as key.
    • updateName -> Make a PUT request at database to update user's name.
    • updatePassword -> Make a PUT request at database to update user's password.
    • updateProfilePhoto -> Make a PUT request at database to update user's Profile Picture.
  3. Feed Route(feed/)

    • addPost -> Make a query at database to add a post.
    • getUserPost -> Query to fetch all post made by a particular user.
    • editUserPost -> Make a PUT request at database to update already existing post.
    • deleteUserPost -> Deletes a user's post.
    • getFollowingPosts -> Fetch post all the people the user is following.
    • updateLike -> Update Like Count on a post.
    • sharePost -> Query to share a post by other users.
    • commentPost -> Adds comments on a post.
    • getAllPostComment -> Fetch all comments on a post.
    • isLiked -> Check if a post is liked by particular user.
    • getPostById -> Fetch a post using post id.
  4. Follower Route(friend/)

    • getFollowing -> Fetch the list of following users.
    • getUserList -> Get List of all registered users.
    • getSuggestionList -> Get suggestions list for each users.
    • addFollowing -> Allow a user to follow other users.
    • removeFollowing -> Allow user to unfollow other users.
  5. Story Route(story/)

    • getStoryList -> Fetch the stories that are currently active.
    • addStory -> Add user's story to database.
    • getUserStory -> Fetch the user's story if uploaded.
    • updateLikeStory -> Update like on a story image.
    • updateViewStory -> Increase view on user's story.

Technologies Used


Packages Used

- Node Js
- Express
- JWT 
- Bcrypt Js
- Dotnev
- Firebase SDK

Local Setup

Clone the frontend and backend repositories, cd into them individually, and then follow the below mentioned steps for setting up backend and frontend separately.

Frontend:

- Fork the repository.
- Clone the repository (git clone https://github.com/arun-kushwaha04/Social-Media-Application-Frontend.git).
- Open the folder in which you cloned the repository.
- Setup your backend using the below mentioned steps. Now you can either deploy your backend separately and use the hosted link or run locally and use that respective link.

Backend:

- Fork the repository.
- Clone the repository (git clone https://github.com/arun-kushwaha04/Social-Media-Application-Backend.git).
- Open the folder in which you cloned the repository.
- Run *npm install*.
- Create a .env file.
- Now you can run 'npm run dev' and start working locally.

Database:

Check Database Queries for all table queries.

Create .env file (keys):

- SALT_ROUND
- SECRET_KEY
- DATABASE_URL
- DOMAIN //used for SMTP Service
- KEY //used for SMTP Service
//Firebase project details 
- API_KEY
- AUTH_DOMAIN
- PROJECT_ID
- STORAGE_BUCKET
- MESSAGING_SENDER_ID
- APP_ID 
- MESUREMENT_ID

Screenshots



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.