All Projects → abhi40308 → instagram-clone

abhi40308 / instagram-clone

Licence: other
Instagram clone using apollo, react and graphQl (hasura-graphQl engine)

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects

Projects that are alternatives of or similar to instagram-clone

hasura-node-monolith-example
Example of a monolithic web application using Hasura GraphQL Engine + Node.js + Next.js
Stars: ✭ 25 (-43.18%)
Mutual labels:  apollo, hasura, hasura-graphql-engine
apollo-cache-instorage
Apollo Cache implementation that facilitates locally storing resources
Stars: ✭ 98 (+122.73%)
Mutual labels:  apollo, apollo-cache
recipes-next-hasura
A lightweight app to explore and create recipes - Built with Next.js, Hasura, and Chakra-UI
Stars: ✭ 30 (-31.82%)
Mutual labels:  apollo, hasura
create-full-stack
Set up a TypeScript full stack with one command.
Stars: ✭ 94 (+113.64%)
Mutual labels:  apollo, hasura
hasura-metadata-patcher
CLI tool to patch Hasura metadata json file. Helps to organize complex CI/CD flows through different environments.
Stars: ✭ 14 (-68.18%)
Mutual labels:  hasura, hasura-graphql-engine
members
Managing People (Members), CRUD with Dashboard
Stars: ✭ 36 (-18.18%)
Mutual labels:  apollo, hasura
Graphql Shield
🛡 A GraphQL tool to ease the creation of permission layer.
Stars: ✭ 3,121 (+6993.18%)
Mutual labels:  apollo
ctrip-apollo
The most delightful and handy Node.js client for ctrip apollo configuration service.
Stars: ✭ 56 (+27.27%)
Mutual labels:  apollo
Prisma Tools
Prisma tools to help you generate CRUD system for GraphQL servers
Stars: ✭ 237 (+438.64%)
Mutual labels:  apollo
Kit
ReactQL starter kit (use the CLI)
Stars: ✭ 232 (+427.27%)
Mutual labels:  apollo
hasura-auth
Authentication for Hasura.
Stars: ✭ 276 (+527.27%)
Mutual labels:  hasura
Canner
⚡️[NOT MAINTAINED] Content Management Framework creates custom CMS fast and easy. Support data sources such as Firebase/Firestore, GraphQL and Restful APIs.
Stars: ✭ 2,472 (+5518.18%)
Mutual labels:  apollo
Apollo 11
Original Apollo 11 Guidance Computer (AGC) source code for the command and lunar modules.
Stars: ✭ 52,190 (+118513.64%)
Mutual labels:  apollo
Spring Cloud Shop
spring cloud 版分布式电商项目,全力打造顶级多模块,高可用,高扩展电商项目
Stars: ✭ 248 (+463.64%)
Mutual labels:  apollo
ultimate-hot-boilerplate
🚀 node-react universal app boilerplate with everything on hot reload, SSR, GraphQL, Flow included
Stars: ✭ 35 (-20.45%)
Mutual labels:  apollo
bookshelf
My GraphQL playground
Stars: ✭ 64 (+45.45%)
Mutual labels:  apollo
Apollo
Apollo is a Open-Source music player for playback and organization of audio files on Microsoft Windows, built using Python.
Stars: ✭ 13 (-70.45%)
Mutual labels:  apollo
nest-next-sample
NestJS + Next.js sample application / Backend and Frontend use only TypeScript!!!
Stars: ✭ 110 (+150%)
Mutual labels:  apollo
discover-videos
This app is a clone of Netflix app, check out the course http://bit.ly/nextjs-udemy-ankita on how to build this
Stars: ✭ 81 (+84.09%)
Mutual labels:  hasura
vulcan-npm
The full-stack JavaScript App Framework
Stars: ✭ 26 (-40.91%)
Mutual labels:  apollo

Instagram Clone using React, Apollo-React-Client and Hasura GraphQl Engine

Note: This project was build as a part of a tutorial blog post, check out the tutorial here.

See live demo here(may be slow to load due to free hosting). This application demonstrates consuming GraphQl Api provided by Hasura GraphQL Engine using a react app. Uses react-apollo GraphQL client to make requests to the api. Users can create account using Auth0 JWT authentication which is then verified by Hasura. React-router is used to provide SPA experience.

Authenticated users can:

  • Create new posts
  • Like posts
  • Follow user profiles
  • Realtime updates when other users upvote a post, create a new post or follow user profile (updating apollo cache).

Installation

Installing and running on local system require:

  • Setting up Hasura Server (deployed on Heroku), and creating required tables
  • Setting up Auth0
  • See this guide for Auth0 JWT Integration with Hasura
  • Clone or download this repo, install the required packages and run npm start

npm packages:

You will need the following npm packages:

Creating tables

Following tables required to be created:

type Post {
id - integer, primary key
caption - text
url - text
created_at - timestamp with time zone
user_id - text
}
 
type User {
name - text
last_seen - timestamp with time zone
avatar - text
email - text
id - text, primary key
}

type Like {
id - integer, primary key
user_id - text
post_id - integer
}

type Follow {
id - integer, primary key
follower_id - text
following_id - text
}

Post.user_id and User.id have object relationship in table Post and array relationship in table User. Like.post_id and Post.id have array relationship in table Post. Row and Column permissions should be given accordingly.

User Authentication

See Setting up Auth0 with react and this guide for Auth0 JWT Integration with Hasura. Here we are using Auth0 Universal Login.

Realtime updates

Using apollo cache and react state, we can give realtime updates for likes, new posts and follows. Apollo refetchQueries function updates apollo cache with refetched data.

Preview

App: App

User Profile: User Profile

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].