Coder Social home page Coder Social logo

freecodecamp / pantry-for-good Goto Github PK

View Code? Open in Web Editor NEW
386.0 52.0 187.0 2.64 MB

An open source food bank logistics and inventory management tool

License: Other

JavaScript 98.02% HTML 0.30% CSS 0.70% HCL 0.95% Dockerfile 0.03%
opensourceforgood food-banks food nonprofit nonprofits nonprofit-organizations charity inventory-management

pantry-for-good's Introduction

Build Status Docker Repository on Quay Join the chat at https://gitter.im/FreeCodeCamp/pantry-for-good

This repository is for the Pantry-for-Good application designed by Open Source for Good Contributors at freeCodeCamp. For deployment instructions see the deployment guide.

If you'd like to contribute, the contributing guide explains the git workflow and the developers guide gives an overview of how the app works. The open issues are a good place to start, or you can try the app and add your own issues. If you get stuck or need help with something, feel free to leave a comment.

Some issues are quite large, don't feel like you have to finish them, it's ok. Little bits help too! Start slow!

There's a demo app hosted at https://pantry-for-good.herokuapp.com, though it might be a bit behind the current version.

Installation


Local installation summary:

  1. Install Node.js and MongoDB
  2. Start MongoDB
  3. git clone https://github.com/freeCodeCamp/Pantry-for-Good.git
  4. cd Pantry-for-Good
  5. Make sure you're on the 'staging' branch (git branch), otherwise run git checkout staging
  6. npm install
  7. npm run dev
  8. Open http://localhost:8080 in your web browser
  9. Login with username [email protected] password password

Detailed local development installation steps

You'll need to have a Node.js version >= 6 installed. Either use your OS's package manager or follow the installation instructions on the official website.

This app uses MongoDB as its database engine. Follow these instructions to install it locally and start the MongoDB server on your machine.

Install git if it is not already installed. To clone this repository to your local machine, open a command line interface and navigate to the directory where you would like to install the app. Then run git clone https://github.com/freeCodeCamp/Pantry-for-Good.git

Move to the Pantry-for-Good directory and run the npm install command to install the application dependencies.

Type npm run dev to start the application in development mode. If all goes well, it will be available at http://localhost:8080. The application is pre-populated with an administrator account with [email protected] as username and password as password.


Installing API keys

To use all the features of this application you will need to obtain API keys and install them in the application. After following the instructions below to obtain API Keys, put your keys in the file server/config/env/secrets.js.

Google Maps API key for the deliveries feature. Currently, this key needs to be entered in the general settings page of your local instance of the application.

Google+ API for allowing users to register/login with google.

Sendgrid email API for sending emails.

  • Register for a trial account or deploy the app and get the username/password from the heroku config vars
  • Go to Settings > API Keys and create a key
  • Paste the key in secrets.js or the SENDGRID_API_KEY config var of your deployed app.

pantry-for-good's People

Contributors

benwh1te avatar bpeppard avatar davycheung avatar gomezvillegasdaniel avatar hy299792458 avatar ik226 avatar joshuahenson avatar jspaine avatar kenjio avatar kevinnorris avatar knochenmark avatar kristoferma avatar logangingerich avatar maf27 avatar mbetances805 avatar prabhu-08 avatar prohorova avatar ramuthumu avatar redbow-kimee avatar ronaldblanco avatar russellwheatley avatar shelleysuhling avatar sherlyc avatar sherwinmina avatar thirdoptics avatar thmsdnnr avatar vanessasena avatar wacii avatar yaseenshaik avatar yzhbankov 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  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

pantry-for-good's Issues

Food dependency not working

schedule.client.controller.js and packing.client.controller.js are causing an injector Unknown Provider error. I think it is because it cannot resolve the Food dependency.

Customizable table columns

It could be nice to have a dropdown to choose which columns you want to see for each table, and have the preferences saved to the user.

remove hashbangs from URL

By default, Angular adds #!/ to the app's URL string. This looks unprofessional. Removing the hashbang would require adding appropriate routes on the server.

Continue the work

Hello Pete.
Why are you close all issues.
Are you close the project or the work will continue.
I was taking a break in working with food-bank-app to learn more about angularjs and when i have some progress i find that all the issues are closed.

fix broken tests

When you run grunt test, you get pages full of errors. The tests were written for a previous version of the app and no longer work. It should be possible to fix them, however.

Password reset page does not give feedback

The password reset page needs to give the user feedback for success and errors in the same fashion as on the signup page. It should

  • Indicate if the new passwords do not match
  • disable the submit button if any fields are empty or if the new passwords do not match.
  • If the server returns an error it should display the error
  • If the server returns success it should display a success message and clear all the form fields

Inventory menu item not working

When I am logged on as an admin and click on the Inventory menu item I get an error in the web browser console "Could not resolve 'root.foods' from state 'root'". It looks like the Inventory menu item is created in food.client.config.js and it indicates a route to root.foods but that route is not defined.

Need to get accountType before/after registering with oauth

Currently hard coded to create 'customer' users. Maybe easiest by having the first oauth buttons link to a simplified registration form with just the account type radio buttons and the real oauth buttons then send the account type with the google strategies passReqToCallback option.

UI does not update properly after deleting a food

On the inventory page if you delete a food item, it still shows that food item but all the other items in that category do not show anymore. You must refresh or go to another page and back again for the correct food list.

signing out can take multiple tries to work.

I'm not sure how to reproduce this, but sometimes choosing "sign out" from the dropdown in the upper right hand corner just causes the screen to refresh with the same user still signed in.

Driver isn't authorized to mark deliveries

Currently when you login with a driver and click "Mark delivered" under "Route Assignment" you get a 403 error. This is happening because the client is requesting that the server update the customer objects involved, but only admins are authorized to do so.

Overlapping definition of 'roles' and 'accountType' for users

It seems that roles and accountType evolved side by side as the app grew, with overlaps and unclear division of labor between them. Roles can be 'user', 'customer', 'volunteer', 'driver', 'donor', or 'admin’. accountType can be 'volunteer', 'donor', 'customer', or ’admin’.

The two should be separated, using roles for authentication (valid roles being ‘user’ or ‘admin’) and accountType for differentiating between clients, donors and volunteers.

Implement TLS

Some browsers require a secure connection to use the geolocation feature, which is needed by the google maps plugin. In addition, some users might prefer to access the app using https.

Using TLS would require the user to obtain a certificate from a certificate authority. The app should default to http, with https being activated by an environment variable setting.

remove dependence on ngInject

There are a number of cases in the Angular code where dependencies are injected implicitly through function parameter names. Inline array notation would remove the need for dependency annotation, and remove an unnecessary step in the build process. See here for more information.

Page should re-direct after deleting a customer

When logged on as an admin if you view a customer and click the Delete button it deletes the customer but it still stays on the same page. It should go back to the customer list or show some indication that the customer has been deleted.

Title is blank in the HTML

In the file app/views/layout.server.view.html line #5 the {{title}} variable is not set when the template is rendered.

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.