All Projects → Human-Connection → Nitro-Backend

Human-Connection / Nitro-Backend

Licence: MIT license
Human-Connection - Social Network Backend

Programming Languages

javascript
184084 projects - #8 most used programming language
Gherkin
971 projects
shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to Nitro-Backend

Ocelot-Social
Free and open-source social network for active citizenship.
Stars: ✭ 49 (+250%)
Mutual labels:  social-network, neo4j-database
diaspy
Unofficial Python interface to the DIASPORA* social network
Stars: ✭ 58 (+314.29%)
Mutual labels:  social-network
social-post-api
Social Media API: Automate Posting and Analytics to Social Networks like Instagram, TikTok, Twitter, Facebook, LinkedIn, Reddit, YouTube, and Telegram
Stars: ✭ 38 (+171.43%)
Mutual labels:  social-network
social
A simple social media using MEAN Stack. Frontend: Angular 6.
Stars: ✭ 13 (-7.14%)
Mutual labels:  social-network
soundstorm
The Federated Social Audio Platform
Stars: ✭ 26 (+85.71%)
Mutual labels:  social-network
socials
👨‍👩‍👦 Social account detection and extraction in Python, e.g. for crawling/scraping.
Stars: ✭ 37 (+164.29%)
Mutual labels:  social-network
geekweibo
A twitter-like app where you can save and share short notes around programming. You can think of it as "twitter for programmers".
Stars: ✭ 50 (+257.14%)
Mutual labels:  social-network
socialize
Python CLI client for 'Socialize - A social network on the command line'
Stars: ✭ 32 (+128.57%)
Mutual labels:  social-network
inCyberPunk2022
👾 https://cybersocial.herokuapp.com/   C̵̡̡͓̪̺̲̺̳̭̱̩͖͔̽̈́͜y̵̢̺̮̥̠̲̼̫͗b̴̲͇̟̭̹͆͒̈́̒͋̃̌̇̈̆̚͠͠ȅ̷̡̢̩̺̏r̴̢̛̹̲̜͙͉̩̩̣͉̺͂̀́̈́̇͛͋̊̉̈́̇P̵̡͊̚ų̵̙̣͓̤̼̭̤̥̯̻̯̒ͅň̸̛̯͕̦̦͓̙̋͐̈́́̉ͅḱ̷̡̪͚͉̟̘̳̯̳͉̈́͐͂̇̾͑̕̕͝ͅ
Stars: ✭ 28 (+100%)
Mutual labels:  social-network
shepherd
Shepherd is our 2nd prototype to showcase how a truly decentralised social network can be based on SOLID.
Stars: ✭ 14 (+0%)
Mutual labels:  social-network
Autocomplete-System
Restful Autocomplete service with Neo4j graph backend. Returns top suggestions.
Stars: ✭ 36 (+157.14%)
Mutual labels:  neo4j-database
spammer-core
Strategy-oriented social network spammer.
Stars: ✭ 22 (+57.14%)
Mutual labels:  social-network
django-social-network-like-Facebook-or-Instagram
Live site at https://sbraven.herokuapp.com Do checkout this project to know how all the features of Facebook like Like , Comments , Messaging , Profile, Stories, Notifications , Friend Requests work under the hood.
Stars: ✭ 19 (+35.71%)
Mutual labels:  social-network
Hashtegny
jQuery Plugin aggregates hashtags from different social media networks. Posts are displayed in a unique, & attractive grid, and animated layout.
Stars: ✭ 52 (+271.43%)
Mutual labels:  social-network
elixir ravelry
Elixir API using Neo4j database for ElixirConf 2017 talk
Stars: ✭ 21 (+50%)
Mutual labels:  neo4j-database
BAINSocial
BAIN Social is a Fully Decentralized Server/client system that utilizes Concepts pioneered by I2P, ToR, and PGP to create a system which bypasses singular hosts for data while keeping that data secure.
Stars: ✭ 14 (+0%)
Mutual labels:  social-network
driwwwle
The social network for developers. Discover creative websites and build a community.
Stars: ✭ 109 (+678.57%)
Mutual labels:  social-network
ts-ui
Telar Social Network using Reactjs
Stars: ✭ 35 (+150%)
Mutual labels:  social-network
awesome-alternatives
A list of alternative websites/software to popular proprietary services.
Stars: ✭ 123 (+778.57%)
Mutual labels:  social-network
social-login-phpbb
Social Login for phpBB allows your users to login and register with 40+ social networks. It increases your phpBB user registration rate by simplifying the registration process.
Stars: ✭ 48 (+242.86%)
Mutual labels:  social-network

Human Connection

NITRO Backend

Build Status MIT License FOSSA Status Discord Channel

This Prototype tries to resolve the biggest hurdle of connecting our services together. This is not possible in a sane way using our current approach.

With this Prototype we can explore using the combination of GraphQL and the Neo4j Graph Database for achieving the connected nature of a social graph with better development experience as we do not need to connect data by our own any more through weird table structures etc.

Advantages:

  • easer data structure
  • better connected data
  • easy to achieve "recommendations" based on actions (relations)
  • more performant and better to understand API
  • better API client that uses caching

We still need to evaluate the drawbacks and estimate the development cost of such an approach

How to get in touch

Connect with other developers over Discord

Quick Start

Forking the repository

Before you start, fork the repository using the fork button above, then clone it to your local machine using git clone https://github.com/your-username/Nitro-Backend.git

Installation with Docker

Run:

docker-compose up

# create indices etc.
docker-compose exec neo4j migrate

# if you want seed data
# open another terminal and run
docker-compose exec backend yarn run db:seed

App is running on port 4000

To wipe out your neo4j database run:

docker-compose down -v

Installation without Docker

Install dependencies:

yarn install
# -or-
npm install

Copy:

cp .env.template .env

Configure the file .env according to your needs and your local setup.

Start the GraphQL service:

yarn dev
# -or-
npm dev

And on the production machine run following:

yarn start
# -or-
npm start

This will start the GraphQL service (by default on localhost:4000) where you can issue GraphQL requests or access GraphQL Playground in the browser:

GraphQL Playground

Configure

Set your Neo4j connection string and credentials in .env. For example:

.env

NEO4J_URI=bolt://localhost:7687
NEO4J_USERNAME=neo4j
NEO4J_PASSWORD=letmein

You need to install APOC as a plugin for the graph you create in the neo4j desktop app!

Note that grand-stack-starter does not currently bundle a distribution of Neo4j. You can download Neo4j Desktop and run locally for development, spin up a hosted Neo4j Sandbox instance, run Neo4j in one of the many cloud options, spin up Neo4j in a Docker container or on Debian-based systems install Neo4j from the Debian Repository. Just be sure to update the Neo4j connection string and credentials accordingly in .env.

Mock API Results

Alternatively you can just mock all responses from the api which let you build a frontend application without running a neo4j instance.

Just set MOCK=true inside .env or pass it on application start.

Seed and Reset the Database

Optionally you can seed the GraphQL service by executing mutations that will write sample data to the database:

yarn run db:seed
# -or-
npm run db:seed

For a reset you can use the reset script:

yarn db:reset
# -or-
npm run db:reset

Run Tests

Beware: We have no multiple database setup at the moment. We clean the database after each test, running the tests will wipe out all your data!

Run the jest tests:

yarn run test
# -or-
npm run test

Run the cucumber features:

yarn run test:cucumber
# -or-
npm run test:cucumber

When some tests fail, try yarn db:reset and after that yarn db:seed. Then run the tests again

Todo`s

  • add jwt authentication
  • get directives working correctly (@toLower, @auth, @role, etc.)
  • check if search is working
  • check if sorting is working
  • check if pagination is working
  • check if upload is working (using graphql-yoga?)
  • evaluate middleware
  • ignore Posts and Comments by blacklisted Users

License

FOSSA Status

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