brewcenter / openbrews Goto Github PK
View Code? Open in Web Editor NEWA cross-platform open source app to help you brew beer.
Home Page: https://brewcenter.github.io/OpenBrews/
License: GNU General Public License v3.0
A cross-platform open source app to help you brew beer.
Home Page: https://brewcenter.github.io/OpenBrews/
License: GNU General Public License v3.0
If you download the Ionic View app on your phone, and upload OpenBrews using ionic upload
, then the Save Recipe button doesn't do anything. It does work in a regular browser, however.
Currently, if you click "Add Fermentable" on the "Add Recipe" page, you have to manually scroll down to the newly added section. It would be more intuitive to scroll the new section into the view when it is added.
This issue is on branch add-smart-text
, in "edit-recipe.html", "fermentable.html", and "edit-recipe.scss"
I made the fermentable name a smart text field with a dropdown that searches for likely inputs. However, the beer style dropdown (above fermentables) is now going behind the fermentables field. It really looks like crap and can't stay. I'm not the best at HTML/CSS but have tried a few things and I'm not quite sure where to go next.
Any help would be appreciated, whether it be just suggestions or a PR.
Turn the Beer Style field on the Add Recipe page into a smart-type field, which searches beer styles on the brewerydb to select the desired style. We should limit users to only selecting from one of these recognized styles, as there are a butt-ton of them.
We need to make a function to delete the selected recipe from the list. There is a button stubbed out that can be viewed when you slide the list item to the left. We just need to write a function to delete the item from the database.
Still using a blank white scheme, if someone wants to add some color to the scss, that'd be great.
At the end of the form there should be a text field for a note and a button to add another note.
Installing OpenBrews apk 0.0.2 noto Android 5.1.1 requires editing the "Unknown Sources" setting to "Allow installation of apps from unknown sources".
The other sections are hidden on the ViewRecipe page if they are empty, the notes section should do the same.
Add a page to view a single recipe and all of its components.
Need to write calculator services to calculate values for recipes like estimated OG/FG, IBU, ABV, etc (these can be based on this project.
These should be simple services, and ideally will accept whole recipe objects. See wiki for recipe format.
We should calculate the estimated original and final gravity based on the ingredients in the recipe. This project is open source and contains similar logic. We should make the OG/FG editable on Add/Edit Recipe, and display it in View Recipe. However, we should overwrite existing values with our calculation if the fermentable ingredients change.
We will also need to add these fields to our current Recipe data structure I believe.
Read this to find out more about OG/FG.
Depends on #18 . Update the yeast name field to a smart-type field pulling yeast products from brewerydb. Autofill all possible fields based on the selection. Do not force users to select from this list, custom values are accepted.
We should calculate the SRM of the brew based on it's ingredients. This project has logic to do this and is open source. We should store this value on our recipe object, and make it editable in the Edit Recipe form. However, we should overwrite it with our calculation whenever ingredients are modified.
Read this to find out more about SRM.
On the recipe list, there is a button to edit a recipe if you slide the list item to the left. We need to make a page to edit this recipe, using the same form as "Add Recipe", and then hook the existing edit button up.
The ng-if
directive will come in handy, use something like:
<label ... ng-if="other.stage.toLowerCase() === 'boil'">... Minutes Left</label>
This will ensure that the label element will show up only if the stage is set to boil
.
If this is already running somewhere, you should post a link to where.
If it's not, you should set up an auto-deploy watching for pushes to the master branch with heroku.
Follow the instructions in the readme to build the app for Ionic View. On an iOS device, load the OpenBrews app in Ionic View. Notice the margins are off, making the app unusable. We need to fix this without affecting the app build in Ionic Lab and Android
Right now, there's absolutely no validation. We can use HTML5 validation for specifying sane defaults for every field.
This might be slightly irritating when developing the application, but it will certainly be required in the stable release.
The breweryDB service we use lacks quality ingredients data. We need to mine some more data, convert it to their format, and send it to them to improve their service. Ingredients we should gather data for are fermentables (grains, extracts, etc), hops, and yeast.
To do this we need to...
The smart text lists (dropdowns) can not scroll down. The only way to navigate through them currently is to keep typing. This needs to be fixed so that you can scroll through the list (of beer styles for example). You should be able to swipe through the list, moving the contents within the list up and down. I suspect this can be fixed by making the list container shorter, giving it overfow: hidden
, and making it scrollable.
This should be possible without modifying the angular-input-dropdown library, but if we really need to, we are already using a custom fork of it (because the original wasn't good enough).
.io-config.json
file which is generated by ionic on running ionic upload
I've been working on an API replacement for BreweryDB. This was prompted by BreweryDB not responding to suggested improvements in their ingredients database. I'm close to finishing Authentication for the API. After which I'll provide documentation and host the API on AWS.
We need to add a hops section to the "Add Recipe" form. See the Wiki for the Recipe data format. We will need to add a part of the form to add hops to satisfy this data model. This should be based off the current fermentables section.
When you add or remove an ingredient on the recipe page, the scrollbar doesn't refresh it's size.
Steps to reproduce:
When creating or saving a Recipe the app does not appear to perform any validation on the fields. Of particular note - you can create a recipe with an empty string as it's name. Saving this then results in a blank button, which probably isn't an intended bit of functionality.
Depends on #3. Change the text field for the fermentable name to a smart-type field which searches brewerydb. We should not limit users to these selections. If a selection is made from brewerydb we should autopopulate the PPG and SRM.
On iOS, if you slide a recipe in the list to the left and click delete...
Or on Android if you click the delete button...
We should make an $ionicPopup to confirm the user wants to delete it. Text should read "Are you sure you want to delete {{recipe.name}}?" It should have a red delete button, and a regular/default colored cancel button.
Depends on #17 . Upgrade the hop name in Add Recipe to be a smart type field which queries brewerydb. If a selection from the db is made autofill all possible fields. Allow custom values as well.
Depends on #3. After recipes are being saved in the database, we need to pull them into the recipe list and replace the mock data.
Digital Ocean has an event going on this month called 'Hacktoberfest' where if you contribute to a number of projects you get a shirt or something.
Might be a good idea to put on some issue labels for that and 'help wanted'.
We should calculate the IBU of the brew based on it's ingredients. This project has logic to do this and is open source. We should store this value on our recipe object, and make it editable in the Edit Recipe form. However, we should overwrite it with our calculation whenever the ingredients it uses in its calculation are modified.
Read this to find out more about IBU.
This should reuse the "Add Recipe" form. When you slide a recipe in the recipe list one direction, an edit button should appear. (See #26 for discussion on sliding direction)
We should make it so the main module (openbrews.js) reads in values from a config file (openbrews.config.json). We should not add the config file to the repository, but we should add an example config to the repository (something named like openbrews.config.ex.json).
This is needed at minimum to store the brewerydb API key for the app. I will keep a concrete config in a gist and share it upon request with developers.
There needs to be a section to add one or more yeasts to the recipe. Base the UI off the fermentables form, and be sure to satisfy the recipe.yeast data format in the wiki.
Make a recipe list page using fake recipe data stubbed out in the MyRecipeList controller.
We need to store each recipe added to the local database on the device instead of just using mock data.
Make it so that if you slide the recipe to the right on Recipe List, a delete button appears on the left side of the row. When clicked, this should remove the recipe from local storage.
(Maybe the delete button should appear when you slide the recipe to the left? I'm not sure what the best ux practices are)
be sure to use both ng-click
and ng-tap
on the button.
This needs to be done across all controllers
We should calculate the estimated ABV (Alcohol by volume) and ABW (Alcohol by weight) based on the OG/FG. This project has logic to do this and is open source. We should store these values on our recipe object, and make it editable in the Edit Recipe form. However, we should overwrite them with our calculations whenever the OG/FG change.
Read this to find out more about ABV/ABW/OG/FG.
Depends on #58
Create an add recipe button which creates a new recipe. A recipe should have:
The "others" section will be somewhere to add random ingredients used. See the Wiki for the recipe.others data format. Base the UI off the fermentables UI.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.