Giter Site home page Giter Site logo

cow's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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

cow's Issues

Rename some names

Herd -> Project
Store -> Project (only in the messaging)
feature -> Item

Add support for roles

This is a big one.
Start by designing a role/permission system.

Ultimately roles can be defined by any peer and propagated to other peers.
For a start roles can be baked into the code. An owner starts by selecting a role and is consequently presented with an interface with some functionality enabled based on the permissions for that role.

Use local stored maptiles

Opanlayers is able to do this with indexeddb. This could dramatically increase map update speed and enhances offline use.

Clean up cow.peer.js

There seems to be a lot more code going on than needed for adminstering the extent of the peer.

Sharing text messages

Text messages should be shared. This means a core update.

Make links between messages and map-features. That could be done in the clients via tagging.

Create GUI for sharing text (kind of chat interface)

TODO for progideon

  • [OK] Add 'Add feature' functionality
  • [OK] Startpage for login and group choosing
  • [OK] Add extended label on hovering over features
  • [OK] Add logout button
  • [OK] Messages only visible when permitted (view or edit)
  • [OK] Add group info (colors) to messages
  • [WF] Add relevant icon / linecolor to messages
  • [OK] Add measurement tool
  • [OK] Make 'gedeeld beeld' functionality work:
    Fixed set of groups (o/p/e)

Improve D3 layer

Make a more robustly configurable maplayer.
Certainly fix the weird envelope folding behaviour of the extent.

Admin panel/functionality needed

Functionality:

  • Set all feats to (un)deleted
  • Clear whole database
  • Restart nodejs
  • Set maximum age of features
  • See peer activity (movements, features etc)
  • Force peers to extent
  • Lock on peers extent

Add location to core object

me().location() is not available when disconnected. Therefore it should be (like username) be added to the core.

Add alpha peer check

Peers should only broadcast 'answers' when they know they are the alpha peer.
With COW2 it is no longer needed for alpha to be inside the same project so we might be able to implement the old findalpha routine again in the websocket.js

Treat the map as a widget

The map is in fact nothing more than a replaceable screenwidget that displays the data that goes around in COW. Therefore all references to the map (e.g. OpenLayers lib) could be better put into the widget.
To keep in mind: some COW functionality depends on the map, for instance your viewextent that is being sent to other peers.

Write a stresstest

Stresstest automates processes like adding/remove features, updating location, extent name etc...
Also usefull as a DEMO

Make use of Identifications

Add an identification parameter to cow
Currently we have
CID which is the websocket ID, changes very often
UID which is the client ID, changes upon page reloa
add:
PID will be any string that identifies the person behind the client. Only changes on user request.

At the moment is is good enough to use the owner().name parameter as PID. It is not a big problem when people have the same PID but should be avoided in the future.

Objects that will make use of PID:
project.groups().members[pid list]
item.creator() -> pid
item.owner() -> pid
core.pid() -> pid

Add chat functionality

Involves new messagetype in cow and interface implementation.
How should messages be stored?
Should there be a link between messages and features?
Is a message very different from a feature anyway?

Needs to be implemented for IPO demo

Redraw d3 layers on mapCenter

When map is programmatically ceneterd (like after clicking on center to peers location) the d3 layers are not updated.

Extra functionality geolocator

Add options:
poll continuously/in intervals/no polling

Button to zoom to own location (also when no websocket available)

Create populator add-in

Best would be when directly accessible from any polygon on the map.

Result should give an indication on the map of how many people are inside that polygon

Add prioritization option for items

  • Items can have different priorities. (likely 1 to N)
  • Priorities can be entered from interface.
  • A priority filter can be applied to map/itemlist

Add icon set

  • Eenrichtingsverkeer aangeven dmv pijlen (liefst die je in de richting van de weg kunt draaien; als draaien niet kan, dan standaard borden met pijlen in elke windrichting; liefst witte pijlen gegoten in een blauwe achtergrond, zodat het lijkt op de 1 richtingsverkeerborden)
  • Afsluiten weg: verboden toegang verkeersbord
  • Populator resultaat: Aantal figuurtjes bij elkaar
  • Vee resultaat: plaatje van varken, schaap (ik weet ff niet meer welke dieren allemaal in het systeem zitten....)
  • Opvanglocaties: symbool van rode kruis of zoiets in gebouw? wellicht meerdere van dit soort symbolen: aparte kleuren voor wel/ niet geschikt voor gehandicapten en aparte grootte voor de grootte van de opvanglocatie; het symbool moet niet te verwarren zijn met ziekenhuis symbool
  • Dijkdoorbraak: symbool van kapotte dijk? of van waterdruppel?
  • Politie
  • GGD symbool
  • Ziekenhuis symbool
  • Brandweer
  • Gemeentehuis
  • Telecom mast als symbool voor ad hoc communicatiepaal
  • paar neutrale symbolen (gewoon vierkantje of rondje met verschillende of zo; voor het geval mensen zelf iets anders verzinnen)

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.