Production CI

Folder structure

  • lib/: Contains all the code of the applicaction:
    • main.dart: Entry point of the app, it setups the general configurations.
    • components/: Contains all the specific components which are reused along all the code.
      • buttons/: Contains all the custom buttons used in the app
      • chessLogic/: Contains the core of the gameplay logic and all the elements that we visualize in game.
      • communications/: Contains the core of the API/Socket calls to the backend.
      • popups/: Contains all the different popups of the application.
      • visual/: Contains all the customizations in visual aspects like the theme colors.
      • data/: Contains all the classes/singletons which have information.
    • pages/: Contains all the screens code.
      • auth_pages: Contains the login, registry, password recover screens code.
      • game_pages: Contains the core gameplay screen code.
      • menus_pages: Contains all the intermediate screens between the login and the gameplay.
  • images/: Logos and chess pieces images.
  • pubspec.yaml: Dependencies of the application.
  • assets/: Icons and animations of the application.
  • fonts/: Fonts of the application.

How to run

flutter run

How to build apk

flutter build apk

Libraries

ai
Popup to select ai options when creating the game.
api
Contains all the API calls.
back
board
Contains the board data, checks the valid movements and starts the board.
bottom_bar
Page that holds the rest of the home pages.
competitive
Popup to select competitive options when searching the game.
convert_date
create_password
custom
Popup to select custom mode options when creating/joining the game.
custom_shape
Class that implements custom shapes.
customization_constants
delete
draw_dialog
Popup when a game ends in draw.
edit_profile
forgot_password
Page that allows the user to change a forgotten password.
game
Page that contains all the game.
game_data
get_elo
Functions that works around with the elo.
home
Page that displays the home when after login.
main
Page base for all the app.
manage_tournaments
manage_tournaments_data
Class that contains the data of a tournament.
my_flutter_app_icons
password_changed
Page that informs the user the sucessfull change of the password.
pieces
Contains all the classes of the chess pieces and its native movements.
played_games
Popup that lists all the played games.
pop_error
possible_draw
Popup when a player proposes draw.
possible_save
Popup when a player propose to save the game.
profile
Page that shows the profile info.
profile_data
Singleton that contains the userdata.
promotion
Popup when a pawn promotes.
ranking
Page that shows the ranking.
ranking_data
save_dialog
Popup when a game is saved.
saved_games
Popup that lists all the saved games.
screen_size
set_image_color
Function that acts as a image color filter.
signin
Page that allows the user to sign in.
signup
Page that allows the user to sign up.
socket_io
Contains all the gamesocket data and methods.
spectator
Popup to select spectator options when joining the game.
square
Widget that represents a single square of the board, it has all the movement logic.
startup
Page that shows up when starting the app.
timer
Widget that acts as a regressive timer.
tournament
Popup to select tournaments options when creating/joining the tournament.
tournament_node
tournament_tag
tournaments
winner_dialog
Popup when a game ends.