Commit Graph

22 Commits

Author SHA1 Message Date
Moon Patel 1d9f2cc65a file restructuring 2023-07-03 16:29:09 +05:30
Moon Patel c25d5bcca5 Styles for the play page fixed. The styles are now responsive and
the web application can now also be viewed on mobile
2023-07-03 16:27:16 +05:30
Moon Patel 4853e5edd9 THIS IS A MAJOR MILESTONE
Socket connection re-implemented. Everything is working fine now.
All thats left to do is to make the app robust and handle some edge cases.
TODO
- The friends list is maybe hardcoded or whatever I dont know, but the problem is
  it shows the same username no matter who the signed in user is. I need to fix that.
- Whenever the pawn reaches to tha last square for promotion an 'Invalid move' error is
  thrown by the Chess class. Need to fix that too.
- Need to disable the chessboard (so user cannot make any moves) until the opponent has joined the game.
- Set timers for the game.
- Need to show the loading states in various places in the app.
- Improve the backend such that a user cannot create more than one room at a time.
- Remove hardcoded values from various places.
- Make the app responsive. The UI is good on desktop but it is very bad on mobile.
- Add a feature to search and add friends.
- Destroying the rooms when the match ends and set timers for auto destruction after a certain time.
- Need some logic to save games in the history.
- Add some tests.
2023-07-03 01:12:47 +05:30
Moon Patel 40acca7dd1 Challenging and room creating working now 2023-07-02 19:21:36 +05:30
Moon Patel dd5f3069d0 JWT auth token expiresIn option removed 2023-07-02 19:07:35 +05:30
Moon Patel 490bd539fe new api endpoint create - /api/user/:username/challenges
returns a challenges sent to the current user by other users
2023-07-02 19:03:57 +05:30
Moon Patel 10a943e444 New component Challenges.jsx added which lists all the challenges
sent to the user and allow the user to accept or decline it.
TODO:
- Add API for fetching challenges.
- Implement onClick for Decline button in Challenges component
2023-07-02 18:45:08 +05:30
Moon Patel cfd207e41f minor import changes 2023-07-02 17:56:28 +05:30
Moon Patel 9ec5021dea Logic for connecting is changed in frontend starting from this commit
New algorithm:
- User sends a request to create a room in the backend
- roomID is generated in the backend
- server responds with a roomID
- user stores it in the localStorage and is redirected to the game page

Changes made in this commit
Previously there was no api endpoint for room creation. Now the API is
utilized by the ChallengeFriend.jsx component as per the above algorithm
2023-07-02 17:51:53 +05:30
Moon Patel acde1cb44d fixed: user data cleanup from localStorage after logout 2023-07-02 17:15:35 +05:30
Moon Patel b026837184 TODO list for apis added 2023-07-02 16:10:15 +05:30
Moon Patel 6869a87cfe room creation and joining logic re-implemented 2023-07-02 15:53:35 +05:30
Moon Patel ea116e7f6a create room api added 2023-07-02 15:49:30 +05:30
Moon Patel bacc794ec5 room creation and join logic improved 2023-07-02 14:50:35 +05:30
Moon Patel ceb6a6993c socket implementation and multiplayer feature added in frontend 2023-07-02 14:45:49 +05:30
Moon Patel 16326766b7 refactoring - chess logic used from third party package 2023-07-01 03:22:59 +05:30
Moon Patel b45cc5194c drag and drop play implemented, audio integrated 2023-06-29 23:51:54 +05:30
Moon Patel 0a06890b81 socket connection established and chess logic imported from old codebase 2023-06-29 02:03:06 +05:30
Moon Patel 8e91427c1c new api /api/user/:username/friends - get friends list 2023-06-27 20:31:47 +05:30
Moon Patel 02b302e2c8 authentication implemented 2023-06-27 18:28:24 +05:30
Moon Patel b3fd3ade5c backend integration 2023-06-27 15:44:29 +05:30
Moon Patel 8edd05e020 basic ui for frontend 2023-06-27 15:43:40 +05:30