This is an application that is kind of SNS, which contains the feature of make a friend relationship, share my post(included with photoes), gathering friends' posts, and react with it through comment it or like it.
This project is mainly consist of some open source framework
- Spring boot
- React
- DBMS (in my case, I use MySQL)
- S2Graph
- Fast
It does not use relational database for gathering posts which posted from friends but use graph database. Which means that It is much faster than multiple join query in SQL. So users do not have to wait much time in the timeline, and developers do not have to care about the waiting time that much.
To start this application, you have to launch 3 seperate 4 application which list is on the top, Spring boot: the back-end server, React: the front-end view, Mysql: RDBMS, S2Graph: the graph database
This is the directory's desciption
/api : Spring boot back-end
/timeline : React front-end
/s2graph : S2graph graph database
And this is the way to start it
Back-end (Spring boot)
(for development mode)cd api/target
java -jar api-0.0.1-SNAPSHOT.jar
Front-end (React)
(for development mode)
cd timeline
npm start
oryarn start
Graph database (S2Graph)
cd s2graph/s2/apache-s2graph-0.2.0-incubating-src/target/apache-s2graph-0.2.0-incubating-bin
sh bin/start-s2graph.sh
RDBMS
Any DBMS whatever you want
You can setting by your environment to each frameworks
Back-end (Spring boot)
at/api/src/main/resources/application.properties
spring.datasource.url - your dbms database url
spring.datasource.username - your dbms account name
spring.datasource.password - your dbms account password
at/api/src/main/java/com/timeline/api/graphEntity/HttpFactory.java
graphUrl - your s2graph url
Front-end (React)
at/timeline/src/setting.js
serverUrl - your backend url
Graph database (S2Graph)
at/s2graph/s2/apache-s2graph-0.2.0-incubating-src/conf/application.conf
check S2Graph official document
Click! (Now Fixing)