Giter Club home page Giter Club logo

bee's Introduction

Hi there ๐Ÿ‘‹

bee's People

Contributors

quii avatar ruthmoog avatar shinyhappydan avatar tamj0rd2 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

bee's Issues

Static assets being cached

Fix needed: Somehow static assets are being cached so that after we deploy we don't get the new stuff (which is annoying! :D)

Record weather

Meta data for a walk should include weather information

  • sunshine (sunny OR sunny/cloudy OR cloudy)
  • Temperature (ยฐC)
  • Windspeed (Beaufort scale 0-6)
    windspeed scale
    โ†‘ windspeed descriptions summarised from Beaufort scale

weather geography form fields
โ†‘ form fields when submitting Bee Walk data

  • These metadata could be automatically logged when a user starts a walk #7
  • Fields should be editable incase the API data is not accurate
  • When walking manually I would set the data here at the beginning of the walk. I would only change that if the weather changed dramatically, or changed for the the majority of the walk
  • Walks only take place in reasonable weather conditions

Wind Speed selection when editing

At the moment the wind speed field is editable as free text. This is ok, but there should be a drop down available for the user to select one of the Beaufort scale items incase the data from the weather API is not accurate.

  • Wind speed has a Select of options when in edit mode

Snippet of windSpeed text from src/weather.js

export const unableToFetchWindSpeed = "Unable to fetch wind speed";
export const calm0 = "0 <dfn>Smoke rises vertically</dfn>";
export const lightAir1 = "1 <dfn>Slight smoke drift</dfn>";
export const lightBreeze2 = "2 <dfn>Wind felt on face, leaves rustle</dfn>";
export const gentleBreeze3 = "3 <dfn>Leaves and twigs in slight motion</dfn>";
export const moderateBreeze4 = "4 <dfn>Dust raised and small branches move</dfn>";
export const freshBreeze5 = "5 <dfn>Small trees in leaf begin to sway</dfn>";
export const strongBreeze6 = "6 <dfn>Large branches move and trees sway</dfn>";
export const highWind7toHurricaneForce12 = "โš ๏ธ Avoid or abandon in bad weather";

Strike through when walk is stopped

Would be useful if touching the bee name when the walk has finished, strikes-through the text in the table - makes it easier to see which rows of data have been entered into the survey data system.

  • Touching a bee name will strike through the row text when a walk is finished
  • Touching elsewhere in the row will let the user view and edit comments as normal

Choose common Vs Latin names

Have an option to view and log bees by common name (eg red-tailed bumblebee) or scientific Latin name (eg B. Lapidarius).

related to #10

How could we automate the "sections" thing?

When you do a bee walk, you go through a fixed "transect" which has sections. It would be nice if whilst walking around, when you make a sighting, it knows which section you're on

We can easily get the location from the browser, and then we have to somehow know "this geolocation maps to this section"

Technical approach question

Whilst doing raw JS is fun and rock and roll, in practice we're going to have to render stuff in the DOM fairly dynamically and that can get a bit unwieldy.

React is maybe a bit heavy for this, but maybe something like Svelte could be worth a spike to see if it can make things simpler

Clean up the UI

  • Space between lines of sections
  • Line wrap for weather scale
  • Table falling off edge of screen

Screenshot_20230621-193643

Button style on press

would be nice to have some visual feedback on the buttons when pressed, the bee caste buttons in particular

Clean up comments UI

  • position of the save/discard comments buttons should be relative to the text area so they don't appear off the screen
  • Add text to inform clicking a row will allow adding comments

image

Add comments

User should be able to add comments to the observations table.
Perhaps to save real estate, rows with comments should show a speech bubble symbol, which displays a text field on tap?

Import species list

Currently the list of species is hardcoded in the HTML:

<fieldset>
    <legend>Choose a species:</legend>
    <select id="species">
        <option>Bumblebee Bombus</option>
        <option>Honeybee</option>
        <option>Common carder</option>
        <option>White-tailed agg.</option>
        <option>Red-tailed</option>
        <option>Early</option>
        <option>Buff-tailed</option>
        <option>White-tailed</option>
        <option>Garden</option>
        <option>Tree</option>
        <option>Brown-banded carder</option>
        <option>Moss carder</option>
        <option>Red-shanked</option>
        <option>Ruderal</option>
        <option>Shrill carder</option>
        <option>Short-haired</option>
</select>
</fieldset>
  • This list could be brought in dynamically
  • Maybe it can be searchable, ie filters in matches when you start typing
  • It could also be ordered based on locale and scarcity (so that the most likely seen/recorded bees are at the top of the list)

related to #14

EZ refactor

Replace

let thing = // some code
if(!thing) {
   thing = {some: default}
}

with

const thing = // some code ?? {some:default}

npm watch bug?

ruthmoog@Ruths-Mac-mini bee % npm run watch

> watch
> npm-watch

No task specified. Will go through all possible tasks
[build] [nodemon] 2.0.22
[build] 
src/main.js โ†’ static/bundle.js...
[build] created static/bundle.js in 36ms
[build] node:events:489
      throw er; // Unhandled 'error' event
      ^

Error: write EPIPE
    at afterWriteDispatched (node:internal/stream_base_commons:160:15)
    at writeGeneric (node:internal/stream_base_commons:151:3)
    at Socket._writeGeneric (node:net:946:11)
    at Socket._write (node:net:958:8)
    at writeOrBuffer (node:internal/streams/writable:399:12)
    at _write (node:internal/streams/writable:340:10)
    at Writable.write (node:internal/streams/writable:344:10)
    at console.value (node:internal/console/constructor:299:16)
    at console.log (node:internal/console/constructor:376:26)
    at log (/Users/ruthmoog/Computer/bee/node_modules/nodemon/lib/utils/log.js:34:15)
Emitted 'error' event on Socket instance at:
    at emitErrorNT (node:internal/streams/destroy:151:8)
    at emitErrorCloseNT (node:internal/streams/destroy:116:3)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
  errno: -32,
  code: 'EPIPE',
  syscall: 'write'
}

Node.js v20.1.0

Record start and stop time

Meta data for a walk should include the start time and end time:
start and end time form fields when submitting Bee Walk data
โ†‘ form fields when submitting Bee Walk data

  • The start and end time should be recorded in the local storage
  • Walker should click a button to start their walk
  • Could potentially be combined with GPS to end the timer when walker crosses the point where the final section of their walk ends
  • The start and end time should be displayed so the walker knows it's being recorded

Temp should be int

In the submission system, Temp is a drop down of whole numbers in Celcius. At the moment in Bee, a temp can be displayed with a decimal point.

  • Temp should be rounded and displayed as a whole number.

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.