Commit bb8e5b13 authored by Distopico's avatar Distopico
Browse files

Born compa

parents
Pipeline #28407 failed with stage
in 16 minutes and 50 seconds
# top-most EditorConfig file
root = true
[*]
charset = utf-8
indent_style = space
end_of_line = lf
insert_final_newline = true
[*.{css,json}]
indent_size = 2
trim_trailing_whitespace = true
[*.js]
indent_size = 4
trim_trailing_whitespace = true
{
"env": {
"browser": true,
"commonjs": true,
"es6": true,
"node": true
},
"extends": "eslint:recommended",
"parserOptions": {
"sourceType": "module"
},
"rules": {
"indent": [
"error",
4
],
"linebreak-style": [
"error",
"unix"
],
"quotes": [
"error",
"double"
],
"semi": [
"error",
"always"
]
}
}
\ No newline at end of file
# Logs
logs
*.log
npm-debug.log*
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
coverage-root
# nyc test coverage
.nyc_output
# Grunt intermediate storage
.grunt
# node-waf configuration
.lock-wscript
# Compiled binary addons
build/Release
# Dependency directories
node_modules
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# Compa stuff
config.js
before_script:
- apt-get update -qq && apt-get install -y -qq graphicsmagick wget sudo
- wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash
- export NVM_DIR="$HOME/.nvm"
- . "$NVM_DIR/nvm.sh"
stages:
- test
test_node4:
stage: test
script:
- nvm install 4
- npm install && npm run build
- npm run test
- npm run test:root && npm run test:install
- npm run test:coverage
test_node5:
stage: test
script:
- nvm install 5
- npm install && npm run build
- npm run test
- npm run test:install
- npm run test:coverage
test_node6:
stage: test
script:
- nvm install 6
- npm install && npm run build
- npm run test
- npm run test:install
- npm run test:coverage
test_node7:
stage: test
script:
- nvm install 7
- npm install && npm run build
- npm run test
- npm run test:install
- npm run test:coverage
test_node8:
stage: test
script:
- nvm install 8
- npm install && npm run build
- npm run test
- npm run test:install
- npm run test:coverage
This is a list of contributors, this software wouldn't exist without them.
The list is in alphabetical order:
- distopico "Camilo QS" <distopico@riseup.net>
# Compa changelog
All notable changes to this project will be documented in this file. this project follows [Semantic Versioning][semver] and the format is based on [Keep a Changelog][keepachangelog]
Please also feel free to ask questions in the issue tracker; this list could surely be more precise.
## [Unreleased]
### Added
[semver]: http://semver.org/
[keepachangelog]: http://keepachangelog.com/en/1.0.0/
# Contribution guide
It's great that you want to contribute to **Compa**! There are lots of ways to get involved.
## Code
There's always work to be done on the **Compa** codebase. Here are the basic rules:
* Write [good commit messages][commits]
* Make sure the linter (`npm run lint`) passes
* Make sure all tests (`npm test`) passes
* Send patches via Pull Request from your branch to `develop`
* See [HACKING.md][] for more guidelines
Need a more detailed explanation, or aren't sure how to start? See [CONTRIBUTING_CODE.md][].
## Design
Other way to contribute is with design, you can make contribution for better UI/UX in webapp,
or with design for promotional material etc, please feel free to propose, only some basic things:
* All design pieces need release over [Creative Commons License By-SA][creativecommons]
* We'll need teh source file in a open format like `.svg`
## Issues
Found a problem in **compa**, or want to suggest an improvement? Reporting that to us is super useful.
If you've found a bug, include as much information as possible about the server:
* Hostname
* **compa** version
* Node.js version
* npm version
* The contents of `compa.json` (if you have access to that; make sure to redact secrets)
* The operating system
* Install method (source-based or npm-based)
If it's a bug in the web UI, please provide exact step-by-step instructions for reproducing it.
If it's a bug in the API, include details about what you're submitting or the exact URL that you're querying.
## This project is Free Software
**Compa** is [Free Software][freesoftware] and your code contributions will be released under the **GNU AGPL 3.0 License**,
See the [COPYING][LICENSE] file for the full license text.
[![GNU AGPLv3 Image](https://www.gnu.org/graphics/agplv3-88x31.png)](https://www.gnu.org/licenses/agpl-3.0.html)
[commits]: https://chris.beams.io/posts/git-commit/
[HACKING]: https://framagit.org/compa/compa/tree/master/doc/HACKING.md
[LICENSE]: https://framagit.org/compa/compa/tree/master/COPYING
[CONTRIBUTING_CODE.md]: https://framagit.org/compa/compa/tree/master/doc/CONTRIBUTING_CODE.md
[creativecommons]: https://creativecommons.org/choose/
[community]: https://github.com/pump-io/pump.io/wiki/Community
[freesoftware]: https://www.gnu.org/philosophy/free-sw.html
This diff is collapsed.
# ![Compa](https://framagit.org/compa/compa/raw/master/public/images/logo.png)
[![license AGPL v3](https://img.shields.io/badge/License-AGPL%20v3-663366.svg)](https://www.gnu.org/licenses/agpl-3.0)
[![build status](https://framagit.org/compa/compa/badges/master/pipeline.svg)](https://framagit.org/compa/compa/commits/master)
[![coverage status](https://framagit.org/compa/compa/badges/master/coverage.svg)](https://framagit.org/compa/compa/commits/master)
[![npm](https://img.shields.io/npm/v/compa.svg)](https://npmjs.com/package/compa)
[![irc channel](https://img.shields.io/badge/IRC%20chat-%23compa-blue.svg)](http://webchat.freenode.net/?channels=%23compa)
This is Compa [`*/kompa/`](https://framagit.org/compa/compa/wikis/FAQ#what-mean-compa). It's a free (as freedom) worldwide social directory decentralized and federated with an ActivityPub API,
this is a horizontal [community project][community], anyone can run and participate and contribute, the focus of the project is work for
a good user interface, a clean REST API and connecting the people for a better world.
Compa use ActivtyPub as principal protocol and is compatible with Pump.io, Mastodon and other free/open source social networks
## What's Compa?
You visited a bookstore, a library and you liked it so much that you would like others to know it,
then you can create the site if it does not exist and share it with your friends or family
or you are a traveler in search of new beautiful places to visit then **Compa**
will be your travel guide based on sites that people have already rehared and valued.
You can share any place like museums, natural park, libraries etc.
## Contributing
You can open issues for bugs you've found or features you think are missing. You can also submit pull requests to this repository. Here are the guidelines for code contributions
Fork -> Patch -> Push -> Pull Request
For developer please see the guidelines for [Code Contributions](https://framagit.org/compa/compa/tree/master/CONTRIBUTING.md)
Join to IRC channel **#compa** on irc.freenode.net or see: [Community][community]
## Bugs
If you find bugs, you can report them here:
https://framagit.org/compa/compa/issues
## Installation
### Prerequisites
You'll need four things to get started:
* node.js 4.x or higher
* npm 1.1.0 or higher
* The `graphicsmagick` package with the `gm` command
### Install with npm
The easiest way is to install the software globally using npm, like
so:
npm install -g compa
That should set up all the files and dependencies for you.
### Local install
If you want to set up the software in its own directory, you can clone
the git repository, so:
git clone https://framagit.org/compa/compa.git
You can then install the dependencies using `npm`:
cd compa
npm install
npm run build
## Getting Started
For a basic setup please see the [Getting Started Guide](https://framagit.org/compa/compa/tree/master/doc/GETTING_STARTED.md)
## Wiki
For more information please check out the [Wiki](https://framagit.org/compa/compa/wikis) and our
[ReadTheDocs](https://pumpio.readthedocs.io/en/latest/) documentation.
## FAQ
- What mean Compa?
- What is the idea behind this?
- Etc.
Please see [FAQ](https://framagit.org/compa/compa/wikis/FAQ) for the answers for this and others questions.
## Roadmap
This [Roadmap](https://framagit.org/compa/compa/tree/master/doc/ROADMAP.md) is only for brainstorm, but you can make a idea of the priorities of this project.
## License
[![GNU AGPLv3 Image](https://www.gnu.org/graphics/agplv3-155x51.png)](https://www.gnu.org/licenses/agpl-3.0.html)
**Compa** is [Free Software][freesoftware]: You can use, study share and improve it at your
will. Specifically you can redistribute and/or modify it under the terms of the
**GNU AGPL 3.0 License** as published by the Free Software Foundation.
See the [COPYING][LICENSE] file for the full license text
[community]: https://framagit.org/compa/compa/wikis/Community
[LICENSE]: https://framagit.org/compa/compa/tree/master/COPYING
[freesoftware]: https://www.gnu.org/philosophy/free-sw.html
# Compa Roadmap
This is some ideas, feel free to propose others, for a more real planing release please see the [Issue Board](https://framagit.org/compa/compa/boards)
## Version 1.0.0
- Full basic functionality (like, share, report, search)
- ActivityPub API
- A good webapp
- Hash tag support
## Version 2.0.0
- i18n support
- OStatus support
- Group support
- Docker Image
{
"name": "compa",
"preferGlobal": "true",
"homepage": "http://joincompa.org/",
"version": "1.0.0-alpha.3",
"author": "Distopico <distopico@riseup.net>",
"description": "Compa is a free (as freedom) world wide social directory decentralized and federated with an ActivityPub API.",
"devDependencies": {
"dependency-check": "^2.8.0",
"eslint": "^4.10.0",
"istanbul-combine": "^0.3.0",
"jsonlint": "^1.6.2",
"nyc": "^11.3.0"
},
"dependencies": {
"bcryptjs": "^2.4.3",
"body-parser": "^1.15.2",
"bunyan": "^1.8.12",
"cookie-parser": "^1.4.3",
"express": "^4.16.0",
"express-session": "^1.14.1",
"gm": "^1.22.0",
"helmet": "^3.3.0",
"lodash": "^4.17.4",
"method-override": "^2.3.6",
"mkdirp": "0.5.x",
"serve-favicon": "^2.3.0",
"showdown": "^1.4.1",
"ua-parser-js": "^0.7.10",
"uuid": "^3.0.0",
"validator": "^9.0.0",
"yargs": "^9.0.1"
},
"bin": {
"compa": "./bin/compa"
},
"man": [
"./doc/compa.1"
],
"scripts": {
"test": "npm run lint",
"test:install": "npm install -g .",
"test:coverage": "istanbul-combine -d coverage -p summary -r lcov 'coverage*/coverage-final.json'",
"lint": "npm run lint:json",
"lint:deps": "dependency-check package.json bin/* test/*.js > /dev/null && dependency-check --unused package.json -i dependency-check -i jsonlint -i nyc -i istanbul-combine bin/* test/*.js > /dev/null",
"lint:json": "jsonlint -q package.json compa.json.sample"
},
"repository": {
"type": "git",
"url": "https://framagit.org/compa/compa.git"
},
"bugs": "https://framagit.org/compa/compa/issues",
"keywords": [
"activitystreams",
"activitypub",
"socialnetwork",
"social",
"directory",
"places",
"compa",
"streams",
"api",
"app",
"server"
],
"license": "AGPL-3.0",
"engines": {
"node": ">=4 <=8",
"npm": ">=2"
},
"greenkeeper": {
"ignore": []
}
}
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="380"
height="90"
viewBox="0 0 380 90.000002"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="logo.svg"
inkscape:export-filename="/Users/cquimbayo/Documents/projects/personal/compa/public/images/logo.png"
inkscape:export-xdpi="100"
inkscape:export-ydpi="100">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4"
inkscape:cx="66.803049"
inkscape:cy="103.23735"
inkscape:document-units="px"
inkscape:current-layer="g4434"
showgrid="false"
inkscape:window-width="1676"
inkscape:window-height="1006"
inkscape:window-x="4"
inkscape:window-y="0"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
units="px" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-56.974678,-913.83408)">
<g
id="g4434"
transform="matrix(0.76960294,0,0,0.76960294,55.429403,223.44015)">
<g
transform="translate(-40,800)"
id="g4420"
style="fill:#5f8dd3;fill-opacity:1">
<circle
r="21.213207"
cy="154.33661"
cx="158.59396"
id="circle4422"
style="opacity:1;fill:#5f8dd3;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="opacity:1;fill:#5f8dd3;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle4424"
cx="144.24878"
cy="118.3772"
r="11.11168" />
<circle
style="opacity:1;fill:#5f8dd3;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle4426"
cx="113.13712"
cy="155.34676"
r="16.162445" />
<circle
r="11.111682"
cy="192.7224"
cx="138.47217"
id="circle4428"
style="opacity:1;fill:#5f8dd3;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
</g>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:96.07125092px;line-height:1000%;font-family:Datalegreya;-inkscape-font-specification:'Datalegreya, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="157.97144"
y="987.26666"
id="text4430"
sodipodi:linespacing="1000%"><tspan
sodipodi:role="line"
id="tspan4432"
x="157.97144"
y="987.26666">COMPA</tspan></text>
<ellipse
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#cccccc;stroke-width:0.62772721;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path4455"
cx="127.16518"
cy="601.61035"
rx="68.135162"
ry="68.135155"
inkscape:export-filename="/Users/cquimbayo/Documents/projects/avatar-compa.png"
inkscape:export-xdpi="100"
inkscape:export-ydpi="100" />
<g
style="fill:#5f8dd3;fill-opacity:1"
id="g4445"
transform="translate(-14.476635,444.52911)">
<circle
style="opacity:1;fill:#5f8dd3;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle4447"
cx="158.59396"
cy="154.33661"
r="21.213207" />
<circle
r="11.11168"
cy="118.3772"
cx="144.24878"
id="circle4449"
style="opacity:1;fill:#5f8dd3;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
r="16.162445"
cy="155.34676"
cx="113.13712"
id="circle4451"
style="opacity:1;fill:#5f8dd3;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="opacity:1;fill:#5f8dd3;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle4453"
cx="138.47217"
cy="192.7224"
r="11.111682" />
</g>
<ellipse
ry="68.135155"
rx="68.135162"
cy="809.50977"
cx="-28.759384"
id="ellipse4457"
style="opacity:1;fill:#5f8dd3;fill-opacity:1;stroke:none;stroke-width:0.62772721;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
inkscape:export-filename="/Users/cquimbayo/Documents/projects/avatar-compa-color.png"
inkscape:export-xdpi="100"
inkscape:export-ydpi="100" />
<g
transform="translate(-170.4012,652.42854)"
id="g4459"
style="fill:#ffffff;fill-opacity:1">
<circle
r="21.213207"
cy="154.33661"
cx="158.59396"
id="circle4461"
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle4463"
cx="144.24878"
cy="118.3772"
r="11.11168" />
<circle
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle4465"
cx="113.13712"
cy="155.34676"
r="16.162445" />
<circle
r="11.111682"
cy="192.7224"
cx="138.47217"
id="circle4467"
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
</g>
</g>
</g>
</svg>
User-agent: *
Disallow: /api/