Git Product home page Git Product logo

par-3-pickup's Introduction

Hi there, I'm Misha ๐Ÿ‘‹

I'm a developer, explorer, teacher & father to four stuffed animal kids

  • ๐Ÿ”ญ Helping disrupt the the rail freight industry at Cedar, working on front-end, mobile & touching the back-end once in a while.
  • ๐ŸŒฑ 2022 Goals: Hit par on a par 3 course.
  • ๐Ÿ“ซ How to reach me: email [email protected]
  • ๐Ÿ˜„ Pronouns: he/him/his
  • โšก Fun fact: my favorite food is Hot Pot, especially at Hai Di Lao!

Connect with me:

pareto-learning youtube | YouTube twitter | Twitter linkedin | LinkedIn instagram | Instagram


๐Ÿ“บ Latest YouTube Videos

๐Ÿ“• Latest Blog Posts

par-3-pickup's People

Contributors

derekpyoung avatar mikhael28 avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

derekpyoung

par-3-pickup's Issues

Migrate off Stellar Test-Net

As of right now, the Stellar blockchain digital assets known as 'Golf Coins' are on the test-net. This is fine for testing purposes and initial users, but the test-net assets get wiped every 3 months. This issue revolves around migrating to the blockchain itself, which entails a few pieces of work hardening security.

  1. Create a 'distributor' wallet, to be used in paying out GC for experience earned. Right now, the origin account is directly paying out GC - this is comically terrible from a security perspective, as anyone can send a POST request to the right end-point, add in a JSON string specifying how many GC I should send to which account id. Using a distributor account for payouts, adding another layer of security, allows me to protect my private keys.
  2. Create a tokenization service to retrieve our users Stellar private keys, instead of just storing them in their profile. Should likely encrypt them inside an S3 bucket, implement access control pattern for granular access.
  3. When creating Stellar wallets, we need to fund them with a minimum of 5 XLM (or so). This is partially because there is a small transaction cost involved in creating the account in the first place, and a small transaction cost for transferring digital assets from one wallet to another. In addition to figuring out how to fund these accounts without burning real world cash, we also need to a) have a check/alert to the user notifying them that they need to either buy XLM or have the distributor account give them some and b) have a way to notify the team when the XLM balance in the distributor/creator account is low, to either manually buy some more or figure out an automated solution.

In general, this is lots of work - if someone wants to have more experience working with the blockchain to put on their resume/portfolio, this is a great ticket to work on. After we work on a few smaller ticket items and we can trust each other, I will open partial access to the back-end APIs and test keys.

Add back in 'personal best UI'

The scorecard still tracks your personal best, and notifies you when you achieve it on a particular hole, but a UI element that I had in GameNav was taken out due to a temporary bug. I will need to add it back in, and rework how the achievement index (achIndex) in the React code works, to avoid triggering bugs onLoad for new users.

Course Distance + Screenshots

We want to have the distance for each hole from tee to green, as well as an overall picture of the course - making the physical scorecard totally irrelevant.

Backlog

  • generate end of round report summarizing progress
  • golf coin through Stellar
  • XP betting, reintroduce multiplayer.
  • matchmaking lobby / messaging for coordination, with SMS for tee time confirmations.
  • transition animations

Rework end of game API call + front-end loading

At the end of the game, there are two API calls made for each active player - the first updates their profile, with their new achievements and XP. The second, handles the payout from the Stellar blockchain. I would like to rework these two API calls into one, because they are both related to each other and would make error handling easier.

Right now, the Stellar test net transactions sometimes randomly fail - most likely because of whatever technical limitations of the test-net.

I need to have better error-catching for the API calls sent out in the front-end, with better logic to retry - right now, a failing request might break the other request. Perhaps I should rework this into some sort of a 'Loot Box' scenario, where instead of programmatically awarding the Golf Coin, I require somebody to manually 'ask' for the loot - perhaps this is a way I can monetize, by giving people the chance to earn OR buy 'lootboxes' filled with Golf Coins and other goodies.

Play 2 Balls in Singleplayer

When playing single-player, we want to give the option of the player tracking two different scores at the same time - it's something that's commonly done, when you are playing through a course by yourself, and you want to get value for the money.

Lighthouse perf audit

In addition to seeing what's up with the desktop service workers, let's review any issues that could be popping up on Lighthouse. I briefly addressed a few a month ago, but I'm sure there are a few accessibility issues/JS sharing/time to paint/blocking JS issues I can resolve to bump up the score a bit.

Investigate desktop service workers

PWA installation still works on mobile phones, which is all I care about in the end, but for some reason has stopped working on desktop. At least, my desktop - I haven't tried on others. Could be an M1 issue, but 95% not. Spent an hour, there might a hint in the getManifest function. Review commented out code there.

3+ player tracking testing

Aside from about 8 lines of code (in GameNav, where I believe we are manually setting achievements index to either 0 or 1 index), the multi-player scorecard/XP payouts from asset issuer should work. However, that will require testing.

  1. Update that block of code in GameNav
  2. Test with three different players

Proshop Amazon Affiliate Links

I need to create an Amazon affiliate link, and use that to create links to the golf products on selection there. Perhaps add a disclaimer, if legally necessary.

'Caddy' brainstorming

The concept of having an 'onboard caddy' in the app came from some of the golf lessons I've been taking. I wanted to have a way of reviewing them, and sharing some of the knowledge. After all, these lessons aren't cheap.

I've thought about, for an MVP, having a list of topics, then having some JSON 'steps' illustrating how to swing, how to grip, the different types of clubs, optical illusions/aiming the ball, etc.

At some point, if we can add GPS tracking to a course (long long long ways away from that), and if we can tap into TopTracer ranges API to get your average distance per club, we could offer real-time recommendations for clubs, swing strength and more.

Does anybody have any fun suggestions, or UI mockup/inspirations?

Peer to Peer Payments

Right now, we have a system set up to allow players to pay each other out using MetaMask, and Ethereum wallet.

First, we want to update the UI on the buttons to mark the MetaMask payout. Then, we need to review the process of linking the MetaMask wallet to the site - that and the payments functionality had all worked in the past, but it needs review.

Second, we need to actually mark that the payment was 'completed', on the Match db object, and then to hide the button if the payment was transacted as completed. This will require some sort of callback from the MetaMask wallet, to then trigger the API call. API route already works, just need to structure the JSON body.

Third, we need to give the Stellar GC payout version. This will involve setting up a new lambda function, to facilitate transfer from one wallet, to another. We will need to run XLM checks to make sure the transferring wallet has the XLM to perform the transaction. This is related to #13 ticket, migrating off Stellar test net.

Add Source Map Explorer

Let's take a look at why there is a 234kb JS 'shared' among all Next generated pages. Let's add the source-map-explorer npm package, which I think needs a little bit of configuration for Next.js, and let's see if there are any absurdly large npm packages that might need to be replaced. Perhaps the Amplify 'API' package can be replaced with the 'core' module, I hear that their tree-shaking is much improved.

If working on this, please add functionality in, post screenshot of source map explorer results, and send PR with updated package.json and yarn commands.

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.