Giter Club home page Giter Club logo

peakaboo's People

Contributors

andiempettjisc avatar mliradelc avatar paulgration avatar ppettit avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

peakaboo's Issues

resume tokens not working correctly

I need to look into this further, but logging in to meteor with resume tokens from the galicaster user seems to not work (either in galicaster ddp plugin or the browser) - the server never responds to the login request.

weirdly other users seem to be ok.

i assume it is something to do with lots of devices logging in with one username, though not entirely sure.

Improve Docker Deployment

In order to make automating deployment easier we need to remove the configuration step of the MongoDB container.

Write README file

Should at least give an overview, and say how to run in development env, point to docker docs (/.docker/README.md)

Global Repository Page

list of all recordings on all boxes, with option to reingest
might need to search/filter/sort somehow?

Add ddp connection status to agent info table

A Galicaster can appear 'online', because images are being received from it (screenshot of galicaster interface, camera view, presentation view) which updates the heartbeat and does confirm that galicaster is on and running but it doesn't mean that the DDP connection is alive. If for example the password in mongodb for the galicaster user doesn't match the one used for nginx (for image posting from galicaster) and the galicaster DDP configuration credentials, then the Galicaster will appear online but interaction with it is limited/misleading (VU doesn't update, starting recording remotely from within peakaboo will appear as if it is starting a recording but won't be). It would be good to add information to the capture agent info table to display it's DDP connection status, and perhaps add some indicator on the room list view.

Default value for caTimeout

Should we set a default value for the caTimeout configuration option if it doesn't exist in settings? Currently if it's not configured then capture agents never show as offline.

Add reporting of loaded plugins

It'd be useful for Peakaboo to display loaded plugins, plugin version information and potentially other useful information from Galicaster - this is prompting me to think about Galicaster plugin architecture in general..perhaps plugins should inherit from a skeleton abstract/base class (there are no "interfaces" as such in Python) with plugin version info, dependencies and new signals to register etc?

Any thoughts on this?

Add a configuration UI

@pmgration said:

"The ability to configure options peakaboo / galicaster options through the peakaboo UI would be good."

it would be good to get rid of (or significantly trim!) the settings file. also having to restart to change settings is bad.

'remove room' button for rooms

@androidwiltron said:

"a room may need to be removed from peakaboo under certain circumstances

a button with an 'I can't let you do that dave' prompt would be good for each room.

admin only

i've got this far (in the console)

`Rooms.remove({_id: 'HAL'})`"

I said:

"good idea.
as it stands, nothing that can't be immediately regenerated is stored in the db anyway, so deleting is not a terrible thing (indeed, if you try deleting the room with the command you mention while the capture agent is still running you'll notice it instantly reappear as the capture agent listens for it's own deletion and immediately re-instates itself!)
we are considering adding the ability to add custom room metadata that would be stored on the server rather than on the capture agent (like our current netreg field). we would probably add that stuff in a new collection though to preserve the above behaviour."

@androidwiltron said:

"Commit be720034 in branch uom will do a pull request with other things soon"

Not possible to log-in to peekaboo using the docker environment

Hi,

I'm trying to test peekaboo and for that checked out the project and switched to develop.

Bringing up the docker environment, and trying to log-in to the web application with the credentials ([email protected]/admin) fails with no message.

Executing a shell in the mongodb container and checking the DB contents I can see that the sample users have been created properly:

peakaboo:PRIMARY> db.users.find({}) { "_id" : "Tj44QMWhxbWxtJwnR", "createdAt" : ISODate("2016-05-26T08:29:56.527Z"), "services" : { "password" : { "bcrypt" : "$2a$10$ifJika9Xhavw6mhj20YVCuNSFfqU4UX9n3HtcfmcTx8B/a6d5VEU." } }, "emails" : [ { "address" : "[email protected]", "verified" : true } ], "profile" : { "name" : "Admin" }, "roles" : [ "admin" ] } { "_id" : "HkyrwqYswXE9kMq8b", "createdAt" : ISODate("2016-05-26T08:29:56.582Z"), "services" : { "password" : { "bcrypt" : "$2a$10$T2jxyDnzO.o90rxJ1I/5WeS2sZADNpFCD/8Puykp/7uLlt4UHQiwm" } }, "emails" : [ { "address" : "[email protected]", "verified" : true } ], "profile" : { "name" : "View" }, "roles" : [ "view-rooms" ] } { "_id" : "QHJGMtMoAHnWxwvvb", "createdAt" : ISODate("2016-05-26T08:29:56.639Z"), "services" : { "password" : { "bcrypt" : "$2a$10$pKgP7QcKibsMmUUjFWhoaODe0Q.xd4kaorqgs6nTEvHwN9eWelQPa" } }, "emails" : [ { "address" : "[email protected]", "verified" : true } ], "profile" : { "name" : "Control" }, "roles" : [ "control-rooms" ] } { "_id" : "FPaepJLxbwNJaoTnY", "createdAt" : ISODate("2016-05-26T08:29:56.696Z"), "services" : { "password" : { "bcrypt" : "$2a$10$awqQx1MSb485oCDZ35ttweDi8YBj0il1aBuf3kPLjiv6kOS/cHAsm" } }, "emails" : [ { "address" : "[email protected]", "verified" : true } ], "profile" : { "name" : "Galicaster" }, "roles" : [ "galicaster" ] }

Should this work or did I miss something?

Thanks,
Bruno

Fix version information in footer for docker deployment

The app has a permanent footer with git version information, however when deployed in docker this information isn't available - probably because the .git directory isn't available to peakaboo in the docker environment so there's nothing for meteor-git-rev (git-rev) to find out about. It would be good to get this working for production environments where docker is used.

De-Galicaster-ify

Some stuff is specific to galicaster (such as in the device protocol) but should be made more generic so that it makes sense for other types of capture agent.

User management

create/manage users from the web interface.

/users already exists to manage roles, but you can not create users there.

enhance mobile experience

@pmgration said:

"I noticed that when viewing the room list page and resizing the window small enough to trigger it to react to show a single room per row, the top of the panel for the room goes behind the navbar. I think this has come about because the navbar now increases in height at this window size because the new room filters push onto another line.."

SSH support

We may be able to emulate the ssh terminal on the room page to allow support to run commands but ensure that everything is logged and by whom.

see also #8 as guacamole can probably do this

'Online' navbar filter

@androidwiltron said:

"navbar filter is currently none(all), low audio, offline, recording, paused

add 'Online' filter button, hiding the 'offline' rooms

(maybe approach with a conditional: if (room parameters) offline = False ??)

my early try is below, kind of works with no count:

client/navbar/navbar.html

line 54

<label class="btn peakaboo-filter btn-success {{#unless getPublishedCount 'online'}}peakaboo-filter-zero{{/unless}}" title="Show Online">
  <input type="checkbox" name="online"><i class="glyphicon glyphicon-ok"></i> {{getPublishedCount 'online'}}
</label>

"

audiostream does not play in chrome

I suspect this is a chrome thing however, the audiostream from the CA will not load fully in chrome.
it will partially buffer then stop.
tried enabling auto-play in chrome with no change

firefox and safari seem OK

update documentation

The documentation for peakaboo needs a little work. could cause confusion on how to get started and set up for a new user
Readme.md at the root of the project:
an introduction to the project
how to run in dev
settings.json
how to run in docker for production

Audit trails

Who did what?

record who did stuff and when....

such as audio level changes, restarts etc..

display on a timeline on each room page?

Basic Authentication

Hi Paul
I'm testing peekaboo for my opencast platform
I see that you create a test user on mongo
Can I use basic authentication with admin/admin?
Should I configure mandatory cas or ldap?

Not working in recent versions of Chrome (51 and higher?)

I just upgraded to Chrome 51 and there seems to be some issues with peakaboo with this version (and possibly future versions). I'm not presented with the login page but instead get a message about not being cool enough (obviously not true!). I believe @ppettit has previously experienced this too.

Error message in browser console shows "Exception in callback of async function: Error: Handler with name 'u' already exists."

Looking into this it seems this is somehow related to iron router and an update may fix it. I've been working on it, when time permits - so far I have managed to get it working but have upgraded all packages and meteor. However I then needed to make a few minor changes for a other things that weren't working too (e.g. admin access to 'users' route).

Testing

We should write tests and set up automated testing.

This might be easier after a move to Meteor 1.3

first run, cannot log in

This is about how when you first launch peakaboo with meteor, you cannot log in as the login method is not defined or it defaults to loginWithLdap (im not sure) i can see loginMethods returns an empty list

it would be great to have loginWithPassword to be default for first time users to get them up and running

many simultaneous new token requests kill peakaboo

@androidwiltron said:

"if a user in peakaboo example 'galicaster' has many valid tokens then more are requested simultaneously the database becomes unresponsive and tokens cannot be requested, rooms remain 'offline' and users cannot visit the page getting timeout errors instead.
a suggestion was to use a UID per room to authenticate against peakaboo thus having a small array of tokens for each user making this step more responsive"

basic opencast matterhorn integration

@androidwiltron said:

"get scheduled for each capture agent from mhorn ICal endpoint, parse and display the list of upcoming events for a defined time threshold.
useful to visually determine if CA is recording when it should be"

I replied:

"sounds good, we are not using scheduling though so would probably not have the time to work on it ourselves (but would accept merge requests ๐Ÿ˜‰).

there is already a tab for controls on the room page as we have a partially implemented repository tab so maybe adding a schedule tab would be cool?"

loginWithLdap fails with Async.runSync

The local package ppettit:accounts-ldap requires an async package to call Async.runSync, it looks as though peerlibrary:async was added specifically to the package list specifically for this local package but for some reason I'm seeing this error:

I20181123-11:18:49.586(0)? Exception while invoking method 'login' ReferenceError: Async is not defined
I20181123-11:18:49.586(0)?     at DDPCommon.MethodInvocation.<anonymous> (packages/ppettit_accounts-ldap.js:45:16)

Installing the meteorhacks:async package seemed to work (meteor add meteorhacks:async).

Also I had to change the authentication line to ad.authenticate(${loginRequest.username}@${domain}, loginRequest.ldap_password, done); where domain is specific to our institution and hard-coded in our deployment.

It'd be easy to have users enter an email address as their username (loginRequest.username) but this will be registered as their username at first login and I think the intention is that usernames and email addresses are distinct in Meteor, at least there are separate fields for them in Meteor user accounts...

I rewrote the accounts-ldap package for a different Meteor project we had a while ago, the rewrite didn't depend on external Async packages and was ES2015 - it needs some changes to make it not specific to our institution but it might be a usable as a replacement to the existing local accounts-ldap package at some stage.

cannot run peakaboo

ive found with a completely fresh clone of peakaboo and meteor that running meteor will result in an syntax error right now. and then missing node modules

for the syntax error it seems like the package.json file it does not like the syntax in there.

SyntaxError: Unexpected token } in JSON at position 696

as for the missing node modules, this can be fixed with meteor npm install --save
to make this not an ongoing thing, should we be commiting the node_modules folder? i'm not sure

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.