Use this file to discover all available pages before exploring further.
The LogiMath frontend is a Python desktop application built with Flet, a framework that renders Flutter widgets from Python code. The entry point is src/FrontEnd/mainApp.py, which defines the LogiMathApp class. It opens a 400×750 px window, manages the current user in memory, and exposes a navigation dictionary that each view uses to trigger transitions without coupling views to one another.
LogiMathApp owns the authenticated user state (current_user, current_user_id) and builds a navigate dictionary that maps route names to callables. Each callable clears the page and renders the appropriate view.
The navigation dictionary pattern keeps each view decoupled: a view receives the dictionary and calls navigate["home"]() to transition without importing sibling views directly.
The application has three views, each defined as a plain function that returns an ft.Column.
login_view
Collects a username and password. On submit, calls set_user to store the user in the app state, then navigates to home. Login is currently simulated — no backend call is made.
register_view
Collects name, email, and password. Calls create_user from api_services.py and displays the result status. On success, the user can return to login.
home_view
Calls get_quizzes on mount and renders each quiz as an ElevatedButton in a scrollable ListView. Displays a count of found quizzes and provides a logout button.
API_BASE_URL is hardcoded to http://localhost:8000. When running the frontend against a containerised backend, update this value or expose it through an environment variable.
The repository includes a buildozer.spec file that configures the Buildozer toolchain to compile the Flet application into an Android APK. Run buildozer android debug from src/FrontEnd/ to produce the APK.