Code Monkey home page Code Monkey logo

fishfryform's People

Contributors

gassc avatar mhowe0422 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

fossabot

fishfryform's Issues

API docs and messaging

Finish up the Open API Spec document and implement some more consistent, human-friendly API feedback messaging as part of that.

handle partial API POST and PUT requests

Need add'l logic and tests to make sure that the API methods can handle partial submissions, and elegantly fill in the blanks for non-mandatory fields. I think right now it might be rejecting anything less than a full fish fry feature.

ECO Friendly

Create a new filter option for ECO friendly. Of course who determines the ECO friendliness would be up to the location

Date/time editing

Enable dates/times to be edited in the form, rather than deleted/re-entered

malformed cURL commands from the Swagger UI

@mhowe0422 has noted some issues with the way the Swagger UI is generating the curl commands from the test page: it appears to mishandling newlines, for example.

I might try switching to Swagger UI v2 (down from current v3) and see if that helps. Generally, however, #17 , #18 , and #19 should get us closer to a fully functioning API than chasing down this specific issue.

Date Time Processing

We know the date for Ash Wednesday and Friday's in Lent. We just need to list the dates, check if the locations is open on that date and add the time range. An additional box for locations that have two open times per date.

Adaptation for a Fish Fry Season with COVID-19

To support CodeForPittsburgh/fishfrymap#33 in FishFryMap

Data schema and form validation updates:

  • Add a COVID-flag" text field, which would be for capturing any COVID related guidance that the venue is putting out (in addition to the general guidance.
  • Add a boolean field to indicate if there is a drive-thru option.
  • Add the Eco text field (#11), which would take the same approach as the COVID field.

Refactor Flask app using blueprints

To get this off the ground, I jammed everything on the server side into one file, app.py. It really needs to be split into logical components (e.g., map, form, API) using Blueprints for flexibility and maintainability.

Good Friday

On Good Friday, turn on the Good Friday filter.

add auth parameters for API

API POST, PUT, and DELETE methods require credentials, but the API isn't currently actually expecting them! Need to add that so @mhowe0422 can work some data cleaning magic.

Refactor FishFryFormClass

This FishFryForm class may just as well reflect exactly the structure of a geojson feature--i.e., geometry, properties. Plus the methods we have to interact with the form (geocode, read form, push to form, etc.)

Write tests!

Should have approached this whole thing using a TDD method, but c'est la vie. Still it'd be nice to have some tests for both the client and server side so future improvements are easier to manage.

Update dependencies per security warnings from github

Known high severity security vulnerability detected in uglify-js < 2.6.0 defined in package-lock.json.
package-lock.json update suggested: uglify-js ~> 2.6.0.

Known moderate severity security vulnerability detected in hoek < 5.0.3 defined in package-lock.json.
package-lock.json update suggested: hoek ~> 5.0.3.

Known moderate severity security vulnerability detected in pycrypto <=2.6.1defined in Pipfile.lock.

Known high severity security vulnerability detected in mime < 1.4.1 defined in package-lock.json.
package-lock.json update suggested: mime ~> 1.4.1.

Known high severity security vulnerability detected in mixin-deep <1.3.1 defined in package-lock.json.
package-lock.json update suggested: mixin-deep ~> 1.3.1.

DynamoDB, PostgreSQL, and Grout

I've currently got the FishFry data in DynamoDB. With that, the fishfryform web app's GUI forms and ReST API are carrying the burden of schema validation and gate-keeping for the database. While within the code base a thin "database interface layer" keeps the Dynamo-specific code at arms-length from everything else, everything still sort of bends towards accommodating unstructured data. Having the app need to enforce schema sort of cancels out the benefits of using a schema-less database; either I maintain schema enforcement logic in the app or the database does it natively. It's been a fun experiment.

It would be nice to get back to using a normal PostgreSQL database so we can do more fun spatial things with PostGIS, but maintain the schema flexibility inherent in something like DynamoDB. So...

...if there's time early in 2019, I might swap out DynamoDB for a hosted PostgreSQL database and use Grout, which is a relatively new thing from Azavea.

We'll see!

End of season messaging

Code currently removes the older dates from the Upcoming Fish Frys list. What is going to happen on the last day for fish? You'll have Open today, but nothing to display for Upcoming.

Remove the Upcoming heading and just display the Open today. Then after the day/time has passed, the Open Today could change to "Thanks for your support, see you next year"

Venue Type List

Instead of hardcoding venue types, it would be before have them in a db table and read in on the fly. This way we can add new types without html changes. I have two new types: Veterans and Market

CARTO API deprecated

CARTO's pricing model for their API access changed; consequently we won't be able to utilize CARTO as a database for the Fish Fry data. This breaks pretty much everything here. However...

We can migrate the database over to a PostgreSQL DB where the web application is currently living (on a pythonanywhere account), and implement some off-the-shelf Python Flask extensions to handle all the CRUD operations and UI stuff (that we otherwise had to custom build to make this work with CARTO).

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.