Giter VIP home page Giter VIP logo

tailspin's Introduction

Technical specs: https://app.eraser.io/workspace/WACLs7K7wFrqNPWPVwBs

About: https://app.eraser.io/workspace/3ZJRnTmGHhjrq0lJMnjO1

  1. git clone/git pull this repo.
  2. yarn install
  3. yarn run start

tailspin's People

Contributors

es-legacy avatar zacharylyh avatar

Watchers

 avatar

tailspin's Issues

Add a page to explain the current state of Tailspin

Make it clear that we currently only offer a tiny playground - no personal accounts or other things. Explain that the devs will continue working on Tailspin if the reception is good enough.

Potentially add a front page to the stepper section?

Hook up OpenAI and submit result email after OpenAI returns

  • Implement OpenAI as an async function
  • Implement the Submit api endpoint to include OpenAI
  • Send an email of the result to the player
  • Read the results from OpenAI and get the percentage score. Do some string manipulation.
  • Implement error states
  • In the email response, send the code submitted, the percentage score, and some notification that Tailspin is still in its infancy stages and scores can be wildly inaccurate.

Important:

  • Create the OpenAI call separately. We'll add an environment variable that tells us which environment we're currently on prod or dev. If we're in dev we won't hit the OpenAI endpoint instead we'll hit a mock function that we'll implement. This mock function should mimic an OpenAI call.

Add a fallback plan for failed submissions

If the submission fails at the OpenAI level or the subsequent score extraction level, insert this code, email to the DB.

Create an endpoint for a cron job that will ping our DB periodically to retry failed submissions. If the job fails again, increment the retry count. When the retry count == 3, send an email to one of us with the details of the failed job.

Implement localStorage for user's code, email, and rating

  • if user has rated, don't show the rating section by default. We'll provide an obscure button for re-rating
  • upon getting to /code-area, the email should be pushed into localStorage. As the user codes, the code should also get pushed into localStorage. This is so that if the user refreshes their page, their progress doesn't get lost. This is due to currently we're using zustand to store these data, which will be cleared if the user refreshes their page.
  • building upon the previous point, the validation process for whether the user should be in the /code-area page will need to account for localStorage now. We don't need to get rid of the zustand store and we don't need to modify the validation logic for whether the user should be in the /code-area. We just need to additionally write the email and code to localStorage.
  • When the user ends their session, the localStorage should be purged.

Redo theme

Maybe green to orange as primary color?
And purple as secondary color?

Up for debate

Resize the open and close prompt button

In the code-area

  • when the user is viewing the prompt, enlarge the close prompt button. Or somehow make it obvious this is the button to close the prompt section
  • when the user is not viewing the prompt, let the prompt button and actions button be the same size (room for ideas here)

Implement React Query into site counters

  • Define a Query Key and make the fetch site counters functionality useQuery. Hint, make the fetching function a "use client". Only client side queries can use React Query.
  • Implement useMutation onto the Submit button. onSettled, send an invalidation request using the Query Key defined in the first bullet to refresh the site counters.

Landing page playground redo

  1. User should choose difficulty level. Select time or untimed. (For now we'll not implement timed mode but get used to the idea)
  2. User should accept TOS and supply an email
  3. When data is verified, spawn the sandbox.
  4. After submitting the UI should revert back to 1, pop confetti, and BE should handle OpenAI request and email callback.

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.