ComiCo project



About

okay doing - will be fine
let's make web great again

ComiCo - opensource client and server for simple forum / ad board. It is designed for easy communication. The main features are fast work with a poor Internet connection (and without), simple and user-friendly interface, compliance with modern standards. It also tries to solve the "fat web" problem by limiting external dependencies and throwing out "unnecessary" functionality.

The plans to change the architecture from client-server to the federated for great justice more freedom of information and counter-censorship.

At the moment, the project is in the prototype stage, which implements only the basic functionality. You can help by sending an error report or your opinion on how this application can be.


Features

Server

  ➜  cat /proc/cpuinfo | grep name
  model username: Intel(R) Core(TM) i3-2350M CPU @ 2.30GHz
  ➜  wrk -t2 -c500 -d60s http://localhost:9001/pub/mtimes
  Running 1m test @ http://localhost:9001/pub/mtimes
    2 threads and 500 connections
    Thread Stats   Avg      Stdev     Max   +/- Stdev
      Latency    20.74ms   16.68ms 236.16ms   72.69%
      Req/Sec    13.19k   627.43    15.62k    73.58%
    1575522 requests in 1.00m, 449.26MB read
  Requests/sec:  26231.85
  Transfer/sec:  7.48MB
  ➜  wrk -t2 -c500 -d60s http://localhost:9001/pub/goods 
  Running 1m test @ http://localhost:9001/pub/goods
    2 threads and 500 connections
    Thread Stats   Avg      Stdev     Max   +/- Stdev
      Latency    61.79ms   65.96ms 643.73ms   86.48%
      Req/Sec     5.26k   705.24     7.88k    70.31%
    628215 requests in 1.00m, 8.44GB read
  Requests/sec:  10454.44
  Transfer/sec:  143.89MB

Client

top

Known bugs

  Not all features are fully implemented :)
  For older browsers, there are no js-polyfills and css prefixes.
  Not a beautiful code style.
  Not perfect design and user interface.
  For large data and / or frequent changes, client may consume a large amount of resources.
top

Roadmap

ComiCo project

More parameters for data request: time range, selection by user, specific id. Log transaction (creating, editing, deleting articles) and push notification of the client about it via server sent event. The client stores data on the indexedDB and loads only the changed items from the server.

Bazaar project

Federated network. Servers can merge, displaying data from "friendly". Each federation has its own client, with its own design. Moderation and user management for each server is different.

Echo project

Decentralized network. Each client is also a server. The data exchange protocol contains information about access rights, data structure, source code for processing and display. Instances can subscribe (keep a copy and wait for change notifications), read, suggest changes for data types of other instances (if this is allowed for this type).

...

Profit!

top

Screenshots

ComiCo ComiCo ComiCo ComiCo
top

Install

  # yum install golang nodejs ImageMagick
  # useradd -d /var/www/comico -U comico
  # passwd comico
  # su -l comico
  $ mkdir ~/go/src
  $ cd ~/go/src
  $ git clone https://github.com/ddidwyll/comico.git
  $ cd comico
  $ cp other/config.json.example ./config.json
  $ vi ./config.json
  $ go get
  $ go build
  $ cd client
  $ npm i
  $ npm run build
  $ exit
  # cp /var/www/comico/go/src/comico/other/comico.service /etc/systemd/system/
  # systemctl daemon-reload
  # systemctl start comico

If port in config.json == "80" || "443" comico use ACME cert
If no config.json presents check http://localhost:8080
For Ubuntu, Debian, Elementary, Mint use apt. Etc
After install login admin|admin and enjoy :)

top

Help

Today I need review and feedback.

top