NAS is a Flutter-based mobile application designed to streamline job applications and management for workers in various service sectors (food service, cleaning, logistics, etc.). The app provides a complete workflow from registration to job approval, with real-time status tracking and automated processes.
This project was developed as part of the Gaza Sky Geeks training program, demonstrating proficiency in:
- β State Management (BLoC Pattern)
- β Local Database Storage (SQLite)
- β Remote API Integration (DummyJSON for notifications & Country Codes & Nationalities)
- β Authentication System
- β Clean Architecture
- β Media Handling (Image Picker)
- β Push Notifications (Firebase Cloud Messaging)
- Local Authentication with SQLite database
- User Registration with 10-step wizard:
- Personal information
- Job type selection
- Work hours & availability
- Payment details (CLIQ wallet)
- Document uploads (ID, personal photo)
- Emergency contacts
- Terms & conditions acceptance
- Remember Me functionality
- Password Recovery workflow
- 4 Job Categories:
- π New Jobs: Browse available job listings
- β³ Waiting: Track pending applications
- β Approved: View accepted jobs with location
β οΈ Violations: Monitor policy infractions
- Auto-Approval System: Applications automatically approved after 1 minute
- Real-time Status Updates: Jobs move between categories automatically
- Job Details View: Complete job information with requirements
- Cancellation Workflow: With warnings about rating impact
- Location Integration: Google Maps for job locations
- Push Notifications via Firebase Cloud Messaging
- Local Notifications for app events
- Notification Center with read/unread status
- Mark All as Read functionality
- Profile Management:
- Edit job types
- Modify working hours
- Update wallet number
- Change phone number
- Change password
- Account Deletion option
- Logout functionality
- RTL Support for Arabic language
- Custom Snackbars with animations
- Loading Indicators
- Error Handling with user-friendly messages
- Smooth Animations and transitions
- Responsive Design for various screen sizes
- BLoC Pattern for complex state management (jobs, notifications, violations)
- GetX for navigation and simple state
- ValueNotifier for local widget state
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
phone TEXT,
firstName TEXT,
fatherName TEXT,
grandFatherName TEXT,
familyName TEXT,
birthDate TEXT,
accountName TEXT,
departmentName TEXT,
accountNumber TEXT,
workHours TEXT,
selectedTasks TEXT,
acceptAlcohol INTEGER,
governorate TEXT,
district TEXT,
location TEXT,
nationalId TEXT,
nationality TEXT,
gender TEXT,
maritalStatus TEXT,
countryCode TEXT,
personalImage TEXT,
frontIdImage TEXT,
backIdImage TEXT,
password TEXT,
firstContact TEXT,
secondContact TEXT,
acceptedTerms TEXT,
token TEXT,
createdAt INTEGER
)CREATE TABLE jobs (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT,
day TEXT,
date TEXT,
startTime TEXT,
endTime TEXT,
description TEXT,
location TEXT,
salary TEXT,
requirements TEXT,
status TEXT,
appliedBy INTEGER,
isPending INTEGER,
createdAt INTEGER
)- Flutter SDK (3.x or higher)
- Dart SDK (3.x or higher)
- Android Studio / VS Code
- Firebase account (for notifications)
- Clone the repository
git clone https://github.com/Israa-e/nas_mobile_master.git
cd nas-app- Install dependencies
flutter pub get-
Configure Firebase
- Create a Firebase project
- Add Android/iOS apps
- Download
google-services.json(Android) andGoogleService-Info.plist(iOS) - Place them in the respective directories
-
Run the app
flutter runPhone: 0599123456
Password: 123456
Step 1: How did you hear about us?
Step 2: Select job types
Step 3: Choose available days & times
Step 4: Set working hours & payment details
Step 5: Enter full name & birth date
Step 6: Provide address & nationality
Step 7: Gender, marital status & phone
Step 8: Upload documents & set password
Step 9: Emergency contacts
Step 10: Accept terms & conditions
Browse New Jobs β View Details β Apply β
Auto-Approval (1 min) β Move to Approved β
Navigate to Location
View Pending/Approved Job β Click Cancel β
Warning Dialog β Confirm β
Job Returns to New (+ Violation Record)
- Auto-approval timer resets on app restart
- Background notifications may be delayed on iOS
- Image upload requires storage permissions
- Employer dashboard
- Real-time chat between workers and employers
- Rating and review system
- Payment integration
- Job recommendations based on user profile
- Calendar view for scheduled jobs
- Multi-language support (English)
- Dark mode theme
- IsraaElhalaby - Lead Developer - GitHub Profile
- Gaza Sky Geeks for the training program
- Code2Career initiative
- Flutter community for excellent packages
- Material Design and Cupertino for UI inspiration
- Email: israa00elhalby@gmail.com
Made with β€οΈ in Palestine π΅πΈ
Β© 2025 NAS App. All rights reserved.










