Word Charades is a multiplayer realtime word guessing game, I developed whole of the frontend of this app using flutter and dart, and backend of the app using nodejs and mongo db. I facilitated real time communication using socket.io for realtime connections.
Users can create game room by providing details like number of users in the game, number of rounds and a room name. this data is sent to the server which joins the user to a socket room.
the user can share this to room name to friends, who can join the room directly using it.
once the room has enough users, the game starts.
Built realtime whiteboard for one user to draw on, the data is caputred as list of coordinates on the screen and sent to the server. the server then broadcasts this data to all other players in the room.
Other users can guess the word and write it in the integrated chatbox, once someone guess the word, chatbox is disabled for him and message is hidden. Once everybody guesses the word or the timer runs out, game moves to next round.
All members of the same room are also connected over voice calls implemented using agoda sdk.
Users can view the leaderboard in real time, change brush size, color, etc.
Tech Stack : Flutter - Dart, Node.js, MongoDB, Socket.io
Improvements Required: Improve screen drawing performance by drawing only parts that have changed. Better synhronisation - running timers and calculating scores on the server instead of the device.
![](https://private-user-images.githubusercontent.com/111358311/356508077-44f16f7d-cbc7-4574-b014-cb3f00a4d7c3.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM1MjY5MDEsIm5iZiI6MTcyMzUyNjYwMSwicGF0aCI6Ii8xMTEzNTgzMTEvMzU2NTA4MDc3LTQ0ZjE2ZjdkLWNiYzctNDU3NC1iMDE0LWNiM2YwMGE0ZDdjMy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODEzJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgxM1QwNTIzMjFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lMzA1M2Y0YTc5YjVkM2RhNjVjZjk3Y2ZhNTIyOGUzMDg0NDQ0NDNhMzljYWFmZDljYmIyMmRhNTEyY2U0Yjg0JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.FdFskOSYYWRnsQH2F7Quwx8OU4IJ3wOTwI-9yKREsLY)
![](https://private-user-images.githubusercontent.com/111358311/356507878-ee04067c-9922-46bc-876e-a7ad5b6c6eb1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM1MjY5MDEsIm5iZiI6MTcyMzUyNjYwMSwicGF0aCI6Ii8xMTEzNTgzMTEvMzU2NTA3ODc4LWVlMDQwNjdjLTk5MjItNDZiYy04NzZlLWE3YWQ1YjZjNmViMS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODEzJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgxM1QwNTIzMjFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jMjU1MjE3MjllY2NkZDM3NTczYmIxNWYwMDhmZDM0NjkzMmNhY2U0MGY0NmQxZWEwMjE1M2Q1YWIzYjhmNGZjJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.vP6vBWUR17Ho4XQ96Lyo7VlyQ7j8jtUchio1AKZohfM)
![](https://private-user-images.githubusercontent.com/111358311/356508332-a37b3569-6606-48ce-a4d2-433a23fd0818.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM1MjY5MDEsIm5iZiI6MTcyMzUyNjYwMSwicGF0aCI6Ii8xMTEzNTgzMTEvMzU2NTA4MzMyLWEzN2IzNTY5LTY2MDYtNDhjZS1hNGQyLTQzM2EyM2ZkMDgxOC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODEzJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgxM1QwNTIzMjFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT03MDUyMjAyMjQ1ODBmZGYzMmE0MDhkZTljZTYxOTczMzMyMzc1OTVkMTMxMzE3NmE4MzY5NWZhNzE4NGU2NmQyJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.R6PuMAPz0bfYe2izcoFxeOsyDrSYUs-m7VHBxc2nSCs)
![](https://private-user-images.githubusercontent.com/111358311/356508509-dfbde326-4259-44a5-a6da-7b85ca9b7102.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM1MjY5MDEsIm5iZiI6MTcyMzUyNjYwMSwicGF0aCI6Ii8xMTEzNTgzMTEvMzU2NTA4NTA5LWRmYmRlMzI2LTQyNTktNDRhNS1hNmRhLTdiODVjYTliNzEwMi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODEzJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgxM1QwNTIzMjFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1mMjU1NmNkY2Q4NGZjMDhmMmM3MGYzZjVjMjYwMTU3YTllMDM1ZmFiYzRkOGJiYzc1OTIxYWMxMGIxNDBjMWFiJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.dYLMw1mZXUMCyETSVXfqr_WNVedM1q2Itr5NB-3Qu4s)
![](https://private-user-images.githubusercontent.com/111358311/356508609-35ff42d1-2ba9-4f25-a960-60ab073ffe16.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM1MjY5MDEsIm5iZiI6MTcyMzUyNjYwMSwicGF0aCI6Ii8xMTEzNTgzMTEvMzU2NTA4NjA5LTM1ZmY0MmQxLTJiYTktNGYyNS1hOTYwLTYwYWIwNzNmZmUxNi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODEzJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgxM1QwNTIzMjFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zM2QxMmFiZGYzYzYyMGViNGRhMGM1MDBiYzlhM2RlMWMzNjQxNDk5ZDE4NmE5ODBkOTZiZmViODc5M2NmNzk4JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.J48vL28Pap1UWL0-gM7CbM-nYFSasgUKk4erFUtKQOc)
![](https://private-user-images.githubusercontent.com/111358311/356508977-50f4acb0-e946-49fd-891a-e8f655a11548.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM1MjY5MDEsIm5iZiI6MTcyMzUyNjYwMSwicGF0aCI6Ii8xMTEzNTgzMTEvMzU2NTA4OTc3LTUwZjRhY2IwLWU5NDYtNDlmZC04OTFhLWU4ZjY1NWExMTU0OC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODEzJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgxM1QwNTIzMjFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1kMjExOWNjNzFhMDc5MjYwYTU4Nzk2NDUyMmRmOGQ4ZTYyMGNmZWQ1OWM3ZTA1NzZkOWE4Mjk1NGJlYTBlMzhiJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.pub_e4RCZfnkLBUGI7KXMTfXqBdmaL2AgrfiQZvJoXA)
![](https://private-user-images.githubusercontent.com/111358311/356508878-d25a00ee-983c-48d8-b8eb-6506e186cbfa.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM1MjY5MDEsIm5iZiI6MTcyMzUyNjYwMSwicGF0aCI6Ii8xMTEzNTgzMTEvMzU2NTA4ODc4LWQyNWEwMGVlLTk4M2MtNDhkOC1iOGViLTY1MDZlMTg2Y2JmYS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODEzJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgxM1QwNTIzMjFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zNDlhNjRiNGY2MWYzNDJjYTI3Y2FjNjg5MjI2M2NmZDI2MDc1M2NiNTU2MmZlMTVlOWY2OWQxN2U0ODE0Mzk1JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.US564l2tRBtKtS6d-wpMQ7am-z_Ezr3zL6P4wUXOyGA)
![](https://private-user-images.githubusercontent.com/111358311/356508730-14c103be-859c-4d80-b6c2-5032f118bc08.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM1MjY5MDEsIm5iZiI6MTcyMzUyNjYwMSwicGF0aCI6Ii8xMTEzNTgzMTEvMzU2NTA4NzMwLTE0YzEwM2JlLTg1OWMtNGQ4MC1iNmMyLTUwMzJmMTE4YmMwOC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODEzJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgxM1QwNTIzMjFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zMGQyMWQ5Mjc1MDJhMTQ3Mzc4MmMwYWRhYTAwOTU5ZDUzZmIwNzgwYzllOTk1YjY5Y2EyODZjODdiOTMwYzY5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.b0TG0VPxo8_GAAYANhFTdZaXgA9aqU9KVyCKwdnEuBw)