/O2SN

A news social network using clojure and clojurescript

Primary LanguageClojure

O2SN (Open Source News Social Network)

Intro

This project is intended for helping me to learn Clojure and Clojurescript and get familiar with their ecosystem, especially for web development.

The Idea

It's about a website, on which you can share news and get news by locations, but instead of doing that the old way (just sharing and retrieving) i thought about a simple rating system; everyone can share stories, but those stories can be marked by users as truth or lie, so the story rating depends on : 1) the number of truths and lies given. 2) the credibility of user rated the story. 3) the distance between that user and the story location. this means that only people near the event should rate it, it's not just because they have a bigger impact on the story's rating, but because giving ratings updates the user's credibility too. A user can subscribe to channels, each channel represents one location (i used the google map's locations levels: country, admin-level-1,admin-level-2 and locality) Users can like or dislike a story, which doesn't effect the story's rating nor the user's credibility

Features

  • A user can signup for an account
  • A user can login and logout to his account
  • A user can share a new story
  • A user can mark a story as truth or lie
  • A user can like or dislike a story
  • A user can view a story in details
  • A user can subscribe an unsubscribe to a location's channel
  • A user can load stories of a channel and sort them
  • A user can search for a story or a user
  • A user have a profile
  • A user can see other users profiles
  • A user receives notifications about relevant new stories or actions
  • A user can change his profile
  • A user can follow other users
  • A user can message other users
  • A user can report a story or a user
  • A user can request another user to merge their stories if they are about the same event
  • A user can customize settings

Screenshots

home page

Default home page

default home page

Selecting a channel

selecting a channel

Loading Stories

loading stories

Clicking a story card to reveal actions

clicking a story card to reveal actions

View users who likes or dislikes the story

view users who likes or dislikes the story