Giter VIP home page Giter VIP logo

iata-finder's People

Contributors

hampgoodwin avatar jacobsngoodwin avatar

Watchers

 avatar  avatar  avatar

iata-finder's Issues

Create tests for gRPC server

As part of #20, it will be good to have basic tests to make sure the server methods are functioning properly. These can be executed as part of the concourse (most likely) pipeline.

We have a current working branch which would make substantially large changes to the master branch. The branch is called "unit tests", but these tests will actually dial the server and depend on the dataservice, so they are not actually unit tests.

https://github.com/abelgoodwin1988/iata-finder/tree/add-unit-tests

Summary of changes so far:

  • Code for creating the server has been moved to a separate server package.
  • The server package contains a Create method which takes a reference to a dataservice and a config path. This allows us the ability to plugin a different dataservice or configuration file for testing versus that actual server (though for now they are the same)
  • The create method returns a net.Listener and *grpc.Server which can then be user to start the server in main or testing functions.
  • The grpc.Server is not "served" inside of the create function because doing so is blocking. We want this functionality when the actual server is running (for now, though there may be other options to make this work, such as waiting for a termination signal, etc.) . However, we need the server to be non-blocking in the tests.

@abelgoodwin1988, maybe take a look at the general structure as these are big changes. Would be glad to pair up sometime. For now, we can easily add more tests. The setup and teardown is pretty basic.

Research Stripe or some kind of Payment System

When we eventually get to charging for this for a higher request threshold we'll need some way to accept payment.

Also note; the actual server is going to stay open-source...
So maybe we should have a donation/patreon sort of thing in addition to a pay system for those who want to deploy this system for themselves?

Build Cloud Infra via Terraform?

Would this be a good opportunity to get some cloud api configs and create a terraform thingy so we can practice deploys?

The app is simple and it's containerized so we could focus on the actual standing up of infra instead of "getting things running" stuff.

Create a token-issuing system

We may want to get a token issuing system. I plan on deploying this and making it available for free for up to some number of requests a month (all data). For people who are going to be pounding the service I want them to cover the cost of using it. For this I want to get started creating a tokening system where a particular token is associated with a number of allowed requests and how many requests they're allowed.

I think this could be a good DB experiment; I would rather have the "requests made" field be auto incremented by a db trigger that auto increments that field whenever the token is accessed as a simple way to track # of hits a user has made..

Anyways this is something to think about..

I wonder if we should make this actually a separate micro-service? I think that is actually the right way to go, what are your thoughts?

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.