All Projects → DimiMikadze → Create Social Network

DimiMikadze / Create Social Network

Licence: mit
An educational project, demonstrating how to build a large scalable project with Javascript.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Create Social Network

Graphql Advanced Projection
Fully customizable Mongoose/MongoDB projection generator.
Stars: ✭ 46 (-94.61%)
Mutual labels:  graphql, apollo-server, mongodb
Chatty
A WhatsApp clone with React Native and Apollo (Tutorial)
Stars: ✭ 481 (-43.61%)
Mutual labels:  graphql, apollo-client, apollo-server
Fullstack Tutorial
🚀 The Apollo platform tutorial app
Stars: ✭ 1,007 (+18.05%)
Mutual labels:  graphql, apollo-client, apollo-server
Apollo Resolvers
Expressive and composable resolvers for Apollostack's GraphQL server
Stars: ✭ 428 (-49.82%)
Mutual labels:  graphql, apollo-client, apollo-server
Next Graphql Blog
🖊 A Blog including a server and a client. Server is built with Node, Express & a customized GraphQL-yoga server. Client is built with React, Next js & Apollo client.
Stars: ✭ 152 (-82.18%)
Mutual labels:  graphql, apollo-client, mongodb
Apollo Errors
Machine-readable custom errors for Apollostack's GraphQL server
Stars: ✭ 405 (-52.52%)
Mutual labels:  graphql, apollo-client, apollo-server
Fakebooker Frontend
Stars: ✭ 124 (-85.46%)
Mutual labels:  graphql, apollo-client, social-network
Apollo2 Subscriptions How To
Apollo Server 2 how to setup subscriptions
Stars: ✭ 125 (-85.35%)
Mutual labels:  graphql, apollo-server, mongodb
Nest User Auth
A starter build for a back end which implements managing users with MongoDB, Mongoose, NestJS, Passport-JWT, and GraphQL.
Stars: ✭ 145 (-83%)
Mutual labels:  graphql, apollo-server, mongodb
Awesome Apollo Graphql
A curated list of amazingly awesome things regarding Apollo GraphQL ecosystem 🌟
Stars: ✭ 126 (-85.23%)
Mutual labels:  graphql, apollo-client, apollo-server
Feathers Apollo
Feathers and Apollo Server Sample Project
Stars: ✭ 176 (-79.37%)
Mutual labels:  graphql, apollo-server, mongodb
Intro To Graphql
[Course] Introduction to GraphQL
Stars: ✭ 175 (-79.48%)
Mutual labels:  graphql, apollo-server, mongodb
Fullstack Apollo Express Mongodb Boilerplate
💥A sophisticated GraphQL with Apollo, Express and MongoDB boilerplate project.
Stars: ✭ 301 (-64.71%)
Mutual labels:  apollo-client, apollo-server, mongodb
Kikstart Graphql Client
🚀 Small NodeJS Wrapper around apollo-client that provides easy access to running queries, mutations and subscriptions.
Stars: ✭ 27 (-96.83%)
Mutual labels:  graphql, apollo-client
Persistgraphql
A build tool for GraphQL projects.
Stars: ✭ 409 (-52.05%)
Mutual labels:  graphql, apollo-client
Spruce
A social networking platform made using Node.js and MongoDB
Stars: ✭ 399 (-53.22%)
Mutual labels:  mongodb, social-network
Apollo Link Firebase
🔥 🔗 apollo-link-firebase provides you a simple way to use Firebase with graphQL.
Stars: ✭ 415 (-51.35%)
Mutual labels:  graphql, apollo-client
Apollo Cache Hermes
A cache implementation for Apollo Client, tuned for performance
Stars: ✭ 425 (-50.18%)
Mutual labels:  graphql, apollo-client
Parse Server
API server module for Node/Express
Stars: ✭ 19,165 (+2146.78%)
Mutual labels:  graphql, mongodb
Searchkit
GraphQL API & React UI components for Elasticsearch. The easiest way to build a great search experience
Stars: ✭ 4,338 (+408.56%)
Mutual labels:  graphql, apollo-client

Create Social Network npm PRs Welcome

Create Social Network is a educational project. The main idea is to demonstrate how one can build a large scalable project with Javascript. However you get the core functionality of social network by running one command and then you can build more on top of that.

Repository is divided into three main packages:

  • api This package contains API for Social Networking App, built with Nodejs, Express, GraphQL, Apollo Server and MongoDB with Mongoose.
  • frontend Is a frontend for Social Networking App, built with React, GraphQL, Apollo Client and Styled Components.
  • lib Is a Nodejs command line script, that helps users to install the Social Networking App with one command. This package is published to NPM as a create-social-network

Features

  • Messenger Real time messaging system.
  • Notifications Get instant notification when someone follows/messages you or likes/comments on your post.
  • User Status Check if user is Online or not in real time.
  • News Feed Fresh posts from people you are following.
  • Explore New Posts and People.
  • Follow a particular user and get notified for their activity.
  • Personalize Profile With profile/cover photo and personal posts.
  • Authentication & Authorization with Password reset functionality.

Demo

https://worldexplorer.netlify.com/

Screenshots of the app

Home Messages Profile
People Explore Notifications

Quick Installation

npx create-social-network my-network
cd my-network
npm start

(npx comes with npm 5.2+ and higher, see instructions for older npm versions)

After installation open http://localhost:3000/ to see your app.

npm start

Requirements and Configuration

You’ll need to have Node 8.16.0 or Node 10.16.0 or later version on your local development machine

By default, the app uses MongoDB hosted on mLab and Cloudinary CDN for hosting images. We have created a demo user for mLab and Cloudinary so you can run the app locally without adding Mongo URL and Cloudinary API Key, however when you start developing your application it is recommended to replace that information with your own, so that everyone has their own Database and CDN.

Note demo database is being deleted and populated with demo data daily

Replacing Mongo URL

Replace MONGO_URL value in api/.env file with your mLab database url or with local one.

Replacing Cloudinary API Key

Grab Cloud name API Key and API Secret from Cloudinary dashboard and replace corresponding values inside api/.env file.

Mail Provider

For password reset functionality you will need to replace Email Provider values also in api/.env file.

Creating an App

To create a new app, you may choose one of the following methods:

npx

npx create-social-network my-network

(npx comes with npm 5.2+ and higher, see instructions for older npm versions)

npm

npm init social-network my-network

npm init <initializer> is available in npm 6+

Yarn

yarn create social-network my-network

yarn create is available in Yarn 0.25+

It will create a directory called my-network inside the current folder. Inside that directory, it will generate the initial project structure and install dependencies.

my-network
├── api
├── frontend
├── node_modules
├── .gitignore
├── netlify.toml
├── package.json
├── README.md

The app is organized as Monorepo using Yarn Workspaces

Once the installation is done, you can open your project folder:

cd my-network

And start the application with npm start or yarn start that will run the app in development mode. Open http://localhost:3000/ to view it in the browser.

The page will automatically reload if you make changes to the code.

Deployment

In development mode we are starting api and frontend servers with one command, but we need to deploy them separately.

API Deployment

Frontend Deployment

Contributing

Please read our CONTRIBUTING.md before submitting a Pull Request to the project.

License

MIT License Copyright (c) 2019 Dimi Mikadze

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].