A Flutter app demonstrating development skills for the PNDLM assessment project.
Live Demo: https://pndlm-assessment.web.app/
Test account:
- Username: emilys
- Password: emilyspass
This project follows the instructions provided in the pndlm/clockapp GitHub repository and aligns with the provided Figma design to meet all assessment requirements.
For a detailed side-by-side comparison of the design and implementation, view the Figma link.
- Built with Flutter 3.29.0.
- State management and dependency injection with Riverpod.
- Manage widget lifecycle and state with flutter_hooks.
- Network requests with dio and custom interceptors for authorization and token refresh.
- Routing and authentication redirection with go_router.
- Local storage with shared_preferences.
- Securely storing authentication tokens using flutter_secure_storage.
- Immutable data models and JSON serialization using built_value.
- Validate account input for a valid email format, phone number, or username, and ensure password meets minimum length requirements.
- Draw scalable clocks with CustomPainter and use Riverpod to reduce unnecessary rebuilds when the clocks tick.
- Support accurate timezone conversion using the timezone package.
- Custom app theme with consistent colors, typography, and input/checkbox styling.
- Automated deployment to Firebase Hosting via GitHub Actions.
You can search for // !
in the codebase to find code explanations.
- Remove
#
from URL - Use grid layout to arrange clocks in Clocks Screen