๐ญ Iโm currently working on tb2d, a free to play online multiplayer competitive 2D shooter game. Join the tb2d discord server to access the open beta: https://discord.gg/6NzkgQSwzq
Export database to a backup directory one directory above web root, have this export run in a cron job daily. When server starts check to see if they are any .sql files in the backup directory older then 60 days and delete them.
Integration of an automation build tool, investigate build tool options in Golang and try either Robo or Godo.
The build tool should check to see if all the third party packages are in the right directory, if not it calls go get to fetch the package. Build tool should also check if all the environment variables are properly set up the Linux production environment. If its Windows development environment it should not change any of its environment variables.
Zip or archive database export file to save disk space. When importing database make sure to check if there is any GoChess.zip files, if they are unzip and then import the GoChess.sql file.
Allow arrows to be draw on chessboard in setup mode on shift right click. Allow squares to be red on one right click and green on two right clicks. Third click resets square color to normal. Add a new page for board setup mode. Allow a clear button and ability to set pieces anywhere on the board by click/drag to board.
Import database gochess from SQL file in a certain directory if no gochess database exists, if no no proper SQL file can be found import a template database with the proper empty tables by importing a SQL file
Allow players to change board color instead of using default by manipulating CSS. Players can change the color of the chessboard in their settings page.
Pass in localhost or goplaychess.com through command line parsing to main.go and memberchess.js in the appropriate places so the production.py and development.py do not have to be run. Also don't forget to update configuration for supervisor to pass in correct command line arguments.
Make default constants configurable in JSON file so that if a parameter needs to be changed it can be modified in the JSON file without having to recompile the application again. An example of a constant that could be configured would be the 30 days in gostuff.RemoveOldGames(30)
Add ability to have server analyze database info such as all users who have same IP address and group users for display to easily see who could possible be the same person. Use an IP lookup to map IP to country location and display percentage of each user from each country. Display statistics of browsers users are using, etc
Server should periodically diagnosis its CPU, memory, bandwidth load, etc to see if there are any issues and send emails/text messages to owner of its system status.
When a piece reaches 1st or 8th rank it prompts for a piece promotion. Add a check to make sure the piece that is moving from the 7th to 8th rank or 2nd to 1st rank is a pawn only.
Allow players to review games on mobile device. Right now the next and back buttons when reviewing game are not visible so users can't review their finished chess games. Mobile devices are small so it may not be possible to fit any more buttons on a small screen.
Add more unit tests for chessVerify to test for illegal moves and Run the chessVerify through the first 500 grandmaster games in the DB to test for legal moves. This test will cover both false positives and false negatives.
Removed incorrect if pawn already moved logic then do not allow it to jump two squares, need to reimplement this logic. An example: Game ID 88 where h file pawn captures onto g file pawn and g6 pawn moves to g5 now g7 pawn can't move two squares even though it should be allowed