Giter Site home page Giter Site logo

movies-kotlin-spring-data-neo4j's Introduction

Kotlin SDN Movies Example Application

This is an example backend app powered by Spring Data Neo4j, Spring Boot and the JVM language Kotlin. The domain is the SDN movies dataset along with movie buffs as end users.

The application includes features as would be typical of a social mobile application or web-app:

  • End users can interact (like, dislike) movies, roles or directors, make friends with other movie buffs, and based on these interactions, be recommended other movies that they're likely to enjoy.
  • Token-based authentication provided by Spring Security.

Spring Data Neo4j was the first Spring Data project, started by the CEOs Rod Johnson and Emil Eifrem. It enables convenient integration of Neo4j in your Spring-based application. It provides object-graph mapping functionality and other features common to the Spring Data projects.


Note

This project uses Spring Data Neo4j 4 which is a complete rewrite from earlier versions. It is optimized for working with Neo4j Server and based on Neo4j's query language, Cypher.


Quickstart

  • Download, install and start Neo4j Server].
  • open the web-interface at http://localhost:7474
  • configure a username and password if you haven't already.
  • run :play movies command, and click and run the Cypher statement to insert the dataset
  • clone this project from GitHub . update src/main/resources/application.properties with the username and password you set above.
  • Open localhost:7474 and create a test user:

CREATE (u:User {applicationToken:"ba2ab43b-01e6-4425-8089-f0ade3db28c3", email:"[email protected]", firstName:"YourFirstName", joined:"2018-10-13T01:28:22.771Z", lastActive:"2018-10-13T01:28:22.771Z", lastName:"YourLastName", password:"password", uuid:"b4342c76-f693-4205-8ffd-22d56b92cbbb" })

  • run the project with gradle bootRun.

Code Walkthrough

TODO

Endpoints:

movies-kotlin-spring-data-neo4j's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

movies-kotlin-spring-data-neo4j's Issues

Split project into persistence and security

I'm learning Spring Data Neo4J and this is probably the only application that is written in Kotlin, so thanks for that. However, as a beginner to Spring Data Neo4J but not to other areas of Spring, I'm finding the mixing of 2 separate areas of concern somewhat hindering my understanding of the code. I suggest that security be made orthogonal, and optional, to the actual code, which is persisting a graph in Neo4J. This can be done by simply splitting the project into 2 modules, one for persistence, and another for security. Security would be enabled by default but could be turned off by activating a profile at runtime.

Also, FYI, Kotlin coding conventions require omitting the common base package directories, thus giving some relief to the deep packages that are so common in Java projects.

Cannot run your project

Excellent example but I cannot run it. I believe is for Spring Security (app token). You make an authorization with some User Node label (i.e., MATCH (n:User)....).
Where dos this node label coma from? How do you initialize it?

I believe some documentation is missing, so help is appreciated.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.