diff --git a/.husky/commit-msg b/.husky/commit-msg new file mode 100644 index 0000000..e4ce4a5 --- /dev/null +++ b/.husky/commit-msg @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +npx commitlint --edit "$1" diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 0000000..6dcc026 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,5 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +echo "๐Ÿ” Running lint-staged..." +npx lint-staged diff --git a/.husky/pre-push b/.husky/pre-push new file mode 100644 index 0000000..cebdd26 --- /dev/null +++ b/.husky/pre-push @@ -0,0 +1,5 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +echo "๐Ÿงช Running tests before push..." +npm run test diff --git a/README.md b/README.md index 362267e..02e882a 100644 --- a/README.md +++ b/README.md @@ -16,10 +16,13 @@ React Native Paper React Native Chart Kit + React Router + React Native Vector Icons Supabase PostgreSQL + WebSockets Docker @@ -39,6 +42,7 @@ Babel Prettier ESLint + Husky

@@ -143,16 +147,25 @@ I hope its name and branding convey a sense of connectivity and organization, wi Task Manager App - Web

-### Screen Recordings (GIFs) +### Screen Recordings (GIF)

Task Manager App - iOS Task Manager App - Android

+### Realtime Synchronization Demo + +

+ Task Manager App - Realtime Synchronization +

+ > [!IMPORTANT] > 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! +> [!NOTE] +> My apologies for the low quality of the GIFs - they were converted from high-resolution videos to reduce file size, which resulted in great losses of quality. The app looks much better in real life, especially on mobile devices! + ## Features ### Task Management @@ -198,6 +211,8 @@ I hope its name and branding convey a sense of connectivity and organization, wi - **Splash Screen:** Custom splash screen with app name and slogan. - **Redirection:** Automatically redirects to the home screen after the splash screen (3 seconds). +_...and many more features!_ + ## Technical Stack & Libraries TaskNexus is built using a modern tech stack that includes both core and third-party libraries to enhance functionality and user experience. Here are the key components: @@ -231,15 +246,20 @@ TaskNexus is built using a modern tech stack that includes both core and third-p - **React Native Draggable FlatList:** Enables drag-and-drop reordering of tasks. - **React Native DateTime Picker:** Provides a user-friendly date and time selection interface. - **Prettier:** Maintains code quality and consistent formatting. -- **Docker:** Containerizes the React Native app for easier deployment and testing. +- **Husky:** Ensures code quality by running Prettier and ESLint before commits. ### **Other:** +- **Docker:** Containerizes the React Native app for easier deployment and testing. - **Jest & React Testing Library:** For unit and integration testing of components and functionality. - **JSDoc & TypeScript Definitions:** Documented code for better understanding and type safety. - **Google Fonts:** Includes custom Google fonts (Roboto) and images for branding. - **Shell Scripts:** Simplify common tasks with custom shell scripts. - **GitHub Actions:** CI/CD pipeline for automated testing and deployment. +- **Makefile:** Provides a simple interface for running common commands. +- **Shell Scripts:** Includes various shell scripts for common tasks like starting the app, formatting code, and resetting the project state. +- **Vercel:** Used for hosting the web version of the app, providing a fast and reliable deployment platform. +- **GitHub Container Registry:** Hosts the Docker image for the app, allowing easy access and deployment. ## Installation & Setup @@ -301,6 +321,7 @@ Alternatively, you can use the Expo CLI directly: npx expo start ``` +> [!TIP] > Note: You can also use the `-c` flag to clear the cache and start fresh if needed: `npx expo start -c`. Then: @@ -308,7 +329,8 @@ Then: - Open the app on your device using the Expo Go app, or - Use an Android/iOS simulator (remember to press `a` or `i` in the terminal to open the app on Android/iOS, respectively, with the simulator/emulator running), or - Open the project in a web browser for a quick preview (remember to press `w` in the terminal, it will then open a new tab in your default browser). - > Note: The web version may not display correctly on larger screens. Also, some functionalities, like drag-and-drop, date picker, time picker, etc. may not work as expected on the web since they are designed for mobile devices. +> [!IMPORTANT] +> Note: The web version may not display correctly on larger screens. Also, some functionalities, like drag-and-drop, date picker, time picker, etc. may not work as expected on the web since they are designed for mobile devices. - Enjoy managing your tasks with TaskNexus! ๐Ÿš€ ## Usage Instructions diff --git a/img/sync.gif b/img/sync.gif new file mode 100644 index 0000000..b64fd21 Binary files /dev/null and b/img/sync.gif differ