You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+74-3Lines changed: 74 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,7 @@
1
1
# TaskNexus - Task Manager React Native App 📱
2
2
3
+
**Time to get organized!** TaskNexus is a modern, cross-platform task management app built with React Native, Expo, and TypeScript. It allows users to efficiently manage their daily tasks with features like task addition, completion, deletion, drag-and-drop reordering, and interactive statistics visualization.
> The above GIFs and images may not fully represent the app's current state, as they were recorded during development. The app has since been updated with new features and improvements. Please clone the repository and run the app to see the latest version in action!
135
+
131
136
## Features
132
137
133
138
### Task Management
134
139
135
140
-**Add, Update & Delete Tasks:** Easily manage your daily tasks through an interactive interface.
136
141
-**Drag-and-Drop Reordering:** Rearrange tasks using a smooth, touch-friendly drag-and-drop mechanism.
137
142
-**Global State Management:** Uses React Context to manage task state across the app for consistent data handling.
143
+
-**Task Completion Toggle:** Mark tasks as complete or incomplete with a simple checkbox interaction.
144
+
-**Task Deletion:** Remove tasks with a dedicated delete action, ensuring a clean task list.
145
+
146
+
### Cloud Synchronization
147
+
148
+
-**Supabase Integration:** Utilizes Supabase for real-time data synchronization, ensuring tasks are always up-to-date across devices.
149
+
-**User Authentication:** Supports user authentication with Supabase, allowing users to securely manage their tasks.
150
+
-**Automatic Realtime Synchronization:** Changes made to tasks are instantly reflected across all devices, providing a seamless user experience.
151
+
-**PostgreSQL Database:** Stores tasks in a PostgreSQL database, providing robust data management and querying capabilities.
152
+
-**Backup Option:** Includes a Ruby on Rails backend as an optional backup for task management, ensuring data persistence and reliability.
153
+
-**Manual Refresh:** Users can manually refresh the task list if they wish to ensure they have the latest data from the server.
138
154
139
155
### Statistics Visualization
140
156
141
157
-**Pie Chart:** Visualizes the ratio of completed vs. incomplete tasks.
142
158
-**Bar Chart:** Compares overdue and upcoming tasks with wider, closely spaced bars.
143
159
-**Line Chart:** Plots tasks over time (by month), ensuring continuity even if only a single month is available.
144
160
-**Transparent & Themed Charts:** All charts feature transparent backgrounds and adjust seamlessly to the current theme.
161
+
-**Immediate Data Updates:** Charts update in real-time as tasks are added, completed, or deleted.
145
162
146
163
### Theme & UI
147
164
@@ -175,6 +192,14 @@ TaskNexus is built using a modern tech stack that includes both core and third-p
175
192
-**React Native Reanimated:** Powers animations and transitions for a fluid user experience.
176
193
-**React Native Safe Area:** Ensures proper layout and spacing on devices with notches or rounded corners.
177
194
195
+
### **Backend & Data:**
196
+
197
+
-**Supabase:** Provides real-time database, authentication, and storage services.
198
+
-**PostgreSQL:** The underlying database for storing tasks and user data.
199
+
-**Ruby on Rails (Optional):** A backup backend for task management, providing an alternative data persistence layer.
200
+
-**Docker:** Containerization for the Ruby backend, allowing easy deployment and management.
201
+
-**AWS:** Used for hosting the Ruby backend and managing cloud resources.
202
+
178
203
### **Third-Party Dependencies:**
179
204
180
205
-**Expo:** Provides a robust development workflow and build process.
@@ -186,12 +211,15 @@ TaskNexus is built using a modern tech stack that includes both core and third-p
186
211
-**React Native Draggable FlatList:** Enables drag-and-drop reordering of tasks.
187
212
-**React Native DateTime Picker:** Provides a user-friendly date and time selection interface.
188
213
-**Prettier:** Maintains code quality and consistent formatting.
214
+
-**Docker:** Containerizes the React Native app for easier deployment and testing.
189
215
190
216
### **Other:**
191
217
218
+
-**Jest & React Testing Library:** For unit and integration testing of components and functionality.
192
219
-**JSDoc & TypeScript Definitions:** Documented code for better understanding and type safety.
193
220
-**Google Fonts:** Includes custom Google fonts (Roboto) and images for branding.
194
221
-**Shell Scripts:** Simplify common tasks with custom shell scripts.
222
+
-**GitHub Actions:** CI/CD pipeline for automated testing and deployment.
195
223
196
224
## Installation & Setup
197
225
@@ -203,8 +231,18 @@ TaskNexus is built using a modern tech stack that includes both core and third-p
203
231
```bash
204
232
npm install -g expo-cli
205
233
```
206
-
- Android/iOS Emulator or Physical Device: For testing on mobile platforms.
234
+
-**Android/iOS Emulator or Physical Device:** For testing on mobile platforms.
207
235
- This is required for testing the app on Android/iOS devices. Alternatively, you can use the web version for a quick preview.
236
+
-**Supabase Account:** For cloud synchronization and user authentication.
237
+
- Sign up for a free account at [Supabase](https://supabase.io/) and create a new project.
238
+
- Set up the PostgreSQL database and configure the necessary tables for tasks.
239
+
- Create a `.env` file in the root directory of the project with your Supabase credentials:
│ └── types.ts # TypeScript type definitions for the project
326
384
├── assets
327
385
│ ├── fonts # Custom fonts for the app (Roboto)
328
386
│ └── images # Images used in the app
387
+
├── aws # AWS configuration files
388
+
│ ├── main.tf # Terraform configuration for AWS resources
389
+
│ ├── variables.tf # Variables for AWS configuration
390
+
│ ├── outputs.tf # Outputs for AWS configuration
391
+
│ └── lambda
392
+
│ └── handler.js # Lambda function handler for AWS
393
+
├── __tests__ # Test files for the project
394
+
├── __mocks__ # Mock files for testing
329
395
├── img # Screenshots and GIFs for the README
330
396
└── shell # Shell scripts for common tasks
331
397
├── run-platform.sh # Script to run the app on a specific platform
332
398
├── format.sh # Script to format the project code
333
399
├── start.sh # Script to start the app
334
400
├── reset.sh # Script to reset the project state
335
401
└── update.sh # Script to update project dependencies
402
+
403
+
(...and more files not listed here...)
336
404
```
337
405
338
406
## Scripts & Tools
@@ -358,11 +426,14 @@ Task-Manager-ReactNative
358
426
359
427
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for more details.
360
428
429
+
> [!CAUTION]
430
+
> This project is for educational purposes only and is not intended for production use. It is a personal project to demonstrate my skills in React Native, Expo, and TypeScript. Please be sure to credit the original author if you use any part of this code in your own projects, regardless of use case.
431
+
361
432
## Contact
362
433
363
434
For any questions, feedback, or suggestions, please contact:
0 commit comments