# Aavishkar app **Version 3.0** This app is being developed by the GNU linux users group exclusively for the aavishkaar fest to be held at NIT durgapur. ## Roadmap - App will be implemented on BloC pattern - We will move our backend from google cloud (Firebase) to Aws. - Backend will be developed using serverless technlogy(Lambda). Language will be Node.js ## Features - Unified login experience (Google, Facebook, Email & Password, Apple) - Push notifications on events. - Forum for discussion. - Games to earn eurokoins and spend in the fest. - Best Photo of the Fest contest. ## Eurokoins - Everyone will given a free 100 eurokoins. - Every referral will grant them 25 eurokoins. - One can earn and spend eurokoins in the games section. - Everyday the Photo of the day winner will win 1000 eurokoins. - They can only be convertible into coupons and non-convertible into any form of assets or cash. - They will be mined only one time during sign up of users. - The number of eurokoins is fixed to the number of users. - Any form on prizes paying eurokoins need to be funded from other eurokoins wallets, due to limitations of non-mining of eurokoins. - **Every eurokoin earned is every eurokoin deducted** (Except during sign up of users.) ## Games Zone ### Dice and Box This is a two player luck based board game, where a player will be provided to roll two dice and try to match a number provided on a wooden box. Player having highest number of matches among five boxes wins the game and earn double amount of eurokoin cashed in for the table. ## Login Systems - ![Sign in with Apple](https://developer.apple.com/design/human-interface-guidelines/sign-in-with-apple/images/apple-id-sign-in-with_2x.png =200x50) - ![Sign in with Google](https://developers.google.com/identity/images/btn_google_signin_dark_normal_web.png =200x50) - ![Sign in with Facebook](https://scontent.fccu11-1.fna.fbcdn.net/v/t39.2365-6/17639236_1785253958471956_282550797298827264_n.png?_nc_cat=105&_nc_ohc=ZDSP9rw6-MMAQmF1_3BK5t-5OVcWcfCT0MdO3fup7t-huNCz8CpnVOTeg&_nc_ht=scontent.fccu11-1.fna&oh=b35bb3a0dc4369820a131b3579693379&oe=5E66C4EA =200x50) - Email and Password ## WebSocket Implementation We need to websocket to provide a constant realtime connection between the client and the server so that they can constantly get update on the score, other player move. - GET /session - POST /session - PUT /session - DELETE /session ``` class Session { String id; String gameId; DateTime startTime; PlayerSession player1; PlayerSession player2; } class PlayerSession { String playerId; int currentScore; GameObjects[] moves; } ``` ### PUT /<gameid>/move - userId - moveObject ### GET /<sessionId> - Return sessionData of the game