Hello everyone. This is my first post in the Neo4j forums. Is this the right category for this question? If no, please point me to a category which would be more appropriate.
I wanted advice for how to go about building a single page application(SPA) using Neo4j as the database layer.
I was thinking of going the route of having the SPA (preferably in Vue JS) interact with a backend (preferably Flask) through an API, and the backend would then communicate with Neo4j using bolt API. Would this be the preferred approach? Or would it be preferable to use the Bolt API from client side ?
The app also needs to have some offline capability i.e. limited to viewing/editing some recently opened pages, and edits later sync to the database when online. How could this be realized?
I was thinking of having the backend return data in JSON to the client, which would then manage the JSONs in its store (using state-mgmt solutions like Vuex, Redux). This leads to two problems:
- I cannot use Cypher to query the data, and then have to rely on JS filters and such. What can I do about this? Does Neo4j have something like Datascript that can run inside a browser? Or a community project perhaps?
- Syncing: How would local changes (in JSON) be communicated to the backend (which would then replicate the changes in the database)? The best I could think of is recording the changes in a format (e.g. favourited 2e4r3f, modified 2e4r3f "text it is now") and send those to the backend. What would you guys do?
I would love if anyone could provide their advice or guide me towards resources that could help.
P.S. I moved this topic from the "Drivers & Stacks" section, because I saw that this section XD