This repository consists of a modfied version of a mobile I made during my final year at University Centre Rotherham (UCR), it was created as part of a mobile application unit.
As part of the README file it will describe and explain the following sections:
- Purpose
- Core features
- Technologies used
- Getting started
- Contributing
- Project information
The overall purpose of this React-native mobile application is to allow users to add a nd track items in relatime through GPS tracking.
To enable tracking items will need to be added to the shopping list, once items are present background tracking will be enabled. With an item being present in a shopping list it will now be tracked, once an item is present in a shopping list it will be tracked. Now when an item is found you will be alerted through the use of a push notification.
For a full breakdown of the mobile application features checkout the core features breakdown below.
-
Clone the project to your development environment by using
git clone https://github.com/AlexMachin1997/Shopping-List-Assistant-With-Expo
-
Dependency installation
-
Issue
npm install -g expo-cli
to install the expo-cli tools required to run the mobile app -
Issue
npm install
to install all the core dependencies (See Technologies used section) -
Issue 'yarn install' to install all dependencies with yarn (Requires yarn to be configured)
-
-
Running the development enviroment:
- Go to the cloned repositories location in the terminal
- Run
expo start
(This will take a long time on the inital build, but the second time around it will take seconds) - The project and Expo dev tolls will then load. You have successfully setup the mobile development enviroment
- Expo
- Expo-Location
- Expo-permissions
- Expo-secure-store
- MomentJS
- Proptypes
- React
- React-Native
- React-Native-Maps
- React-native-onboarding-swiper
- React-native-paper
- React Navigation
- React-navigation-material-bottom-tabs
- ShortID
- Styled-components
If you find any problems while using the API, report them here, and I will address them as quick as I can.
If you would like to request features for future versions of the application again, please post them here. When posting ideas ensure the functionality is explained to provide any developers contributing to the project know what to implement.
- Create shopping lists
- Delete shopping lists
- Edit shopping list names
- Add items to shopping list
- Add user-friendly modals to show error, success and loading state
- Show error, loading, success states
- Geo-location tracking via either RN or Expo modules
- Integrate React-Native-Maps
- Add basic routing via React-Navigation
- Add Push notification support
- Integrate Geo-Clustering engine to allow more than 100 markers to spawn
- Remove the hardcoded locations from the JSON and integrate google maps to extract all common food items
- Upgrade to React 16.8.3
- Add hooks support
- Update the SDK from v32 to v33
- Update SDK from v33 to v35
- Refactor setState, remove the nasty await as it doesnt return a promise and use the callback approach
- Update React-Navigation (PAIN IN THE ASS PART)
- Extract storage handling into reusable modules
- Extract permissions into reusable modules
- Extract time generation into it's own reusable module
- Improve error handling for permissions, specifically the GPS and push notifications
Alex Machin
If you want to connect with me on my professional social network platforms feel free to use the links located below, but please don't abuse them.
The application is currently at version 1.1, with each feature added it will increment based on these guidelines
This project is licensed under the MIT License, for more details about the API refer to the LICENCE.md file located within the project.