Giter VIP home page Giter VIP logo

clickerheroestracker's People

Contributors

dependabot[bot] avatar dfederm avatar driej avatar eliakaris avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

clickerheroestracker's Issues

Switch over to the Angular app

This is tracking all the features needed for feature parity.

Pages:

  • Home page
  • Log in
    • With password
    • External logins #137
  • Register #131
    • With password
    • With external provider
  • Password reset
  • Feedback #132
  • News
  • Manage page
    • Settings #133
    • Change password
    • Add password
    • External providers
  • Clans
  • Upload
  • Calculator
  • Dashboard
  • Uploads list
  • Progress #134
  • Compare progress #135

Other stuff:

  • Auth token refresh
  • Send user information down to client #140
  • User settings sync #136
  • Bundling via Webpack
  • Ad refresh on route change
  • Include App insights module (reference)
  • App insights events, eg pageView on route change and setting the authenticated user #139
  • Reload on version change #138
  • Loading spinner during async calls
  • Upload page buttons: View data, Delete (need confirm), and share
  • Admin commands
  • Don't show UI until auth is attempted
  • Microsoft login no longer seems to work

0 can't be used on a log scale

0 can't be plotted on a log scale, so we fall back to linear scale.

Investigate if one of these looks better:

  • Treat 0 as 1. This is "close enough" when using a log scale and large numbers. Is it really though?
  • Treat 0 as 0.1. This is "one notch below 1" (1e-1 is one below 1e0). Maybe this is too big of a notch though? IE 0 and 1 would have the same distance as 1e10 and 1e11.
  • Treat 0 as 0.9999. This is "just barely below 1". This may end up with the benefits of both the above (?)

Improve clan messaging

  • Refreshing on the message board (manual) or polling for messages
  • Clear chat box after send

Hide stale clan messages

Some clans may not have much message traffic, so don't display stale messages. Perhaps messages older than a month.

"Ascensions this transcension" is wrong during the first ascension after transcendence

From bug report: "The chart for 'Ascensions This Transcension' often (but not not always) shows the number from 'Ascensions Lifetime' between the end of one transcension and the beginning of the next."

Looks like this piece of code:

this.AscensionsThisTranscension = savedGame.NumAscensionsThisTranscension != 0
    ? savedGame.NumAscensionsThisTranscension
    : savedGame.NumWorldResets;

Add user search

  • By email (maybe exact match since email is private, or maybe even not at all)
  • By name
  • Similar progress

Security: MockAuthenticationHandler allows arbitrary user ids to be given

The MockAuthenticationHandler allows arbitrary user ids to be provided which may clash with real user ids. Since we enable Mock auth in the staging environment which is connected to the prod database, in theory someone could "log in" using mock auth with a real user's user id and potentially imitate that user.

Today only the HomeController allows Mock auth though, and that controller doesn't write to the database, but we should fix this before expanding mock auth to other controllers which do.

Potential solutions include mock auth being constrained to choosing a specific mock user to imitate (ie, TestUser1, TestAdmin, etc), or to constrain the user id to be something that could never be a real user id (real user id's are GUIDs, can we support non-guids for mock users?)

Use the timestamp inside the save instead of the time it was uploaded

Some users may have manually archived saves and this would allow them to upload them all and get correct graphs and history.

This also seems more correct as it goes by the actual time in-game instead of whatever time the user happens to upload at. In practice I'd guess the difference isn't that big though.

Need to think if anything would be incorrect about this change. Perhaps around save hacking (who cares?) or restoring a backup (but the timestamp would update next time they saved?).

Finally, if we do make this change, need to think about whether to re-process all existing uploads and changing the time or to just leave them as-is.

Add interactive calculator

As a replacement for uploaded the encoded save file. People on mobile don't have easy ways to get their save file.

Scrape clan data at upload time

Currently it's checked when a user goes to the clans page. This means users might upload but the clan data never updates unless they check it.

Nogardnit support

Recommendation should be Lib^(0.8)

Not sure what his cost is yet. It seems similar to Solomon in my run so far, but that could be a coincidence, I don't have they at the exact same lvl.

Libertas is suggested for Active playstyle

From user feedback:
"For some reason your calculator suggests me to get libertas when I'm playing active, which is strange considering that libertas is completely worthless when playing active."

After transcending missing ancients should assume a 0 level

After transcending non-purchased ancients are missing from the progress data instead of being logged explicitly as 0. This causes graphs for these ancients to look as if the user hasn't uploaded in a long time, rather than uploading and not having purchased the ancient.

Redesign Clan API

After thinking about what we should expose (and ignoring the implementation details we have to work with today), we should probably do:

GET /api/clans - Lists the clans (leaderboard)
GET /api/clans/{clanId} - Gets details for a specific clan
GET /api/clans/{clanId}/messages - Gets the messages for a specific clan
POST /api/clans/{clanId}/messages - Posts a message to a clan

Obviously some of these will return unauthorized if you try to get or post messages to a clan you're not a part of.

Also, getting the clan id for a user may require some user APIs we don't currently have. This goes hand in hand with #19 which would also require some user APIs, so we should build it with that in mind. Probably something like...

GET /api/users/{userId} - Gets all information about a user
and/or
GET /api/users/{userId}/clan - Gets clan information (like clan id) for a user

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.