Giter VIP home page Giter VIP logo

my-fridge-server's People

Contributors

apruner avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

my-fridge-server's Issues

Look into how to protect requests with firebase auth

I need a way to ensure users that are sending requests have been authenticated (that is, the request should have some sort of valid session token associated with it or something) with firebase auth.

Ideally I probably build an endpoint/table or something to check firebase tokens against.

Build out GQL infrastructure

Need to build out the following in the gql package:

  • A gql resolver (holds pointer to the DB and actually does Postgres queries)
  • Gql models (fields or types)
  • A gql base query type (AKA gql schema)
  • A gql query engine (to pass off valid queries to the resolver via graphql.Do)

These can be in subpackages (such as a models directory for models), or just .go files. will probably start with the latter and move to the former when necessary

Implement auth

Self explanatory! Ideally a sign in with google/facebook via OAuth would be good!

Fix Prod database issue: "/var/lib/postgresql/data is nonempty" (or whatever it was)

There was an issue with the first K8s deploy where the postgres image got into a CrashLoopBackOff state because of an with the mounted volume.

The error message was something to do with "/var/lib/postgresql/data is nonempty". A temporary workaround I found was to just use the PGDATA=/tmp environment variable in the db-service.yaml, but this is nowhere near ideal. We want a persistent volume for data storage for sure.

I'm pretty certain that the postgres db will be totally wiped upon restarting the db service. Not an issue at all right now but when we start getting users to store data in there, that'll be a big issue.

Design database

Need to do a rough database design diagram before I start writing table migrations and things

Spike: Look into deployment and CI/CD

Need to get a deployment going! Will decide how I want to do it. This will involve looking into and setting up:

  • Dockerization
  • Hosting (aws, heroku, netlify, google cloud, etc)
  • CI/CD (Circle, Travis, etc)

Ensure graphql returns proper data for all mutations based on proper conventions

Currently, the graphql API doesn't return correct data values for mutations. For example, upon creating a new shopping list, the response data looks like this:

{
	"data": {
		"shoppingLists": {
			"id": null
		}
	}
}

Either the id returned should be correct, or we should return the full shopping list that was created, with all columns. Probably the former is good enough.

Another example is with deleting. Upon deleting a shopping list, you'll get the same response data. The correct response data in the deletion case would be the full row deleted, or at the very least, the correct ID that was deleted.

Build CI/CD Pipeline (or shell script if a pipeline is extremely difficult) for prod deployments

See DEPLOY.md for steps to automate here.
There are a few issues that I have in mind:

  • Gcloud auth on the deploying machine (obviously the pipeline will have to run on a VM right?)
  • Installing and configuring dependencies like kubectl, etc might be a lot of work

In the case where these two things are obstacles that are too large to take on, I'll just write a shell script and do it from my machine locally.

Build local CI/CD pipeline (for docker and unit tests)

We should ideally (once we have some unit tests) have a local CI/CD pipeline that runs the unit test suite, runs migrations, and builds docker images. This would be super nice!

This is dependent on the completion of issue #3

Build CRUD functionality for fridge

This will be a bit more easy to map out/design than shopping lists. There will need to be the following tables in the db:

  • Fridge/Pantry (has many items)
  • Items
  • Figure out what other tables could make sense here

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.