Skip to content

pulkitmehra/socialconnection

Repository files navigation

#Social-Connection A graph based social connection web application. This application contains graph of persons on which user can query the following

  1. List of persons in graph
  2. Path between two person.(Like linked-In, when logged in user visits someone's profile, Linked-In shows him the path of person and friends, who can introduce him with this person i.e friends of friends)
  3. Get count of persons(path) between two given persons.

This Graph is acheived via two ways

  • Neo4j, Graph Database
  • Home grown Graph Implementation using Adjacency list

For detailed design overview see wiki, Wiki-Design

Below is the technology stack

<ul>
  <li>  <b> Language: Java 8, Groovy</b> </li>
  <li>  <b> Framework: Spring, SpringMVC </b> </li>
  <li>  <b> Database: Neo4j </b> </li>
  <li>  <b> Testing: JUnit, Mockito </b> </li>
  <li>  <b> Functional Testing: Groovy Spock </b> </li>
  <li>  <b> UAT Testing: Cucumber </b> </li>
  <li>  <b> Build Tools: Maven, Gradle </b> </li>
  <li>  <b> Dev ops: Vagrant </b> </li>
</ul>  

Quick Run Instruction

Pre-requisite

For running web app

  • Git clone this repo and CD to root of that folder
  • Run maven command 'mvn clean install tomcat7:run'
  • Application will be deployed and initialized with a small person data set. Tomcat server will boot at port 8080. Below is the data set

Social connection

Verify REST web service calls

  • Set Accept header as application/xml or application/json
  • GET http://localhost:8080/socialconnection/api/social/1.0/person
  • GET http://localhost:8080/socialconnection/api/social/1.0/person?fromName=Foo&toName=Tim
  • GET http://localhost:8080/socialconnection/api/social/1.0/person/count?fromName=Foo&toName=Tim

For running FT and UAT test case (Make sure the tomcat server is up at localhost:8080)

  • Run command at root of the clone folder 'gradle build'

For detailed deployment or deployment using vagrant see wiki Wiki-Deployment

About

A graph based social connection web application

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages