https://github.com/cjen07/social_network
a social network application powered by elixir, phoenix and neo4j
https://github.com/cjen07/social_network
elixir neo4j notifications phoenix postgresql social-web
Last synced: 7 months ago
JSON representation
a social network application powered by elixir, phoenix and neo4j
- Host: GitHub
- URL: https://github.com/cjen07/social_network
- Owner: cjen07
- License: mit
- Created: 2017-01-02T08:53:43.000Z (almost 9 years ago)
- Default Branch: Presense
- Last Pushed: 2017-03-15T16:06:53.000Z (over 8 years ago)
- Last Synced: 2025-03-21T12:21:30.670Z (7 months ago)
- Topics: elixir, neo4j, notifications, phoenix, postgresql, social-web
- Language: Elixir
- Homepage:
- Size: 313 KB
- Stars: 15
- Watchers: 0
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# SocialNetwork
Remark
* Very welcome to anyone who is willing to try it out and give any suggestions
* All releases are working well and this branch is still under developmentTo setup
* Install phoenix framework and its [components](http://www.phoenixframework.org/docs/installation) including erlang, elixir, phoenix, nodejs and postgresql
* Download [neo4j (community version)](https://neo4j.com/download/community-edition/) and start the database with `./neo4j-community-a.b.c/bin/neo4j console`
To config* postgresql: config/dev.exs, set `alter user postgres with password 'postgres';`for first time users in database command line
* email: config/config.exs, using different adapters see [here](https://github.com/smpallen99/coherence#configuring-the-swoosh-email-adapter), currently using my mailgun sandbox
* arc: config/config.exs, using cloud storage see [here](https://github.com/stavro/arc), currently using local storage
* neo4j/bolt: config/config.exs, to reset neo4j password with command line: [here](http://430.io/change-neo4j-default-password-in-command-line/)
* localhost: config/config.exs, in endpoint configue: `url: [host: "localhost"]`To start your Phoenix app:
* Install dependencies with `mix deps.get`
* Create and migrate your database with `mix ecto.create && mix ecto.migrate`
* Install Node.js dependencies with `npm install`
* Start Phoenix endpoint with `mix phoenix.server`
* Now you can visit `localhost:4000` from your browser.Feature
* online notification persistence and online user mark
* new/delete post/comment/reply/thumb notifications of all pages
* friend relationship change notification: new follower and following deleted
* comment or thumb on deleted post, re-delete post/comment and re-thumb notification are settled
* re-follow and re-unfollow are settled, home, following, follower, follow/unfollow of a deleted user are prevented
* image upload should be less than 2MB, post and comment should be no more than 500 charactersGoal in short term
* private chat using phoenix presense: chat button and chat panel
* gif instuctions in this readme and online example using https
Goal in long term* offline notification and chat persistence
* make it dry, and test it by wallaby
* fewer limitations and hidden bugsLimitation
* one comment can only be referred to one comment at one time using reply button
* same user same time double comment on same post will resulted in undefined behaviour
* only one image per post is allowed, audio/video not supported, post re-delivering not supported
* if A comments on B's post, A does not follow B, and anyone replies A in B's post and then B deletes that post, the notification in A's news page will not disappear, which is what "possibly" means in the notification.
* if A follows B, and B does not follow A and then A deletes his/her account, the "new follower" notification in B's friend page will not disappear
Bugs
* bolt_sip bug, not knowing exactly how to trigger it again
* phoenix_timex Timex.from_now() -1 minutes ago