MyDailyTasks is a React Native Expo application designed to help users manage their daily tasks with a clean, mobile-first interface. The app supports authentication, task creation, status tracking, and profile management.
- User Authentication: Sign in and sign up screens with form validation and remote API integration.
- Task Management: Create, edit, and delete daily tasks locally using AsyncStorage.
- Task Status: Track tasks with status categories: Pending, In Progress, and Completed.
- Profile Management: View and update profile information, including profile photo and city selection.
- Local Data Persistence: Tasks and user profile are stored locally for persistent app usage.
- Responsive UI: Clean layout using React Native components, modal dialogs, and dropdowns.
Splash- Initial loading screen.SignIn- Login screen with email, password, and remember me toggle.SignUp- Registration screen with profile image upload and city selection.Home- Task dashboard, task list, and add/edit modal.Profile- User profile details, edit profile, and logout.
- Expo
- React Native
- TypeScript
- React Navigation
- AsyncStorage
- Expo Image Picker
- React Native Modal
- React Native Dropdown Picker
- React Native Alert Notification
- Clone the repository:
git clone <repo-url>
cd "MyDailyTasks"- Install dependencies:
npm install- Start the Expo development server:
npm startIf you need to expose the Expo development server over the public internet, you can use ngrok to create a secure tunnel.
- Install
ngrokfrom https://ngrok.com and add it to your systemPATH. - Run the Expo server:
npm start- Open a new terminal and start ngrok on the Expo port (usually
19000):
ngrok http 19000- Copy the generated
https://...ngrok-free.appURL from the ngrok output. - Update the
PUBLIC_URLconstant in the app screens that use remote API endpoints:
src/screens/Home.tsxsrc/screens/Profile.tsxsrc/screens/SignIn.tsxsrc/screens/SignUp.tsx
Change the PUBLIC_URL value to the ngrok URL, for example:
const PUBLIC_URL = "https://xxxxxx.ngrok-free.app";- Restart the app and verify the API requests use the new ngrok URL.
Note: ngrok URLs typically change each time you restart the tunnel, so update
PUBLIC_URLwhenever you restart ngrok.
npm start- Start Expo in development mode.npm run android- Launch the app on an Android device or emulator.npm run ios- Launch the app on an iOS device or simulator.npm run web- Run the app in a web browser.
App.tsx- Main app navigator and screen registration.app.json- Expo configuration.src/Splash.tsx- Splash screen implementation.src/screens/Home.tsx- Main task management screen with AsyncStorage.src/screens/Profile.tsx- Profile editing and remote data integration.src/screens/SignIn.tsx- Sign in screen and authentication flow.src/screens/SignUp.tsx- Sign up screen and account creation.
- Profile and city data loading relies on a remote API endpoint configured in the app as
PUBLIC_URL. - Task data is stored locally per user and filtered by user email.
- The app currently uses local storage for tasks and remote endpoints for authentication and profile updates.
Feel free to submit issues or pull requests to improve task management, authentication flow, or user experience.
This project is private and intended for personal use.