This project, undertaken for my master's degree at the University of Glasgow, aims to offer users a predictable, personalised, and optimised charging experience. It addresses challenges stemming from the limited public EV charging infrastructure in the UK and practical issues associated with EV ownership.
Please read the consideration sections for your operating system before viewing the project.
The Location API on Expo SDK 40+ versions is slow to retrieve geolocation on iOS devices (~10 seconds). In order to resolve this issue (~0.025 seconds), please follow the instructions below once you have been asked to share your location:
- Go to "Settings" and find the "Expo Go" application
- Click on "Expo Go" and navigate to the "Location" section
- Press on the "Location" section and disable "Precise Location" via the toggle button
There are no issues with the Location API on Android phones. However, at the present time, there is a problem integrating the date and time components due to the Android's native API. Thus, you will experience a less smooth booking experience on Android. There may be a flicker upon button press or issues with format of the date and time upon getting a slot replacement as the project is now only using a temporary solution to solve these issues.
- Install npm
npm install npm@latest -g
- Install Node.js from the official Node.js website
- Verify Node.js installation
node -v
- Install Expo CLI and web dependencies
npm i --g expo-cli
expo install react-native-web react-dom
- Install Xcode or Android Studio to be able to run the project on iOS or Android simulator, respectively
cd msc-tool
npm install expo --legacy-peer-deps
Run the project either on iOS or Android simulator
expo start --ios
expo start --android
To obtain local QR code
expo start
- Expo CLI
- React Native
- Firebase
- React Navigation
- React Native Paper
- React Native Maps
- Google Places Autocomplete
- URQL Client
- Zustand
- Date-fns
- Turf.js
- Jest