Git Product home page Git Product logo

sircles's Introduction

Sircles - Enable the Evolutionary representation of your organization structure, roles and people.

Features

  • API

    • GraphQL API to build you own ui and tools
    • Time travelling queries: get the state at a precise point in time. See how your organization was at a specific date.
  • Web UI

    • Time travel your organization
    • Organization chart
    • Manage circles and roles
    • Create tensions
    • Manage members
    • Basic search

Architecture

The sircles core (backend) is written in Go and exposes a GraphQL API.

On top of it we provide a React based UI (but any kind of client can be built using the API).

Documentation

Documentation Index

Quick start and examples

Quick start using docker

To quickly see how sircles works just use the provided docker image.

docker run -p 80:8080 -it sorintlab/sirclesdemo

you can then login as user admin with password: password

This is just for quickly trying Sircles. For real production deployments see the related doc

Project Status

Sircles is under active development.

Requirements

  • PostgreSQL >= 9.5

FAQ

See here for a list of faq. If you have additional questions please ask.

Contributing to Sircles

sircles is an open source project under the Apache 2.0 license, and contributions are gladly welcomed! To submit your changes please open a pull request.

Contacts

  • For bugs and feature requests file an issue
  • For general discussion about using and developing sircles, join the sircles mailing list
  • For real-time discussion, join us on Gitter

sircles's People

Contributors

andreaubbiali avatar sgotti avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sircles's Issues

Suggestion: Demo in Readme

It'd be handy to have a demo/preview of the UI in the in the Read Me for those of us who find sircles on mobile.

disable an user

@sgotti We want to disable the user when he doesn't work anymore in the company.
We have thought different ways:

-Creating a new column in the database with a check if he still works or not. Then in the query, when we request the member, we have to control if this column is checked or not.

-If there is already in the database a column with something that allows to know if he is working or not we can use it. For example if there is the contract expiration date we can compare it with the current date and disable users with the date lower than it.

Path to real CQRS

This issue is to track changes needed to make sircles a real CQRS application.

The unique thing that we'll do differently is to handle all events and related generated commands and events in an unique transaction. For example: when a circle is deleted, an event handler will handle this event and create commands to every tension associated to that sircle to unset it. We'll handle all this in an unique transaction. The reason is dictated by the features required on the read side: since we provide a timeline based navigation, we want to provide a consistent view for every timeline. For doing this we have to group under an unique timeline all the related changes. So this is done only for the above reason, the command part will able to work and converge to a consistent state also without doing it in an unique transaction.

  • Remove the timeline "aggregate", it doesn't make any sense and the timeline concept can be managed only on the read side using the events correlationid.
  • Remove the commands aggregate, it doesn't make any sense. Just log the commands.
  • The aggregate implementation, if needed (for aggregates with many events like the rolestree), will use its own snapshot implementation instead of using the readdb.
  • The readdb will apply the events in a separate transaction.
  • The eventstore now is a fully serializable event store: it accepts one change at a time and fails the transactions having serializabale errors (this is a property enforce by the db using a serializable isolatioon level). This isn't a big problem given the write ratio but we can make it able to accept concurrent changes to different aggregates.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.