abhishekbhartiind / social

A basic clone of Instagram with React, Typescript and GraphQL.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Social

Demo

A basic clone of Instagram with a React-based frontend and a TypeScript, GraphQL API. The application is deployed as a Docker container to a AWS ec2 instance.

Features include

  • Create, edit, or delete posts and comments (any text will be detected for toxicity)
  • Like posts and comments
  • View comments and replies associated to a post
  • View a user's account
  • Take a photo while creating a post (the photo will be stored in the cloud)
  • Load more posts, comments or replies

Tech Stack

Front end: NextJS, ChakraUI, Apollo Client, TypeScript, GraphQL, GraphQL Codegen, React Hook Form, Tensorflow.js (for toxic text detection)

Back end: NodeJS, ExpressJS, Apollo Server, TypeScript, GraphQL, TypeORM (for postgres database connection), GraphQL Codegen, GraphQL Tools, PostgreSQL, Redis, Cloudinary Node SDK (for uploading images to the cloud), Data Loader (for handling batch queries)

Development Achievements

Standout dev achievements include

  • Created a hierarchical comment system using adjacency list
  • Implemented Cloudinary SDK to store images and assets of posts in the cloud and deliver optimized images
  • Leveraged Tensorflow.js' pre-trained model to detect toxicity in posts' content and comments
  • Optimized SQL queries and resolved N+1 query problem using data loaders
  • Maintained consistent cache updates after interactions with the API

About

A basic clone of Instagram with React, Typescript and GraphQL.


Languages

Language:TypeScript 99.6%Language:Dockerfile 0.2%Language:JavaScript 0.1%Language:Shell 0.0%