Task- Flutter Mobile Developer

Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

Task: Attendance Tracking App with Fingerprint Authentication

*Description:*
Develop a simple *Flutter-based Attendance Tracking App* that enables users to log
their attendance (check-in and check-out) securely using *Fingerprint
Authentication. The app will store attendance data locally using **SQLite* and
provide reminders for users to mark their attendance.

---

* ###Features*

.1* ####Login Screen*


*Functionality*:
Users log in using a *username* and *password* (stored securely in the local
database).
After the initial login, users stay logged in unless they explicitly log out or reinstall
the app.
Enable *Fingerprint Authentication* as an optional method for login after successful
initial access.

.2* ####Attendance Tracking*


*Main Features*:
A screen with two buttons:
*Check-In*: For logging attendance.
*Check-Out*: For marking end-of-day attendance.
Attendance logs must capture *date and time* accurately and save them in the local
database.
Display attendance logs in a *table format*, showing check-in and check-out records
for each day.
Restrict attendance to one *check-in and check-out* per day.

.3* ####Background Service*


*Reminder Notifications*:
Implement a *background service* that sends daily reminders to mark attendance.
Default reminder time is *8:00 AM*, but users can modify the reminder time via app
settings.
Notifications must work even when the app is closed or not running in the
foreground.

.4* ####Local Database*


*Storage*:
Use *SQLite* to store user data and attendance logs.
Store information such as:
Username
Date and time of attendance (check-in/check-out).

.5* ####User-Friendly UI*


*Design*:
Create a *simple and intuitive interface*.
Use either *Material Design* (Android) or *Cupertino Design* (iOS) to align with the
device’s platform aesthetics.

.6* ####Fingerprint Authentication*


*Mandatory Authentication*:
Use Fingerprint Authentication to confirm attendance actions (check-in/check-out).
Ensure smooth and secure authentication.

---

* ###Requirements*
The app must be free of bugs and work seamlessly on both *Android* and *iOS*
devices.
Use *Provider* or *Bloc* for state management.
Write clean, maintainable code with detailed *comments*.

---

* ###Submission Deadline*
Estimated work hours: *20 hours*.
Final submission: *Sunday, January 26, 2025, at 10:00 AM*.

---

* ###Bonus Features (Optional)*


*Performance Optimization*:
Use *Hive* instead of SQLite for improved performance.
Implement *lazy loading* for attendance logs to optimize memory usage.
Apply *caching mechanisms* for smoother user experience.

*Advanced UI Enhancements*:
Design an elegant and modern UI using *Flutter Animations*.

*Analytics and Reporting*:


Add daily/weekly reports summarizing attendance statistics.

---

* ###Performance and Best Practices*

* ####Performance Optimization*
Use efficient *data structures* and *algorithms* to improve app speed.
Implement *lazy loading* in the attendance log to reduce memory consumption.
Use *caching* to reduce database calls and improve app responsiveness.

* ####Design Patterns*
Apply a suitable *mobile design pattern*, such as:
*Model-View-Controller (MVC)*
*Model-View-Presenter (MVP)*
*Model-View-ViewModel (MVVM)*
Document the chosen design pattern and justify its use.

* ####State Management*
Use one of the following state management solutions:
*Provider*
*Bloc*
Include documentation on how state is managed.

* ####Special Cases*
Ensure the background service works correctly even after the device restarts.
Optimize battery and memory usage for background services.
Handle potential errors, such as:
*Internet connectivity issues*.
*Fingerprint authentication failure*.

---
* ###Suggested Tools*
*Flutter*: For cross-platform development.
*Dart*: Programming language.
*Workmanager* or *flutter_background_service*: For background services.
*flutter_local_notifications*: To manage notifications.
*SharedPreferences* or *Hive*: For local storage.
*Provider* or *Bloc*: For state management.

---

* ###Evaluation Criteria*
*Code Quality*:
Clean, organized, and maintainable code with best practices.
*Functionality*:
Reliable performance of login, attendance tracking, and fingerprint authentication.
*Background Service*:
Accurate and consistent reminder notifications.
*UI/UX Design*:
User-friendly and visually appealing design.
*Error Handling*:
Effective management of errors and edge cases.
*Documentation*:
Clear and comprehensive documentation.

By incorporating these structured points and optional enhancements, the app will
stand out for both functionality and performance.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy