Peregrine - a collaborative and easy to use web app for scouting

Peregrine is a web application for scouting FRC events developed by Pigmice (2733).

There are a billion scouting apps, so what’s cool about peregrine?

  • Automatically pulls score breakdown data from TBA, leaves the rest to your scouts. This means you don’t have to worry about scouting stuff like climb data (or other per-robot data included in the score breakdown). This is done with zero configuration on your part (and very little on ours)
  • Instantly updated charts, and pretty graphs
  • Collaborative - setup your realm to share data with other teams (or not)
  • Easy to use - an intuitive UI and runs on any device with a modern web browser (phones, tablets, laptops)
  • Works offline (Progressive Web App) in supported browsers - scout without an internet connection and upload reports when you have internet again, all through your browser
  • No setup or self-hosting required. If you want to use it we’ll create a realm for your team, your team members can register accounts, and you can start using it straight-away without any hosting or setup on your part

Feel free to play around with one of the events we’ve scouted here: https://peregrine.ga/events/2019tur

We’ve used Peregrine for two seasons, and Steel Ridge Robotics (6343) has used it at a couple competitions, but we’re not totally ready for open registration at the moment. If you’re interested in testing/using Peregrine during this season, please fill out this google form: https://forms.gle/LaFvfzgSKJhazK528

Peregrine is also 100% open-source, so if you’re interested in running it yourself, go ahead and take a look at our Github (please fill out the google form anyways if you do end up running it!):






8 Likes

Is there a way to customize the app questions?

At the moment: no, however the ability for teams to at least add (and possibly remove) fields from the report schema is likely in the future. The nice thing about using a universal schema is that it makes it very easy to share reports between many teams (which IMO is a huge selling point, especially for teams with few scouts), but the issue is of course that every team is going to want to tweak the schema a bit.

Also, that being said, if a team can make a convincing argument to add a field to the schema and most teams agree it makes sense and how it should be scored, we would totally add it. Even if we didn’t, you could always host your own version of the app with whatever schema you want.

This is pretty cool, but how are teams scoring fractional game pieces? I can’t say I’ve ever witnessed a match where a team placed precisely 5/9 of a hatch panel in auto.

2 Likes

Thanks! That match preview page currently shows the average stats of the teams that are in the match for the entire event. The idea for this is that you can look at an upcoming match and get an idea of how the teams in it will perform. In the future we want to add something that shows their performance in that match though. It’s a little confusing initially though.

Alright, I wondered if that was it. It would be nice to see actual match results on the match page if it is finished.

I’ll consider forking this and modifying it to integrate into our backend and add some custom frontend functionality, but then I’d have to learn some Typescript and Go! Although if the backend API has enough functionality I could potentially leave it mostly as-is. Although again I suppose I’d have to make modifications for new fields, etc. Decisions, decisions.

Feel free to take a look at the OpenAPI docs.

This is planned! Hoping to work on that this weekend :crossed_fingers:

2 Likes

This is very cool! I’ll have the scouting team take a look, and happy birthday!

3 Likes

How’d you handle the PWA on iOS?

My team is also using a PWA-based scouting app, very much similar to yours (albeit we’re using a offline-friendly version for the scouting itself due to the lack of data or WiFi at the comps we go to). Android handles the PWA quite well, but iOS has some issues, the most significant of them being not being able to use the app’s install button. We’d have to use the Add to Home Screen thing on the share menu. I haven’t been able to make the download pop up come up either.

I’m just curious as to if you faced any issues with the iOS versions and if so, how you circumvented them

Thanks, Link

Peregrine also supports saving reports offline until you reconnect, then it syncs them.

On iOS users manually have to add to home screen, because iOS does not support the PWA install banner.

1 Like

I’ll also note that it seems that you don’t seem to have an apple-touch-icon. Apple doesn’t respect the standard PWA icons and requires its own.

(edit: just realized you’re not OP, sorry)

I would be happy to accept a PR :smile:

There is an icon-generator process in place that resizes the icons to various sizes and saves them: https://github.com/Pigmice2733/peregrine-frontend/blob/dev/rollup.config.js#L167. It could be modified to output whatever size(s) apple wants and the HTML file could reference that: https://github.com/Pigmice2733/peregrine-frontend/blob/dev/rollup-index.html#L7

Does the app have the potential to view all entered data and export them through an API? The main purpose behind this being to allow users to perform some of their own analysis, and produce ranking metrics, and sort through the data in their own away

The idea is that most data visualization that needs to be done should eventually be able to be done in the app, but yes, you can hit the JSON API, and we plan on adding CSV exporting for reports at some point.

Hi! I filled out the form a few days ago and still haven’t gotten an email back. I was just wondering when that is going to be.

I’ll make sure another group of Slack invites get sent out today (it looks like you filled out the form like riiiight after we sent out the first ones). Keep an eye out. Thanks for the interest :slightly_smiling_face:

Thanks!

Are there any plans on the app questions for 2020?

We’re planning on doing some sort of poll/discussion on our Slack about what the schema for 2020 should look like.