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 appchessLogic/
: 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.