dhvogel / cryptorides-karl Goto Github PK
View Code? Open in Web Editor NEWCryptorides bike service. Named after Baron Karl von Drais, inventor of the bicycle.
Cryptorides bike service. Named after Baron Karl von Drais, inventor of the bicycle.
Right now I'm putting in console.log()
statements ad hoc. A more thought out logging strategy would help me understand more about what's going on at runtime.
Develop and implement a basic logging strategy.
This seems like a good starter: https://blog.risingstack.com/node-js-logging-tutorial/
Currently, jumpbike data is retrieved from the jumpbike API, and jumpbike locations are shown on a Google map.
A full order flow for Jumpbikes should be developed. This means that users should be able to click on any given Jumpbike and reserve it through the cryptobike interface.
Jumpbike has a way to do this: https://app.socialbicycles.com/developer/#!/bikes/POST_bikes_bike_id_book_bike_format_post_1
Currently, there is no minimum standard for testing or really any metrics around how much of the codebase is being tested build to build.
Test reports should be run and archived somewhere. Could be stored in an s3 bucket.
Currently, /jumpbikes/:bikeId uses my client token to book a live jumpbike (and charge me for it).
This should be removed as people could probably book jumpbikes for free should they stumble across this.
This functionality should be kept as part of the jumpbikes module, however people shouldn't be able to do this until first paying in crypto or what have you.
Currently, there exists a nice mocha/chai/sinon unit test suite, but no integration test suite to test endpoints.
An integration test suite should be created.
Probably should use supertest.
Currently, I'm manually running CI builds on a containerized Jenkins server on my local.
The CI build trigger should be automated, and happen every time code is pushed to cryptobikes.
If I want to continue to be cheap and run Jenkins on my local (I do), I could use ngrok (https://ngrok.com/) to give Jenkins a URL access-able by the outside world. I could then add that URL as a webhook to each cryptobikes repository.
Right now, secrets are read from a config file stored on my local, but not committed to github. This is problematic when docker images are built from source pulled from github.
Docker containers running in the cloud should have access to secrets, like I do on my local. However, this access should be restricted to only the infrastructure on which the cryptobikes services run.
This could be achieved by storing secrets in an s3 bucket, locking down the bucket with a strict bucket policy, and giving the cryptobikes infrastructure IAM roles with permissions necessary to access the bucket.
AWS also just rolled out a "secrets manager" like two weeks ago but I don't know much about it. https://aws.amazon.com/blogs/aws/aws-secrets-manager-store-distribute-and-rotate-credentials-securely/
For development purposes, I am using the Client Token provided to me by Jumpbike to make Jumpbike API requests.
In traditional OAuth2, a new client token should be generated for each user who authorizes a particular service. This flow should be developed so people can actually use the app.
Currently, the deployment pipeline does the following:
The deployment pipeline should also deploy the newly built container into a dev environment. This will require creating a dev environment.
Could probably leverage the ALB/ECS terraform I wrote a while back.
https://github.com/dhvogel/cfcorp-tf-aws-alb-ecs
Currently, in each CI build, the old cryptorides stack is completely destroyed and a new cryptorides stack is applied. This means that the IP address of the instance on which cryptorides is hosted is inconsistent across time.
Even though no one is using cryptorides yet, there should be a consistent endpoint for the dev environment.
This could be achieved by using r53. https://www.terraform.io/docs/providers/aws/r/route53_record.html
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.