nikita-skobov / collabopath Goto Github PK
View Code? Open in Web Editor NEWThe repo for https://collabopath.com
License: MIT License
The repo for https://collabopath.com
License: MIT License
when a user has poor internet connection and is playing the game, the images pop up, but sometimes the image that gets shown is not the image thats supposed to be there. for example when choosing images for your path there are different tabs. if you start on one tab, then click on the next, then some of the images will appear to be the same as the images from the previous tab. this is because the new images are still being loaded. once theyre loaded, then they replace the old image...
another way of solving this is maybe to download the images upon connecting to the site?
to see how many total paths there are, maybe also how many end paths there are for example:
A
/ \
B C
/\ /\
B1 B2 C1 C2
Has 7 paths, but 4 end paths
Ok, so actually it DOES preserve input, but it does not show it at all. So it keeps everything you've written/touched in memory, but when you click next, and then go back the text that you wrote disappears.
Ideally when you go back, you should still see what you've written
loading time is starting to take quite a while....
otherwise users will have to re-trace their steps in the tree every single time!
This presents an issue though: when starting from any path ID, should they still allocate stats and such?
Maybe next to the stats there should be a question mark where if you hover over it, it explains what the stat does.
On mobile, the number that shows your stat points is too close to the left arrow.
on mobile it doesn't give you a submit button so it's not clear what you need to press to continue
It's pretty clear that it's not very good, and trying to go through and fix specific little parts of it might be such a headache that it might be worthwhile to re-do the design.
Another reason to consider re-doing it is that this was written in react, and react is supposed to simply be the View, of an MVC, however I incorporated a lot of game logic in some of the components, and it is VERY messy...
Re-doing the design could also make it easier to make the game more modular, for example: the item system was designed with appendability in mind, but the stat system was not. Everything with health/stamina/intelligence/sanity is hardcoded, but in the future maybe we would add some new stats, and making a lot of different parts of the site more modular would be a good idea.
Some of them are really long, and confusing for the player. the game should NOT NEED TO BE EXPLAINED, but rather be intuitive as the user encounters more features...
When choosing an image, it creates a 2 column, N row grid. where the Nth row only has a single column in the event of an odd number of images.
For some reason, the final image in that grid cannot be selected on firefox. It works on chrome, and edge, but something prevents selection of the last image... very weird, my guess is it might be a react issue?
I cant believe I didnt think of this originally. On the front page there should be a button to view all of the current paths that are being voted on, and you can jump to those paths to view them, and vote on them yourself.
There was a good suggestion on reddit:
random item where you can actually choose (with checkboxes mabye) which items you can get.
I think thats a great way of doing it because then the person making the path object knows exactly which items the user is able to find, and if they want the user to find a specific item, they simply check only one box.
its because it tries to load the image from collabopath.com/about/image.jpg
instead the image should come from collabopath.com/image.jpg
two ways of fixing this:
either change the js code to prepend a / before all image names, so theyll always be taken from the root of the site, or add that specific image to the about folder...
This issue might be solved by simply doing a redesign of the UI like issue #6 suggests
Specifically I noticed it on the kill merchant effect. a modal pops up that you killed the merchant. If you click to /about, or /support while the modal is popping up then when you go back to / it crashes the app.
so if a userwants to replay the game from the beginning they dont have to re enter their name and stat points every time. itll save them for you and automatically enter them in when you visit those pages again.
this is because those routes arent part of the navbar (and I dont think they should be), but its confusing if the underline bar stays on Play even though you arent on the homepage. I think easy fix is just to call NavBar.changeSelected or something to remove the white underline
maybe on the same page you go to as the current votes page. users can see the current vote list, and then chat about it?
It should say:
don't see any images you like?
some escaping error there...
Adding a report feature is trivial, but what should the behavior of too many reports be?
Should the path object simply be replaced?
Should the path object be removed, and everything after it also be removed?
Who will be doing the removals, will it be manual?
How many reports before a removal is considered?
please add more questions/answers as you see fit. this is an important issue
When you reach an object that is not finalized, a dropdown menu will appear at the top. clicking the dropdown shows a list of all the various path objects at that specific node. every time you click on one of those dropdown items, it refreshes the list to see if there are any new additions, and it also re-renders your selection.
It also functions as a back button so if the dropdown menu contains:
dsauht43
3qwihtr9
lets say you are currently on dsauht43 and the options say:
OPTION A ---- OPTION B
and you click on OPTION A then you get taken to the text/image/effect of OPTION A. And if you want to go back to check out OPTION B, you would click on the dropdown menu, and then click on dsauht43. This will take you back one level, and once again you will see:
OPTION A ---- OPTION B
This is not intuitive, and I think a back button would be a better idea.
you can fix this by finding the PREVIOUS path ID at a users submitted path id. take the previous path id, the last character is the direction. set the direction, and also fetch that object if necessary. so when it comes to rendering, nothing needs to change. It just takes the previous object as normal
It shows up as an error because in the live site, if theres a network error it should let the user know that something went wrong. However, when running on localhost, the network error will always occur because it can't make a request due to CORS.
This is problematic for testing because you want to see the make path modal, but the button will never show up due to CORS...
Was lazy with the apostraphes because I didn't want to escape them...
It's pretty clear that 15 minutes is not enough because as the tree expands there'll be so many branches that it'll be impossible for a user to find a path in time to vote on it. What will end up happening is the user who created the new path object will get theirs finalized, and nobody else will have any say...
There are a lot of different ways to handle this, and I'm honestly not sure which is the best. I'd like to keep this issue open for a while to get some various users feedback on this
the idea was that for fetching something behind the scenes it shouldnt alert the user of a new path if the user hasnt even stepped onto a path yet... so I dangerouslySet the dontShowConcepts flag to true, and after the fetch call i reset it to false.
this is a problem if the user has already set it to true, because then it just overrides that and sets it to false!
i need to save the user value, and reset to the user value
forgot to add an onClick prop to it. oops.
when clicking "start from beginning" or "start from specific path id" it should first pop up a modal that warns the user that there might be explicit content, and that they accept that it might be offensive if they continue.
currently, there are only 2 bundles:
BUNDLE A: for the npm modules like react, react-router, etc. and
BUNDLE B: for all of my components/logic.
There should also be another bundle which is just a list of items/images that the user is allowed to use/see. Because the idea is that this list of items/images should grow as more people submit item and image requests. As of right now, what would need to happen is I would have to rebundle the entire BUNDLE B even though I only added a few items, and that would cause all users to have to redownload a 200kb file every time theres new images or items...
when it was a navlink you could just hit the Play nav item, but now its just a regular component, so if you go to currentvotes page theres no way to go back!
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.