WorkWise is a job listing mobile application built with React Native and Expo. It allows users to browse job listings, view job details, and bookmark jobs for offline access. The app features a bottom navigation UI with "Jobs" and "Bookmarks" sections.
- Bottom Navigation: Two main sections - Jobs and Bookmarks.
- Infinite Scroll: The Jobs screen fetches job data continuously as the user scrolls.
- Job Details: Clicking on a job card opens a detailed view.
- Bookmarking: Users can bookmark jobs for later viewing.
- Offline Support: Bookmarked jobs are stored in local storage for offline access.
- State Management: Handles loading, error, and empty states appropriately.
- APK Link: Download Here
- App Walkthrough: Watch Here
- Framework: React Native (Expo)
- State Management: Redux Toolkit
- Navigation: React Navigation (Bottom Tabs)
- Data Storage: Async Storage (for bookmarks)
- UI Styling: Tailwind CSS & NativeWind
- Clone the repository:
git clone https://github.com/yourusername/workwise.git cd workwise - Install dependencies:
npm install
- Start the development server:
npm start
- To run on Android:
npm run android - To run on iOS:
npm run ios - To run on Web:
npm run web
- To run on Android:
workwise/
├── app/ # Application screens & navigation
│ ├── (main)/ # Main application screens
│ │ ├── jobDetails.tsx # Job details screen
│ ├── (tabs)/ # Tab navigation screens
│ │ ├── _layout.tsx # Layout for tabs
│ │ ├── bookmark.tsx # Bookmarks screen
│ │ ├── index.tsx # Main jobs screen
│ ├── _layout.tsx # Root layout
│ ├── +not-found.tsx # 404 screen
├── assets/ # Static assets (fonts, images)
├── components/ # Reusable UI components
├── constants/ # Constants & dummy data
│ ├── Colors.ts # Color theme constants
│ ├── dummy.ts # Dummy data for testing
├── hooks/ # Custom React hooks
├── reduxStore/ # Redux store setup
│ ├── slices/ # Redux slices
│ │ ├── bookmarksSlice.ts # Bookmark state management
│ │ ├── JobsSlice.ts # Job listings state management
│ ├── index.ts # Root Redux store configuration
├── scripts/ # Utility scripts
The app fetches job listings via an external API and displays job details including:
- Title
- Location
- Salary
- Phone Contact
- Images
- Job Type
- Phone Number
- more
- Redux Toolkit is used for managing application state.
- Redux Persist ensures bookmarked jobs remain saved even after app restarts.
{
"@expo/vector-icons": "^14.0.2",
"@react-native-async-storage/async-storage": "^2.1.1",
"@react-navigation/bottom-tabs": "^7.2.0",
"@react-navigation/native": "^7.0.14",
"@reduxjs/toolkit": "^2.5.1",
"expo": "~52.0.33",
"react-native": "0.76.7",
"react-redux": "^9.2.0",
"redux-persist": "^6.0.0",
"tailwindcss": "^3.4.17"
}- Fork the repository.
- Create a new feature branch:
git checkout -b feature-name - Commit your changes:
git commit -m "Add feature" - Push to the branch:
git push origin feature-name - Open a Pull Request.
This project is licensed under the MIT License.





