Skip to content

Latest commit

 

History

History
118 lines (70 loc) · 3.65 KB

README.md

File metadata and controls

118 lines (70 loc) · 3.65 KB

CI

Kikeriki - Social Network with Cassandra and React run in Docker

logo

Open in Gitpod

Documentation

Find the detailed lessons learned here.

Find the sample queries this project is built around here.

Find the explanation for the Table structure here.

All of these Files are also available as PDF in the PDF Folder

The preprocessing python script is here

Architecture

Infrastructure

Database

Getting Started

Currently we only implemented the full setup for cassandra. So only make cass fully works. It takes about 30min to fully load the data after entering the command, so go and get some coffee.

Gitpod Setup

Gitpod starts with executing make cass and then opens two browser windows for Cassandra Web and the Frontend Website. Due to development reasons this is currently disabled and needs to be started manually.

The react and cassandra frontend should open automaticly, if not the react frontend runs on Port 3001 and the cassandra frontend on Port 3000.

React Frontend

Imporant

Disable the CORS policy in your Browser, otherwise the frontend cant send API requests to the backend resulting in an not working frontend.

The frontend is build with Create React App. Frontend1 Frontend2 It runs on Port 3001

It supports the following features:

  • Login with userID and username
  • View your feed sorted by likes or date (see kikerikis of people you follow)
  • View your profile to see your kikerikis sorted by date and to see your follower and follows count
  • Send new kikerikis

Example Users for Frontend Login:

Here are two example users you can use for the login. Tylor Swift doesnt follow anyone who has posts so the feed will be empty but your profile should look full. The other User follows Taylor but doesnt have any Posts so your Feed should look full and your profile empty but your can kikeriki yourself to see thoose kikerikis in your profile.

  • Taylor Swift

  • Username: taylorswift13

  • UserID: 233248636

  • Other User:

  • Username: NoName

  • UserID: 172883064

Sources we used for the frontend design:

Cassandra Cluster Details

Cassandra Cluster with three nodes can be accessed via web the interface at http://localhost:3000/

Useful commands:

  • docker exec cass1 nodetool status (status check) --> UN = Up and Normal
  • docker exec -it cass1 cqlsh (open cqlsh)

Makefile

The Makefile allows to run different setups:

For the neo4j-ent command to work, you need to change NEO4J_ACCEPT_LICENSE_AGREEMENT to yes (which means you own a Enterprise license)

# Run Neo4j enterprise edition with 4 nodes
make neo4j-ent

# Shuts down the Neo4j enterprise cluster
neo4j-ent-shutdown

# Run Neo4j community edition (single instance)
make neo4j-com

# Run Cassandra Cluster with three nodes
make cass

# Run Query 2 and 3 on Cassandra Cluster using python
make cass-ex2_3

# Run scylla Cluster
make scylla

# Run redis Cluster
make redis