Build simple Iphone / Android app (Internet Schedule Manager) for managing Wifi and mobile data switch

Job ID: 38664193

Budget: $30 – $250 USD

Hello dear devs,,

Greetings of the day. How are you?

I am thinking of building a small app that makes it possible to switch your internet on your mobile on and off via a schedule. This involves a switch that switches your WiFi and mobile data off (and on again) based on a schedule.

I use a number of apps myself to control a number of smart appliances (heating, lighting, etc.) that have such a schedule functionality but I would like to have something like this to control the WiFi and mobile data switches on my phone.

So my my first question is whether it is possible to make such an app. I prever to have this app in IOS and Android so basically developed in React Native but this is not a must have for now.

Below you'll find some of the funtional en technical reqs that ChatGPT produced for me.

Thanks in advance for your response.

Kind regards,

Geordy

Functional Requirements for iPhone App: "Internet Schedule Manager"
1. User Interface (UI) and User Experience (UX) Requirements
• Home Screen (Overview of Schedules):
o Display a list of schedules (card-style layout) that the user has created.
o Each card should include:
 Schedule name (e.g., “Workdays”, “Weekend”, “Sleep Mode”).
 Start and end time displayed (e.g., “08:00 - 18:00”).
 Toggle button for quickly activating or deactivating the schedule.
 Edit and delete icons on each card to modify or remove schedules.
o Floating Action Button (FAB):
 A circular button with a "+" icon at the bottom of the screen to create new schedules.
• Create/Edit Schedule Screen:
o Input Fields:
 Text input for the schedule name.
 Two time selectors (start time and end time) using Apple's default time wheel.
 Weekday selection: Interactive buttons for selecting days of the week (Mon-Sun).
 Toggle to enable/disable internet traffic during specified times.
o Action Buttons:
 "Save" button with a prominent color (e.g., blue or green) to save the schedule.
 "Cancel" button for discarding changes.
• Settings Page:
o Accessible via a gear icon in the top-right corner of the home screen.
o Settings options should include:
 Push Notifications: Toggle to receive notifications when internet is enabled or disabled by a schedule.
 Advanced Options:
 Data Usage Monitor (see separate section below).
 App Exceptions: Select specific apps that should bypass the schedule (optional feature).
• Feedback and Notifications:
o Pop-up notifications:
 Show a small notification when a schedule activates or deactivates the internet (e.g., “Internet disabled by 'Sleep Mode' schedule”).
• General Visual Design:
o Minimalistic design with clean, modern UI.
o Color Palette: Neutral colors like light gray and white, with accents (blue or green) for active buttons and important actions.
o Typography: Use Apple's system font, San Francisco.
o Icons: Simple, line-style icons for editing, deleting, and toggling schedules.
________________________________________
Technical Requirements for App Developer
1. App Architecture
• Platform: Native iOS development using Swift and SwiftUI for building the user interface. Alternatively, UIKit can be used for more complex elements if necessary.
• Target iOS version: The app should support iOS 15 and later versions to ensure compatibility with a wide range of iPhone models.
• Core Data (or equivalent): Use Core Data or another persistent storage mechanism to save user-created schedules, preferences, and other settings.
• Network Control: Integration with iOS’s networking frameworks (e.g., NetworkExtension or NEHotspotConfiguration) to enable/disable internet access for the entire device based on user schedules.
2. Data Usage Monitor (Visual Requirement)
• UI for Data Monitor:
o A visual dashboard that displays the data usage over different time periods (hourly, daily, weekly, monthly).
o A graph (line or bar chart) that shows the amount of data used per period, with different colors to indicate active and inactive internet times.
o Allow the user to toggle between different views (hour/day/week/month).
• Data Collection:
o The app should collect data usage statistics by integrating with iOS’s built-in APIs for monitoring network traffic (e.g., NetworkStatistics or NetworkTrafficMonitor).
o Record both Wi-Fi and cellular data usage.
o Data should be logged at hourly intervals to enable real-time monitoring.
• Data Storage:
o Usage data should be stored locally using Core Data or another local storage solution, and aggregated for different time periods (hour/day/week/month).
o Data should be stored in a way that allows for efficient retrieval and display, particularly for rendering the charts in the dashboard.
3. Schedule Functionality
• Scheduling Framework:
o Use UNUserNotificationCenter to trigger local notifications when schedules activate/deactivate.
o Utilize iOS's built-in background tasks framework (BGTaskScheduler) to run background tasks that enable or disable internet access at specified times.
• Scheduler Logic:
o Schedules should support multiple time ranges for different days of the week.
o Schedules should be repeatable (e.g., every Monday to Friday).
o The app should have the ability to disable internet access system-wide (via Wi-Fi or cellular), though this might be limited by iOS’s permissions.
4. Notifications
• Push Notifications:
o Integrate with iOS’s notification system to notify the user when a schedule activates or deactivates the internet connection.
o Local notifications should be triggered when a scheduled time is reached, with the option for users to turn these notifications off in the settings.
5. Security and Privacy
• User Permissions:
o Request necessary permissions to monitor and control network traffic.
o Ensure that all data usage and scheduling information is stored locally on the device, with no external server storage to comply with privacy standards.
• Secure Network Access:
o Ensure that the app doesn’t interfere with critical system operations, and only disables internet as per the user’s configuration.
• App Sandbox Restrictions:
o Adhere to iOS’s strict sandboxing rules, ensuring that the app doesn't overstep its bounds (e.g., disabling internet for specific apps might not be permitted without app-specific exceptions).
________________________________________
Additional Considerations
• Localization: Support for multiple languages, starting with English and optionally Dutch, to make the app accessible to a wider audience.
• Battery Optimization: Ensure that background tasks (such as monitoring data usage and toggling internet access) are optimized for battery life.
• App Store Guidelines: Ensure compliance with Apple’s App Store guidelines regarding network control and user privacy.
This extended requirements list should help the developer understand the full scope of the project and implement both the core scheduling functionalities and the additional data monitoring dashboard effectively.