Code Monkey home page Code Monkey logo

thinky.gg's Introduction

thinky.gg's People

Contributors

aecarp avatar cosmovibe avatar duceswild99 avatar enfloo avatar jeetee avatar k2xl avatar snyk-bot avatar sspenst avatar timhalbert avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

thinky.gg's Issues

Logo / favicon

The current favicon / discord logo is just an image of the ๐Ÿ…ฟ๏ธ emoji. Would be nice to come up with something more official

Consistent input styling

for all inputs:

  • add margin
  • add label
  • use color variables for input background and text
  • border / rounded edges?

Icons for selected block type

Show icons in the block type modal, also show the icon in the control so you know which is active

  • delete the erase button and just add it as an option in the modal

Update Psychopath author notes

For example "Click on a GREEN SQUARE (which represents a level) to begin playing" is no longer accurate. Need to update the language to reflect the new site.

Stats on profile

  • score of the user
  • logged in user's completion of the levels on the profile
  • total level count
  • hide levels/reviews if there are none

Sorting / filtering levels

filtering:

  • input box to filter by name
  • hide completed / in progress levels

sorting:

  • by name
  • by moves
  • by points

Markdown in author notes

Psychopath 2 allowed for some tags (bold, italic, font, etc.). Should these be supported? Would need to parse the tags correctly to avoid any XSS.

Dev environment

Need a way to run locally without process.env.MONGODB_URI

  • mock API layer with pre-populated test data

Publish levels

  • all publishing and unpublishing
    • unpublish should delete stats and allow editing
    • published can't be edited
  • make sure any world/level changes are updated on profiles and in the catalog with SWR

Profile cleanup

  • grammar: 'You have completed 1 of Andrew's level'
  • add total levels for each creator in parentheses

User creation date

  • add a 'ts' property to the User model
  • set timestamp when signing up
  • display account age on profile

Stat timestamp

  • add ts property to Stat model
  • only update ts when the moves in the stat are lowered
  • use the same ts value for leastMovesTs

Change password

  • add option to change password on account page
  • need to enter:
    • previous password
    • new password
    • new password again

'Create' page

  • /create endpoint
  • ability to create worlds
  • worlds shouldn't show up in the catalog if they have 0 published levels

Discord link

  • create pathology discord
  • add link to welcome message and about modals

Reset password

  • link from #8 will land you at a reset password page
    • enter + reenter password
    • logs you in after changing the password

Page to create levels

  • endpoint is maybe /create/:worldId
  • similar format to the /create page, just creating levels instead
  • levels need to have an isDraft property so they don't show up in the catalog

Link account

Some users have been created manually (for example, levels that have been brought over from Psychopath 2 have an associated user that created the level). Psychopath 2 players may want to have access to these accounts:

  • when signing up, if their email matches an existing manually-created user, show a modal:
    • mention existing username
    • send a password reset email for this user
      • use logic from #8 and #9 for this

Level attempts

  • add 'attempts' property to Stat model
  • increment attempts every time the level is completed
  • add 'Your moves' and 'Your attempts' to level info modal

Save theme

Save selected theme in local storage?

History of least moves

Currently the Level data model stores some info about the least moves (number, time, user). Some problems with this approach:

  • There is data duplication when setting a new record (Stat is created and Level properties are updated)
    • Could delete leastMoves, leastMovesTs, and leastMovesUserId from the Level model and replace it with a recordStat reference
    • Need to manually create stats for legacy records
  • New records clear out the previous record data
    • Could add an isRecord boolean to the Stat model
    • How to keep track of one person setting multiple records?
      • Currently there is only one stat per user per level
      • If there is one stat for every attempt, need to always search through all attempts to find the best stat
      • Could create a separate stat for each record that is immutable (vs normal user stats which can be updated)

Editor controls

need a way to pick a levelDataType (14 options)

  • could do 14 controls but this won't work well on mobile
  • maybe just a button that opens a modal for choosing the active block
  • maybe controls for each button but a separate modal for movables (would result in 6 controls; 9 movable options in a modal)

onClick on each square that will change to the selected data type

save button
test button (future)

Forgot password

  • forgot password link on login page
  • forgot password page
    • email input
    • if email exists, send email with link to reset password

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.