Smart Task Management with Location-Based Reminders
TaskPing is a sophisticated Android task management application that combines traditional to-do list functionality with innovative location-based reminders.
Never forget a task again — get notified when you're near a task location!
- Priority & Daily Tasks: Organize tasks by priority level and daily routines
- Intuitive UI: Clean, material design interface with smooth navigation
- Date-based Organization: View tasks by specific dates with an interactive date picker
- Geofencing Technology: Automatic reminders when you enter task locations
- Map Integration: Built-in map picker for precise location selection
- Google Places API: Smart location search and autocomplete
- Time-based Alarms: Scheduled reminders for important deadlines
- Location-based Notifications: Get pinged when near task locations
- Background Processing: Works seamlessly even when the app is closed
- Firebase Firestore: Real-time cloud synchronization
- Room Database: Full offline capability with local caching
- Auto-sync: Seamless background data synchronization
- Secure Authentication: Firebase Auth with email/password
- User Profiles: Personalized task statistics
- Onboarding Flow: Beautiful introduction to app features
- Language: Java
- Database: Room (Local), Firebase Firestore (Cloud)
- Location Services: Google Maps API, Geofencing API
- Authentication: Firebase Authentication
- Notifications: Android AlarmManager, WorkManager
- UI: Material Design Components, ViewPager2, Navigation Component
- Android Studio Arctic Fox or later
- Android SDK 24+ (minSdk 24)
- Google Maps API key
- Firebase project setup
git clone https://github.com/DMR3-code/Taskping.git
Create a local.properties
file in the root directory.
MAPS_API_KEY=your_google_maps_api_key_here
FIREBASE_API_KEY=your_firebase_api_key_here
- Create a Firebase project at Firebase Console
- Enable Authentication and Firestore
- Download google-services.json and place it in the app/ directory
./gradlew assembleDebug
Adding Tasks
- Tap "+ Add Task" from main screen
- Set title, description, and category (Priority/Daily)
- Select start and end dates
- Optional: Add location for geofencing reminders
- Save to create task with automatic reminders
Viewing Tasks
- Home Screen: Overview of today's priority and daily tasks
- Tasks Screen: Calendar view with date-based task filtering
- Task Details: Complete task information with location preview
Location Features
- Tap "Add Location" when creating tasks
- Use the map interface to pin exact locations
- Get automatic notifications when approaching task locations
app/
├── activities/ # Android Activities
├── adapters/ # RecyclerView Adapters
├── db/ # Database (Room, Repository)
├── fragments/ # UI Fragments
├── helpers/ # Utility classes
├── models/ # Data models
└── utils/ # Utility functions
res/
├── layout/ # XML layouts
├── drawable/ # Images and icons
├── values/ # Colors, strings, styles
└── font/ # Custom fonts
Required Permissions
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM"/>
<uses-permission android:name="android.permission.INTERNET"/>
Firebase Rules
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /tasks/{taskId} {
allow read, write: if request.auth != null && request.auth.uid == resource.data.userId;
allow create: if request.auth != null && request.auth.uid == request.resource.data.userId;
}
match /users/{userId} {
allow read, write: if request.auth != null && request.auth.uid == userId;
}
}
}
- Task categories and tags
- Recurring tasks functionality
- Task sharing and collaboration
- Advanced analytics and reports
- Wear OS integration
- Web dashboard companion
- Voice command support
We welcome contributions! Please feel free to submit pull requests, create issues, or suggest new features.
- Fork the project
- Create your feature branch (git checkout -b feature/AmazingFeature)
- Commit your changes (git commit -m 'Add some AmazingFeature')
- Push to the branch (git push origin feature/AmazingFeature)
- Open a Pull Request
- Google Maps Platform for location services
- Firebase for backend services
- Android Jetpack components
- Material Design guidelines
- If you have any questions or need help, please:
- Check the Issues page
- Create a new issue with a detailed description
- Contact the development team