GithubHelp home page GithubHelp logo

ayamosaad1 / twitter-like-app Goto Github PK

View Code? Open in Web Editor NEW

This project forked from abdallah-elshamy/twitter-like-app

0.0 1.0 0.0 134 MB

TypeScript 96.47% JavaScript 0.08% HTML 0.30% CSS 1.94% Python 1.08% Dockerfile 0.13%

twitter-like-app's Introduction

Twitter-Like Web App

Project Description

The project is a social network web application that provides a safe environment via the Safe For Work mode. In this mode, profanity and nudity are detected via machine learning models then they are hidden for users in this mode. Adult users can switch this mode on and off while adolescent users can't switch this mode off.

The app supports the basic functionalities of Twitter, such as:

  • Tweeting, retweeting, Quote tweeting, and Replying to tweets (the tweet can contain text, images, videos, and/or hashtags)
  • Creating and editing a profile
  • Search for, follow, report, and ban other users

The app also supports some other functionalities, such as:

  • Real-time chat
  • Real-time feed updates
  • Trends
  • Admin dashboard

Project Components & Dependencies

To run the project:

Clone the repo by the following command:

git clone https://github.com/Abdallah-Elshamy/Twitter-Like-App

The project has three components.

- The first one is the frontend which is a React app & Tailwind is also used as a CSS-supporting library and deployed all frontend by using AWS S3.

  • To run frontend server:
  1. Navigate to the ./frontend directory then run the following command: npm install
  2. Run the second following command: npm start

- The second component is the Safe For Work server which is a Flask server that uses machine learning models to detect profanity and nudity in tweets.

  • To run the SFW server, follow the next steps:
  1. Install virtualenv using pip install virtualenv
  2. Change directory to the SFW_service directory.
  3. Create a virtual environment using virtualenv env
  4. Now if you are same directory then type the following to activate the environment
    • if you are using windows: env\Scripts\activate
    • if you are using linux: source env/bin/activate
  5. Install the requirements using the requirments.txt file pip install -r requirements.txt
  6. Run the server using python app.py

- The third component is the backend which implemented by using Node.js, GraphQL, Apollo Server, and Express to it , implemented the real-time features using WebSockets and RabbitMQ on AWS MQ and also used PostgreSQL DB on AWS RDS and AWS S3 to store the data.

  • To run the backend server:
  1. Navigate to the ./backend directory then run the following command: npm install
  2. Run the second following command: npm run dev

Also,the project utilize some DevOps tactics and built a CI/CD pipeline (using GitHub Actions) that automatically runs unit tests, builds, and deploys Docker images to a Kubernetes cluster on AWS EKS that contains two instances of the backend server, one instance of the SFW server, and an NGINX proxy server.

Project Demo

https://www.drive.com/Twitter-like-Demo

twitter-like-app's People

Contributors

omarabdo997 avatar abdallah-elshamy avatar omar1128-gif avatar esla-ahme avatar ayamosaad1 avatar tokaabdulhamied avatar

Watchers

James Cloos avatar

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.