kryha / bot-busters Goto Github PK
View Code? Open in Web Editor NEWChat, be human and bust bots!
License: Apache License 2.0
Chat, be human and bust bots!
License: Apache License 2.0
Remove feature
directory
components
dirservice
dirpages
dirutils
dirService (only backend code?)
Remove unused Hooks useRoom
Move routes
to top level dir
Move user
& test
from server/service
into db
Move logic from useMatchState
into match
page
Move sprite-controller
to components
dir
Remove animation
feature in favour of creating AnimatedSVG
component to encapsulate all animation logic including event handlers ( To be updated in future)
Move mui
into styles
Rename scores
for results
Add switch depending on matchStage
Move feature smart components into containers
Files that need to be added:
After player has logged-in, the username will appear on the top-right corner in most pages.
On-clicking the username a card will be shown displaying the following data:
Sign out button
The Leaderboard should be a separate page with unique route /leaderboard
.
(For now) It will display the "Daily" leaderboard.
https://developers.google.com/recaptcha/docs/v3
Since we'll allow anonymous users to play, we also need a way to identify malicious users / bots.
For this we'll implement reCAPTCHA v3 to generate a score and identify bots.
This should pop up after the chatroom timer reaches zero. Stay visible for two second and vanish revealing the Voting View
Te top-right corner displays user data, depending on authentication state.
Latest version of the homepage doesn't include the Leaderboard.
One addition is a fixed bottom section that horizontally scrolls through the top ranked profiles.
No matter where the user has clicked on "connect wallet" it will be always redirected to a "connect-wallet" route that will display a view while the signing takes place.
If the user is connecting the wallet for the first time it will also go through the username select flow
Zustand store will be used to keep match state
After the chat round has finished, each player will vote on whom is a bot. Since the decision will impact the over all scoring of other players we need to enforce this step, and make sure each player casts a vote.
If the player doesn't cast a vote in time they wont be getting any points from the previous round.
The button to "confirm" will display a timer and a bar that showcase the time left to cast a vote
Check for:
Chat
component.useMessages
service hook.The new menu should be always visible in the top-right corner.
The User Stats will be grouped together with the menu button and the sound button.
On click, the button uncovers a full screen view of the navigation items, centred in the middle of the screen.
One variation in the elements is the Connect / Sign-out item that will change depending on the authentication status of the given user.
The open menu view has a unique Footer showcasing copyright inf, Legal pages and third party links.
Remove older routes:
These will be independent views triggered by the state of the match
https://www.figma.com/file/g3BAl5VP2xrMoloyjmdJ2u/BotBuster?type=design&node-id=242%3A26&mode=design
This story tracks the flow for an anonymous user to chat after it get's matched from a lobby
The judgment mechanic will be tracked on a different user story.
At the beginning of each chat session the player will see an achievement prompt indicating suggested conversation starters.
The general structure of an achievement prompt will have two sections:
(The current implementation only will have one question or suggestion without points or guidelines)
During the chat round multiple achievement prompts can appear guiding the players to have a more engaged conversation.
After connecting the wallet for the first time the user will see a prompt to add their selected username.
In the background the user will see a blurred leaderboard (this is just a mocked image)
The user can click on a "generate" button multiple times to find a good username.
Username must be visible in the Lobby page, while waiting for a chat session.
Columns for leaderboard:
As days progress we'll showcase leaderboards from multiple days in the pass.
When users click on "Play", the join lobby event get's triggered and users are re-directed to the Lobby page.
The page contains a simple spinner for now, and the user stats component in the top-right corner.
After the user gets matched, a splash screen pops up and quickly goes away (feel free to animate this in the most simple way possible for now).
Navigation goes to /chat
page (will be renamed) including the room_id in a query string.
Timer should start after splash screen from the transition disappears.
The timer will start as a full bar that gets smaller as time goes by.
The bar will change color as it progress.
When timer reaches 30s left the bar should change to color red
We'll have multiple timers running on different times of the game. The Timer service should offer a simple API to bootstrap a new timer with the given time limit, and an action to be triggered on time completion.
The backend timer service will be the source of truth for keeping the session time.
The correct time should be communicated through the web socket session, and synchronised with the clients as needed.
Create schema for User props
This is for Anonymous users
If the anonymous player has played at least one match, the score earned so far will be displayed in the top right corner of the screen. This will include:
Players will see a line on top of their chat message input field. The line will showcase the amount of time left for the current round. As the timer goes down so that the length of the line will be reduced.
After reaching a threshold the color of the line will change to remind the player that time is running out.
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.