So, this is for a big college project that I am trying to create a website with the player being able to login, play with an engine (which would run locally on a team mate's PC or a server) then display the output, let the player play moves and again communicate the moves to the engine, and get engine's output, and display them in a browser.
This is how I thought it would be : The user plays a move -> the move response gets displayed locally ->Goes to the engine as an input to the wrapper function via an API -> Engine plays move -> Gets displayed at the user's endpoint and so on.
I thought about using Python-chess to basically create a wrapper function for the chess engine, that my team has created, so as to get the best moves, the current FEN and the like.
Next, I was thinking about using Chess.js and chessboard.js/chessboard3.js to display the basic moves and let the players play.
But now, I am not able to think about how to create a communication bridge between the engine stored locally as an '.exe' file, (with a python-chess wrapper) and the web browser. I am not able to think about how I am going to go about writing an API. The best I could think was just using the Flask framework that would get the new moves from a Firebase database, where the user's move would be stored and logged. Similarly, the server PC with the engine would play a move, and that would be stored in the Firebase database, and be again, displayed at the client side.
The client side handling would be done by the Chess Libraries like chess.js, chessboard.js, and the server side would be done by mostly python, python-chess, and some other Firebase-oriented libraries for communication.
I really need some help to figure this out as I really am new to designing API's and it's very obscure to me. This was the closest I could think, but I know that the whole fetch and retrieve calls to the Firebase DB would take a lot of time, and throughput.
Thanks everyone!