Skip to content

SocialPulse2 is an AI multimodal social media platform with main purpose to connect people around the globe and communicate with each other in real-time. An extension of SocialPulse project.🌐

License

Notifications You must be signed in to change notification settings

GeorgiosIoannouCoder/socialpulse2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

96 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

NOTE: When visiting this application make sure that you are using the protocol https and NOT http otherwise the application will not work!

NOTE: SocialPulse2 is an extension of SocialPulse.

Contributors Forks Stargazers Issues MIT License LinkedIn GitHub

SocialPulse2 | Social Media Platform


Logo

SocialPulse2

SocialPulse2 is an AI multimodal Social Media Platform with main purpose to Connect people around the globe.SocialPulse2 is a social media platform where people can communicate with each other in real-time, create and share posts, and create networks such as group chats with each other. SocialPulse2 is appealing because it is simple to use without any unnecessary features and thus make it straightforward for the users to Connect with each other. Moreover, the proposed software is special because it implements a real-time chat feature that enables users to chat inside the web application without the need to download any external software such as a messenger.
Explore the docs Β»

View Web Application Β· Report Bug Β· Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Reports
  5. Contributing
  6. License
  7. Contact

About The Project

Logo

SocialPulse2 tries to solve the following problem statement in the social media industry:

  • People need a social media built by the people for the people, without heavy advertisements and platform negativity!

Key Features

  1. Five types of users:
    1. Super User (SU)
      1. Super users on our platform are capable of adding/removing warnings on the user's profile page along with deleting users and posts.
    2. Corporate User (CU)
      1. Corporate users can distinguish whether their post is a regular, ad, or job posting.
    3. Trendy User (TU)
      1. Users are automatically promoted to trendy users if they have the specified requirements: a) subscribed by >10 users, and b) received >$100 tips or #likes-#dislikes >10, and c) author of at least 2 trendy messages
    4. Ordinary User (OU)
      1. Ordinary users can post/delete, comment, tip, like/dislike, report, and follow users.
    5. Surfer
      1. Surfers can view the β€œPopular” Page where they can view the top 3 most liked messages and report these posts.
  2. Sign-up page with a real-time validation and feedback form.
  3. Fully customizable profile where people can also upload pictures and edit them in the web application.
  4. Reset password functionality.
  5. Live search functionality where users can search for other users and the searches are automatically stored in their search history.
  6. Follow and unfollow users.
  7. Add and delete posts and comments.
  8. Enable location with each post.
  9. Allow users to like and react with emojis on each post and comment.
  10. Receive notifications for each new activity that is related to each user.
  11. Infinite scroll to fetch more data as you keep scrolling down the news feed.
  12. Real-time chat without the need to reload the web page or download any external software such as a messenger.
  13. Display the status of each user such as green for online status, grey for away status, and red for offline status.
  14. An option that allows users to have an instant pop-up message on their screen when they receive a chat message.
  15. Ability to report posts and profiles and specifying the reason of reporting.
  16. Functionality to promote Ordinary Users to Trendy Users, and Ordinary posts to Trendy posts.
  17. Ability to upload and crop images and videos when posting.
  18. Ability to add keywords to posts to further personalize it.
  19. A special advanced search feature, to search posts based on number of likes/dislikes, keywords, and/or usernames.
  20. 1-to-1 messaging with other registered users in the application.
  21. Ability to tip posts with a specified amount of money.
  22. Ability to deposit/withdraw money into your account.
  23. A warnings tab within the navigation bar to view the number of warnings, reports, and disputes that must be attended to.
  24. Comprehensive functionality for disputing reports and warnings.
  25. Fisher-Yates Algorithm to recommend possible users to connect with.
  26. Blurring the post until they click the read button.
  27. The like/dislike/report post/read button shows list of users who did that action.
  28. CU is allowed to post ads and job applications that other users can click and apply, CU will pay the system (SU) by $0.1 for each click and application.
  29. ll users can search for messages based on author, keywords, with/without images and or videos, #of likes/dislikes.
  30. Any user receiving warning can dispute with the SU: if winning the dispute the warning is removed: if the warning is initialized by another user, the user who reported complained will be warned once; if the warning is by a surfer, the complained user is rewarded by 3 likes from the SU. Any CU/OU with 3 outstanding warnings will be given the choice of paying out the fine to remove the complaints or removed from the system. Any TU with 3 outstanding warnings will be demoted to OU with no warnings.
  31. TU/OU can post messages with <=20 words (an image is equivalent to 10 words, while a video is equivalent to 15 words) for free, any message >20 words will be billed by the system automatically with the amount (# - 20)$0. 1; a CU's message is billed #$1 without free ones. If the user does not have enough money in the account, a warning is issued and when the user logging will be automatically directed to the payment page.
  32. Real time speech recognition.
  33. Real time translation.
  34. Post language detector.
  35. Post topic detector.
  36. Post sentiment/emotion detector.
  37. Post image to text generator.
  38. Text to speech generator.
  39. Post adult content detector.

Back to top

Built With

HuggingFace Figma Postman MongoDB Node Express JWT JavaScript HTML CSS React Next SemanticUI SocketIO Nodemailer SendGrid Cloudinary Git Heroku

Back to top

Architecture

Architecture

Back to top

Getting Started

To get a local copy of SocialPulse2 up and running locally follow these simple example steps:

Prerequisites

NOTE: How to check if Node and NPM are installed and what are their versions

  node -v
  npm -v

NOTE: How to check if Git is installed and what is its version

  git -v
  1. Please make sure you have Node and npm installed and use Node version: v16.15.0. For all other package versions please look at package.json file.

  2. Please make sure you have git installed

Installation

SetUp

  1. Navigate to the directory where you want to clone/run/save the application

    cd your_selected_directory
  2. Clone this repository

    git clone https://github.com/GeorgiosIoannouCoder/socialpulse2.git
  3. Navigate to the socialpulse2 git repository

    cd socialpulse2
  4. Install NPM packages

    npm i
  5. Create a config.env file inside the socialpulse2 directory

    Note:

    1. Please put your own MONGO_URI. You can obtain one by creating an account here and then create your own organization, project, and cluster.

    2. Please put your own jwtSecret. It can be anything you like.

    3. Please put your own sendGrid_api. You can obtain one by creating an account here.

    4. Please put your own your_cloudinary_cloud_name. You can obtain them by creating an account here.

    MONGO_URI = your_online_MONGO_URI;
    jwtSecret = here_have_a_random_secret_code;
    sendGrid_api = api_key_get_it_from_sendgrid;
    CLOUDINARY_CLOUD_NAME = your_cloudinary_cloud_name;
  6. Create a next.config.js file inside the socialpulse2 directory

    Note:

    1. Please put your own your_cloudinary_cloud_name and your own your_upload_preset. You can obtain them by creating an account here.

    module.exports = {
      env: {
        CLOUDINARY_URL:
          "https://api.cloudinary.com/v1_1/your_cloudinary_cloud_name/image/upload",
        CLOUDINARY_URL_VID:
          "https://api.cloudinary.com/v1_1/your_cloudinary_cloud_name/video/upload",
        CLOUDINARY_CLOUD_NAME: "your_cloudinary_cloud_name",
        CLOUDINARY_UPLOAD_PRESET: "your_upload_preset",
      },
    };
  7. Run the development server (running at port 3000)

    npx nodemon server

Back to top

Usage

To try the SocialPulse2 application click on this link!

You can use the following two accounts to test the application in case that you do not want to register:

  1. Super User

  2. Ordinary User

  3. Corporate User

  4. Trendy User

Back to top

Reports

  1. Report Phase 1. This report illustrates the purpose, scope, overall description, and use-case of the project.
  2. Report Phase 2. This report is meant to provide the data structure and logic to carry out the functionalities dictated by the specification. It includes a collaboration class diagram, all use case scenarios (normal and exceptional scenarios), petri-net, er-diagram, and GUI screens.

Back to top

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Back to top

License

Distributed under the MIT License. See LICENSE for more information.

MIT License

Copyright (c) 2024 Georgios Ioannou

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Back to top

Contact

Georgios Ioannou - @LinkedIn

Georgios Ioannou - @georgiosioannoucoder - Please contact me via the form in my portfolio.

Project Link: https://github.com/GeorgiosIoannouCoder/socialpulse2

Back to top

About

SocialPulse2 is an AI multimodal social media platform with main purpose to connect people around the globe and communicate with each other in real-time. An extension of SocialPulse project.🌐

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published