GithubHelp home page GithubHelp logo

growstuff / growstuff Goto Github PK

View Code? Open in Web Editor NEW
424.0 424.0 212.0 17.3 MB

Open data project for small-scale food growers

Home Page: http://growstuff.org/

License: GNU Affero General Public License v3.0

Ruby 76.38% CoffeeScript 0.54% JavaScript 0.96% HTML 1.17% Shell 0.31% SCSS 1.35% Haml 19.14% Procfile 0.01% Dockerfile 0.14%
food gardening

growstuff's Introduction

๐ŸŒฑ Growstuff

Build status Code Climate

Welcome to the Growstuff project.

You can find our app at https://www.growstuff.org

Growstuff is an open source/open data project for food gardeners. We crowdsource information on what our members are growing and harvesting, aggregate it, and make it available as open data via our API.

Growstuff was founded in 2012 and has been built by dozens of contributors. We are an inclusive, welcoming project, and encourage participation from people of all backgrounds and skill levels.

Want to contribute?

Don't ask to ask, the best way to get started is to fork the project, start a codespace and get hacking. Dive on in and submit your PRs.

Important links

  • Issues (features we're working on, known bugs, etc)
  • Gitter
  • Wiki (general documentation, etc.)

For coders

Growstuff is built in Ruby on Rails and also uses JavaScript for frontend features. We welcome contributions -- see CONTRIBUTING for details.

  • To set up your development environment, see Getting started.
  • You may also be interested in our API.

For designers, writers, researchers, data wranglers, and other contributors

There are heaps of ways to get involved and contribute no matter what your skills and interests.

You might like to check out:

Here on Github, you might find these useful:

Feel free to comment on any of the issues on Github.

Contact

For more information about this project, contact [email protected].

Security Issues: If you find an authorization bypass or data breach, please contact our maintainers directly at [email protected].

You can also contact us on Twitter or Facebook or Github..

growstuff's People

Contributors

bennett-zink avatar br3nda avatar brandonbaker40 avatar cesy avatar clockwerx avatar code-factor avatar dependabot-preview[bot] avatar dependabot-support avatar dependabot[bot] avatar deppbot avatar domthor avatar jcaudle avatar jenkr55 avatar krio avatar le-jun avatar maco avatar marlena avatar martyhines avatar oshiho3 avatar phazel avatar pozorvlak avatar robertlandreaux avatar rocky-jaiswal avatar sabreuse avatar simicic avatar sksavant avatar skud avatar twconquest avatar tygriffin avatar yoongkang 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

growstuff's Issues

crop wrangling: check for crop hierarchy loops

As a crop wrangler, I can currently say that A is a variety of B, which is a variety of A. We should check for this and prevent it from happening. Basically if you try, it should say "Invalid parent: A is already a variety of B." Ideally it should tell you the whole loop it detected, though that's pretty much a bonus -- mostly it should just prevent it from happening.

(Note that this should also emit a warning or error message when loading crops from CSV.)

Share posts on social networks

When I post something, I should be able to automatically share it to Twitter, Facebook, etc. (For example, see how Wordpress does this.)

Show edited date/time on posts/comments

If someone edits a post or a comment, we should expose that fact to readers. It should say "Edited at [timestamp]" somewhere.

(After we implement hierarchical posts, this would no longer apply to comments, of course.)

Stop people from setting bad locations

It would be nice to discourage fanciful locations that can't be geolocated (eg. "somewhere over the rainbow"), imprecise ones that might wind up with incorrect geolocation (eg. "richmond" could be in many places), or abbreviations or misspellings or other weirdnesses that cause geolocation trouble.

One way to do this would be to show a map on the "edit profile" page that updates in realtime after they fill in the "location" field, so they can see the effect of what they typed, and fix it if it gave weird results.

Seed photos

You should be able to attach photos to seeds, as you do for plantings, harvests, etc.

After crop import, caches aren't refreshed

when importing crops via rake growstuff:import_crops, the page fragment caches aren't refreshed. This means that they don't show up on the homepage (under new crops) or on the crop hierarchy page.

This happens because we're working directly with the model rather than through views/controllers. So, the solution is to put Rails.cache.clear at the end of the import_crops rake task.

community activity email

We should send regular emails about what's new in the Growstuff community, eg. recent discussions/posts, new members near you, etc.

Show member pics on map

We should show member avatars on maps instead of blue pins. If possible we should also present them inside a circle or something, with a little shadow, which will look a little nicer than the default square. Or maybe as a circle with fade-out edges like the current marker clusters you see when there are multiple people in/near one place. Experimentation required! Make it look better!

Add subtitles and clean up pagination across the site

Now we have the :subtitle content area, it would be nice if across the site, wherever we have big collections of things, it looked like this:

title: Crop
subtitle: 456 total

(You'll have to pass in a total from the controller, eg. @crops_total = Crop.count ... and of course where there are filters you'll need to make sure you get the right number.)

Then where there's the pagination, remove the info section that has the total number. This will just generally make things cleaner and nicer-looking.

This should be done for:

  • crops
  • members
  • plantings
  • harvests
  • seeds
  • gardens
  • posts
  • notifications

Track types of gardens (permaculture, hydroponic, etc)

We should allow people to select what type each of their gardens is, eg.

organic
conventional
container
vertical
greenhouse
rooftop
no-dig
raised bed
wicking bed
permaculture
hydroponic
aquaponic
orchard
food forest
biodynamic

They should be able to choose more than one. Selection should be via a series of checkboxes (I think) on the garden new/edit form.

Note that we probably want these to be actual data in the database so that you can easily see "all food forest gardens" or similar. See plant_parts for an example of how this might work. Note that only admins should be able to add/edit/remove garden_types.

"Comment deleted" placeholder

In comment threads, if someone deletes a comment, then rather than it just disappearing it should be replaced with a placeholder saying "Comment deleted" so it's clear that something's happened. Otherwise, comment threads can appear weird and gappy and references to earlier comments may not make sense.

(Note: when we move to hierarchical posts, this should still happen, but s/comment/post/g)

Expire paid accounts

a script should be run regularly to expire paid accounts. if paid_until < now, then account_type and paid_until should be reset appropriately.

Role administration

As an admin of the site, I should be able to add and remove admins and crop wranglers (and any other roles we come up with).

Member profile editing forgets what tab you're on

When you are editing your member profile, if you are in a tab other than the first one (eg. "Email" or "Password"), and you save some changes, the page reloads and puts you back on the first tab ("Profile"). It would be nice if it remembered which tab you were on.

Preferred language

I should be able to choose my preferred language in my user profile. Having done so, crop names (#554 should appear in my language of choice (if available).

Improve layout of crop page, especially on mobile

The crop page layout is a mess on mobile, as all the useful information in the sidebar (eg. planting advice, alternate names) gets pushed very far down the page. We should work on making this better.

Preview posts before saving

When I'm writing a post, it would be nice to be able to preview it before saving. The way it happens here on Github is quite nice, actually.

Send notifications about paid account expiry

When your paid account is due to expire, you should get an email letting you know this about 2 weeks in advance, then 1 week in advance, and then a final notification that your paid account has expired.

Connect harvests with plantings

On the harvest form, when I select a crop, a list should appear of my plantings which match that crop. For example, I choose "tomato" and shows me a list of all my tomato plantings, with enough info to choose from them, and a checkbox next to each one. Note that "matching plantings" should include sub-varieties, for instance if I pick "tomato" it should also match on plantings of "roma tomato" and "beefsteak tomato".

I should then be able to select one or more of those plantings -- selecting multiples is important because I might eg. walk around my garden collecting a range of different types of tomatoes rather than just one kind.

When I submit the form, the harvest should be associated with the planting(s). Harvests should appear on the relevant planting page, and vice versa.

Account deletion

There is currently no option to delete a member's account. As a member, I should be able to do this via my settings page.

We need to make sure that all related things are deleted (the member's plantings, gardens, photos, etc) but also make sure that:

  • if the member is a crop wrangler, don't delete crops they've added -- just reassign them to cropbot or something
  • if the member is or was an admin, ditto.
  • we need to figure out what to do with deleted posts -- maybe replace them with "DELETED POST" so you can see that something was there, but not the details of what it was? This is what Dreamwidth does. If you don't do this, then any replies look very odd indeed.

Image licensing

When I upload a picture, I should be able to choose an open license (CC-BY or CC-BY-SA). There should also be a setting to choose a default.

If the photo is all rights reserved, we prompt the user to modify the license but let them continue if they don't want to.

NOTE: this all assumes actual picture uploading, as opposed to linking to Flickr, so is highly hypothetical at present.

Add "days until harvest" as a property of seeds

Since this often appears on seed packets, let's collect the information in our database. It should be validated as a positive numeric value.

On the crop detail page, under how to grow it (eg. near the sun/shade etc), we should show the median(?) of this number based on all seeds for that crop. (Should be a separate story, and we should do it after we've gathered a bit of data.)

This figure should also be added to the crop CSV file (separate story: #677)

Redesign garden page

The garden details page (/gardens/skud-garden) looks pretty bad. It needs a serious reworking.

On homepage, post activity times are out of date

On the homepage, where there's a list of recently active posts, the activity times ("1 day ago" etc) get out of whack. For instance, the most recent post always says "less than a minute ago" even when it's quite old.

This appears to be a caching problem. We should probably expire the recent_posts cache regularly (maybe once an hour?) even if there are no new posts/comments.

Garden map/plan

Let people create (or upload?) a map/plan of their garden, and lay out plants in it.

Use non-gravatar photo for profile pic

As a member, I want to be able to use a photo (not Gravatar) for my profile pic.

Maybe we should default to gravatar, but then allow people to upload a pic, which overrides the gravatar if it's available?

Delete many notifications at once

instead of having to delete every notification individually, it would be nice if there were checkboxes and you could delete all checked items. There should also be a "select all" option.

Remove photo from planting

I should be able to remove a photo from a specific planting without deleting it from the system altogether. (However, if that planting represents the last use of the photo, then the photo should be deleted -- I think this happens already via the photo model.)

Sort seed traders by nearness

If I am logged in to Growstuff, when I look at a crop page and seeds are available for trade, they should be sorted in order of geographical closeness.

If I'm logged out, there should be a message saying "Sign in or sign up to see seed traders near you."

Expected harvest notifications for seed-sown crops

This relies on us having "days to harvest" for seeds. However, if we have that, and someone plants a crop from seed, we should be able to send them a notification telling them when their crop should be ready to harvest, and encouraging them to enter their harvest data into GS. This could be part of the regular planting reminder email.

Specify a flickr tag when adding photos

When adding photos, rather than just seeing everything from my recent photostream, I want to be able to specify a flickr tag and only see my photos that have that tag.

Prevent headings in markdown

People can put h1 headings and the like in their markdown descriptions/posts/comments/etc. This looks really horrible. Let's disallow it.

Allow direct photo upload

I should be able to upload photos directly to the site, rather than having to use Flickr. (But Flickr shouldn't go away. There should just be options.)

I should be able to upload photos anywhere that Flickr is currently used, eg. gardens, harvests, plantings, etc.

When uploading a photo I should be able to choose a license from a dropdown or similar. We should list at least CC-BY, CC-BY-SA, and "all rights reserved". (Those two licenses are compatible with Growstuff's data license, so I'd like to encourage them rather than the ND or NC clauses.)

We should keep an eye on what this will cost us in hosting, and consider whether we want to limit the number of photos that free users can upload (probably in the 100-1000 range).

Put more info in community map popup

On the community map page, when you look at a popup for a member, it only has their name and location. It would be nice if this had more info, like:

  • photo/gravatar
  • stats (number of plantings etc)
  • ???
  • profit!

Subscribe to discussions

I should be able to subscribe to a discussion, i.e. I say that I want to get notifications of comments on a given post, and when a comment is made, I get notified.

This should be a paid feature; in future we might allow free members to follow a small number of discussions, but it could get costly wrt email.

Change scientific names to a HABTM relationship

Crops currently have many scientific names. This should be changed to a HABTM relationship, as many crops can share one scientific name (eg. Brassica oleracea) and it would be nice to be able to see that. After doing this, each scientific name should have a page that shows crops with that name.

if i reply to a notification directly, it's not marked as read

The flow is like this:

  • i get an email notification saying someone sent me a PM
  • I click the "reply" link which takes me to a reply screen
  • I send my reply
  • I wind up back in my Inbox

What happens: the message I replied to is not marked as read (i.e. is still bold, shows up in count in navbar).

What should happen: the message should be marked as read.

404 page

We should have a nice 404 page. It might be nice if it had links to a few useful things, eg. browse crops.

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.