{"id":18026896,"url":"https://github.com/yegor256/soalition","last_synced_at":"2025-03-27T01:31:30.033Z","repository":{"id":33363560,"uuid":"151954565","full_name":"yegor256/soalition","owner":"yegor256","description":"Social Coalitions of Internet Writers","archived":false,"fork":false,"pushed_at":"2025-03-13T23:45:58.000Z","size":428,"stargazers_count":17,"open_issues_count":20,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-22T21:07:26.487Z","etag":null,"topics":["ruby","social","social-network"],"latest_commit_sha":null,"homepage":"https://www.soalition.com","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yegor256.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-10-07T15:14:58.000Z","updated_at":"2023-06-03T08:34:33.000Z","dependencies_parsed_at":"2024-01-18T09:53:13.593Z","dependency_job_id":"774721dd-ba75-40dc-b9ec-83923f389a9c","html_url":"https://github.com/yegor256/soalition","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yegor256%2Fsoalition","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yegor256%2Fsoalition/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yegor256%2Fsoalition/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yegor256%2Fsoalition/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yegor256","download_url":"https://codeload.github.com/yegor256/soalition/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245764730,"owners_count":20668467,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ruby","social","social-network"],"created_at":"2024-10-30T08:08:24.978Z","updated_at":"2025-03-27T01:31:29.496Z","avatar_url":"https://github.com/yegor256.png","language":"Ruby","readme":"\u003cimg src=\"https://www.soalition.com/logo.svg\" width=\"92px\" height=\"92px\"/\u003e\n\n[![EO principles respected here](https://www.elegantobjects.org/badge.svg)](https://www.elegantobjects.org)\n[![Managed by Zerocracy](https://www.0crat.com/badge/CAZPZR9FS.svg)](https://www.0crat.com/p/CAZPZR9FS)\n[![DevOps By Rultor.com](http://www.rultor.com/b/yegor256/soalition)](http://www.rultor.com/p/yegor256/soalition)\n[![We recommend RubyMine](https://www.elegantobjects.org/rubymine.svg)](https://www.jetbrains.com/ruby/)\n\n[![Build Status](https://travis-ci.org/yegor256/soalition.svg)](https://travis-ci.org/yegor256/soalition)\n[![PDD status](http://www.0pdd.com/svg?name=yegor256/soalition)](http://www.0pdd.com/p?name=yegor256/soalition)\n[![Test Coverage](https://img.shields.io/codecov/c/github/yegor256/soalition.svg)](https://codecov.io/github/yegor256/soalition?branch=master)\n[![Maintainability](https://api.codeclimate.com/v1/badges/451556110dacf73cc6f6/maintainability)](https://codeclimate.com/github/yegor256/soalition/maintainability)\n\n[![Availability at SixNines](https://www.sixnines.io/b/79be)](https://www.sixnines.io/h/79be)\n[![Hits-of-Code](https://hitsofcode.com/github/yegor256/soalition)](https://hitsofcode.com/view/github/yegor256/soalition)\n\nIt's a social coalition management web app for online writers.\n\nEach _soalition_ (social coalition) is a group of Internet writers interested\nin helping each other promote the same idea. They all write regularly\nand want others in the group to share their content. In exchange they\nare willing to share their content too.\n\nEverybody has a _score_ inside a soalition, which is calculated by\nthe formula (see method `score()`\nin [`soalition.rb`](https://github.com/yegor256/soalition/blob/master/objects/soalition.rb)):\n\nS = R + (3 - |P - 3|) x M\n\nHere, _R_ is the number of reposts a member of the group did in the last\n90 days, _P_ is the number of posts a member shared with the group in the\nsame period of time, and _M_ is the number of members currently in the group.\n\nThe formula conveys the idea that each repost is a positive contribution,\nwhile only the first three posts are positive. All other posts, which go above\nthe first three lower the score. In other words, to keep the score positive\na member of the group has to post once a month and repost all content\nshared by other members.\n\n## How to contribute\n\nYou will need Java 8, Maven 3.2+, Ruby 2.3+, Bundler.\n\nJust run:\n\n```bash\n$ rake\n```\n\nTo run a single test first run this, in a separate terminal:\n\n```\n$ rake pgsql liquibase sleep\n```\n\nThis will start a PostgreSQL database, fill it up with the schema and stay\nwaiting. Then, in another terminal:\n\n```\n$ ruby test/test_soalition.rb\n```\n\nShould work :)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyegor256%2Fsoalition","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyegor256%2Fsoalition","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyegor256%2Fsoalition/lists"}